290570
24.05.17 본문
this
- 생성자나 메소드의 매개변수 이름을 의미있는 이름으로 정해주다보면 멤버 변수명과 겹치게 됨
멤버자신을 구별할 목적으로 사용함
this( )
- 생성자가 중복정의 되어있을때 생성자 안에서 또 다른 생성자를 동작시키고자 할 때 사용하는 문장
반드시 생성자의 첫번째 문장에 와야함
*생성자 : 객체를 생성함과 동시에 자동으로 멤버변수들을 초기화 시켜주는 특수 메소드
#매개변수명 지정
생성자의 매개변수 이름을 의미있는 이름으로 정해주다보면 멤버변수이름과 동일하게 됨
이때 생성자 body 안에서는 매개변수의 우선순위가 높아서 매개변수 title에 매개변수 title을 저장하는 의미없는 동작을 하게되고 멤버변수에는 초기화가 되지 않음
<<< this >>>
생성자나 메소드의 매개변수이름을 의미있는 이름으로 정해주다보면 멤버변수명과 겹치게 된다
이때 멤버 자신을 구별할 목적으로 this를 사용한다
#생성자의 중복 정의
(String author, String title) 해도 똑같이 오류남
변수명 가지고 구별하지 않음
매개변수 개수나 타입이 아예 달라야함
*필요하다면 생성자를 중복 정의 할 수 있다
*다만 중복 정의 시 매개변수 개수가 다르거나 자료형이 달라야 한다
아래의 public Book( ){this("제목없음","저자없음");} 이 위의 public Book(String title, String author) {...} 를
다른 생성자를 요구하는 this ( )는 생성자의 첫번째 문장에 와야함
#기본생성자
- 매개변수를 하나도 갖지 않는 생성자를 말하며 사용자가 생성자를 만들지 않으면 자바가 "기본생성자"를 제공해주며 각각의 자료형에 따라 초기화 해준다.
참조자료형은 null / int 0, double 0.0, boolean false, ...
그러나 사용자가 생성자를 한개라도 만들기 시작하면 더이상 "기본생성자"를 제공하지 않음
필요하다면 사용자가 직접 만들어서 사용해야 함
#기본생성자 제공
#기본생성자 제공 X
사용자가 생성자 만들기 시작하면 기본생성자 제공 X
필요하다면 사용자가 만들어서 사용해야함
하나의 파일에 하나의 클래스만 만드는게 일반적
부득이하게 하나의 파일에 여러개의 클래스 만들때는 파일명과 동일한 클래스에만 public 붙이고,
그 클래스에 main 메소드 포함시킴