본문 바로가기
Computer Science/JAVA

[JAVA] 변수와 메서드

by 그적 2020. 9. 11.

변수의 비교와 지정
- 기본 타입 변수
- 객체 타입 참조 변수
- equals과 ==의 차이

변수의 종류
① 기본 타입 값 변수
: 변수마다 메모리를 따로 가짐
  변수 = 값 = 메모리
② 객체 참조 변수
: 변수는 객체를 가리키는 참조이다.
  new를 해서 사용하여 생긴 친구를 어딘가 저장하여 이것을 참조하는 것임.



객체 타입 변수의 비교
① == : 참조가 같은 지를 비교한다.
② equals() : 값이 같은 지를 비교한다.

(String 변수의 비교)

String color1= "red"; 
String color2 = "yellow"; 
String color3 = "r"; 
color3 += "ed";			// color3 = "red";

if(color1 == color3)      // false
if(color1 != color3)      // true
if(color1.equals(color3)) // true
String name = "java OOP"; 
String title = name; 
   // title 출력 : java OOP

Student student = new Student();
student.read(s);
Student newStudent = student;
   //if(student == newStudent)는 true

 

 

별칭이란 무엇인가?
같은 이름의 변수가 같은 객체를 가리킬 때 >> 참조

스트링 객체는 불변
: 객체가 한번 생기면 값이 바뀔 수 없음
 - 값을 바꾸려면 새로운 객체를 생성
 - 원래 객체는 불변으로 그대로 남아있다.

String str1 = "Sweet"; 
String str2 = str1;      // str1 = str2 = Sweet 
str2.replace('e','i');   // Swiit는 따로 저장을 시켜주지 않았기 때문에 쓰레기가 되었다. 

String str3 = str1; 
str3 += "Song";          // str3 = SweetSong

 

스트링 메서드
- 검사 메서드 : contains, startsWith, endsWith, compare 등
- 일부를 돌려주는 메서드 : charAt, substring 등
- 위치 검색 메서드 : indexOf
    // 원본은 바뀌지 않는다.
- 변경 메서드 : replace, replaceAll, toLowerCase 등 (그리고 +연산자)
   // 원본이 변경되어 새로운 객체가 생성되었다.

** print안에 + 연산자를 통해 출력하는 것은 객체만 남게 되어 메모리가 낭비된다. 이 문제는 StringBuilder를 사용하여 해결한다.

 

--------------------------------------------------------------------------------------------------------------------------

 

학생과 학과 클래스 만들기

>> 학생 클래스에서 갖게 될 데이터는 무엇인가? 결국엔 학생이 갖게 될 데이터가 객체가 된다.

 클래스 만드는 순서
 1) 학생(객체)이 가져야할 데이터가 무엇인지, 타입의 값을 정한다.  
 2) 학생 클래스에 이 데이터를 저장할 필드를 만든다.
 3) 생성자 확인 // 객체가 만들어질 때 필요한 일
 4) 입력 메소드
 5) 출력 메소드

 

클래스를 만드는 방법
Bottom up 방식 : 학생 클래스(요소 클래스)를 만들고 이후, 학과 클래스(메인 클래스)를 만든다.
Top down 방식 : 학과 클래스(메인 클래스)를 만들고 이후, 학생 클래스(요소 클래스)를 만든다.
  // 보통 데이터는 bottom up 방식으로 데이터 포맷을 만들고 입력을 받지만, 
   기능 같은 경우에는 top down 방식으로 좀 더 세분화한 기능들을 추가하는 방식을 사용한다.


설계 원칙
1. Keep It Simple and Short(KISS)
- 필요한 기능만 포함
- 소프트웨어 개발 과정에서 Aglie(에자일) 개발 방법이다.
- 개발 과정을 반복하면서 기능이 점점 추가되고 커진다.
- spiral 모델이라고도 함

2. DRY(Don't Repeat Yourself)
- 중복 배제 원칙
- 재사용 가능하도록 메서드로 만든다.
- 매개 변수를 통해 상황에 맞게 동작할 수 있도록 작성한다.

'Computer Science > JAVA' 카테고리의 다른 글

[JAVA] 제너릭이란?  (0) 2020.11.03
[JAVA] 추상화란?  (0) 2020.10.23
[JAVA] 인터페이스란? (+서점 구현하기)  (0) 2020.10.06
[JAVA] 상속이란? (+ 서점 구현하기)  (0) 2020.10.06
[JAVA] 자바 기본  (0) 2020.09.02

댓글