<안내>
필자도 배우는 입장이라 틀린점, 잘못된 점이 있을 수 있습니다.
그러니 지적, 피드백 환영합니다.

this와 this()

  • 생성자에서 다른 생성자를 호출할 수 있도록 기존 생성자를 나타내는 this() 제공
  • this()를 사용하면 오버로딩된 생성자에서 생기는 중복코드를 없앨 수 있음
  • this() 사용시 생성자의 첫 행에 위치해야 함
public Circle() { // 오류 안남
    this("빨강");
    radius = 10.0;
}

public Circle() { // 오류 남
    radius = 10.0;
    this("빨강");

}

연속 호출

  • 예를 들어 반환 타입이 void인 setName(String name), setAge(), sayHello()라는 메서드를 가진 Person 클래스가 있다고 가정
//연속호출 미사용시
Person person = new Person();
person.setName("chan");
person.setAge(20);
person.satHello(); // 메서드를 호출할때마다 새로운 실행문을 사용해야하므로 번거롭고 가독성도 떨어짐

//연속호출을 사용하면
Person person = new Person();
person.setName("chan").setAge((20).sayHello(); // setName 이 this를 반환하므로 Person 객체이다. 따라서 person.setName은 setAge()를 호출할 수 있다. 

// setName , Age는 this라는 person 객체를 반환
public Person setName(String name) {
    this.name = name;
    return this;
}

정적 멤버의 활용

  • 정적 멤버는 객체 생성 전에도 사용할 수 있기 때문에, 객체 이름 대신 클래스 이름 과 연결하여 사용.

클래스이름.정적변수이름 > Circle.numofCircles
클래스이름.정적메서드이름()

  • 상수는 변경되지 않는 변수기 때문에, fianl 키워드로 지정하지만, final로만 지정하면 객체마다 자신의 기억공간을 가진다.
  • 상수는 값이 변경되지 않으므로 객체마다 따로 기억공간을 할당할 필요가 있다. 따라서 static final 로 지정해서 선언

static(모든 객체가 공유한다) final(초깃값이 대입되면 더이상 수정할 수 없다) 데이터형 상수 = 초깃값;

== 와 equals()의 차이점

== : 연산자임

equals() 함수임

일단 형태부터 다르고,

== 는 주소값이 같으면 True , equals()는 안의 내용물만 같으면 True

package sec13;

public class Equal_practice {
    public static void main(String[] args) {

        String a = "cat";
        String b = a;
        String c = new String("cat");

        System.out.println(a == b); // a와 b는 주소가 같다. (같은 애다) 
        System.out.println(a.equals(b)); // a와 b는 내용물이 같다.

        System.out.println(a == c); // a와 c는 주소가 다르다 (다른 애다)
        System.out.println(a.equals(c)); // a와 c는 내용물이 같다.

    }

}

결과값

true // a와 b는 주소가 같다. (같은 애다) 
true // a와 b는 내용물이 같다.
false // a와 c는 주소가 다르다 (다른 애다)
true // a와 c는 내용물이 같다.

'TIL > [객체지향 프로그래밍] TIL' 카테고리의 다른 글

TIL (22.04.16) 시험범위 정리 2장  (0) 2022.04.16
TIL (22.04.16) 시험 범위 정리 1장  (0) 2022.04.16
TIL (22.04.08)  (0) 2022.04.08
TIL (22.04.06)  (0) 2022.04.06
TIL (22.04.01)  (0) 2022.04.01