해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
클래스 class : 각 버튼이 갖고 있을 속성(들)과 기능(들)을 정의
- 객체 object / 인스턴스 instance : 속성(프로퍼티)들과 기능(메소드)들의 묶음
- 자바에서는 객체와 인스턴스를 같은 것으로 이해해도 됨
- 인스턴스는 클래스에서 정의한 방식으로 양산됨
클래스 & 인스턴스 - 프랜차이즈 본사 & 매장
- ⭐ 클래스파일의 이름은 클래스의 이름과 동일해야 함 (public 클래스일 시)
- IntelliJ에서 클래스명 수정해 볼 것 - refactor
- 디버깅 툴로 인스턴스들 살펴볼 것
- out 디렉토리 살펴볼 것 - 클래스들이 .class 파일로 생성
⭐️ 생성자 메소드 - 매장을 내는 메소드
// ⭐ 생성자(constructor) : 인스턴스를 만드는 메소드
// ⭐ this : 생성될 인스턴스를 가리킴
YalcoChicken (int no, String name) {
this.no = no;
this.name = name;
}
- 메서드 이름 없이, 반환 타입(해당 클래스) 뒤로 괄호가 따라옴
- return을 명시하지 않음 - 해당 클래스 타입의 인스턴스 반환
- new 연산자와 함께 사용되어 인스턴스를 반환
YalcoChicken store1 = new YalcoChicken(3, "판교");
- 필수 작성 아님 - 언제나 같은 내용의 인스턴스를 반환할 경우
- 작성되지 않았을 경우에는 인자 없이 호출 (이전 예제 확인)
- ⭐️ 코드에 작성하지 않아도 컴파일러가 자동 생성
- 자동생성
- 메뉴 - 코드 - 생성
- 윈도우: alt + insert
- 맥: command + N
- 생성자 선택
- name 과 price 선택
- 💡 생성자를 작성하지 않는다고 생성자가 없는 것이 아님
- ex02 의 컴파일된 파일 YalcoChicken.class 살펴 볼 것
⭐️ this - 만들어질 인스턴스를 가리킴
- intro 메소드 브레이크포인트에서 this 항목 확인
- no 와 name 에 this 를 붙인 것과 같음
- 메소드 내에서 같은 이름의 변수나 인자가 없다면 식별자는 this 의 필드를 가리킴
- 같은 이름의 변수나 인자가 있다면 덮어씌워짐
- 필드에는 this를 붙여 구분
- 생성자에서 this 를 빼고 실행해 볼 것
- intro 에서 주석 해제해 볼 것, this 를 사용하여 다시 해 볼 것