this란
밑에 그림에서 Book이라는 기본 생성자에서 매개변수를 넣었다. 이렇게 매개변수를 넣은 생성자를 사용자정의 생성자라고 한다. 그런데 이 매개변수는 외부에서 접근 하는 변수이다. 이 매개 변수를 통해서 접근제어자의 멤머변수들 private가 붙은 변수들을 말한다 이 멤버변수(필드)에 접근하려면 this키워드를 사용해준다. this는 자기 자신의 주소값을 가리킨다. 자기자신의 주소값의 변수에 매개변수를 넣는다.
this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있다
this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용된다.
싱글톤 객체를 단 하나만 만들어야 되는
상황을 보장해야 될때
-----------------------------------------
this : 자기 자신을 가리킨다.
this.
this() : 다른 생성자를 호출 할 때 사용가능
return this 자기 자신에 주소값을 반환 한다.
-----------------------------------------
Getter // Setter
객체 지향 프로그래밍에서는 객체 외부에서 직접적으로 접근을 막는다. 왜냐고?
객체 데이터를 외부에서 읽고 변경 시 객체의 무결성이 깨질 수 있기 때문이다.
그래서 객체 지향 프로그래밍에서는 메소드를 통해 데이터를 변경 하는 방법을 권장한다.
데이터는 외부에서 접근하지 않도록 막고, 메소드는 공개해서 외부에서 메소드로 통해 데이터에 접근하도록 유도를 해준다.
이렇게 데이터에 접근을해서 데이터를 변경하는걸 Setter이다.
외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋다.
객체 외부에서 객체 필드값을 사용하기 부적절한 경우가 있다.
이런 경우에는 메소드로 필드값을 가공 후 외부로 전달한다. 이런 역할하는 키워드가 Getter 이다.
클래스를 선언할때는 웬만하면 필드를 private로 선언해줘서 보호를해주고,
필드에 대한 Setter / Getter 메소드를 작성해서 필드값을 안전한게 변경하는 것이 좋다.
'개발일지 > 자바' 카테고리의 다른 글
상속(부모, 자식 클래스) , 다형성 - 오버라이드(@Override) (0) | 2022.09.05 |
---|---|
배열 - Array (0) | 2022.09.04 |
싱글톤 (0) | 2022.09.01 |
equals 와 (==)의 차이점 (0) | 2022.09.01 |
생성자, 생성자의 오버로딩, 접근지정자 (0) | 2022.08.31 |
댓글