데이터 + 기능
클래스라는 설계도가 먼저 필요하다.추상화 과정
- 내가 구현하고자하는 프로그램에서 필요한 객체들을 생각해 볼 것
- 그 객체들의 공통적인 속성, 기능들을 추출할 것
- 추출한 것들을 가지고 내가 구현하고자하는 프로그램의 "실질적인 목적"에 맞춰 불필요한 속성, 기능을 제거할 것
- 최종적으로 추려진 속성들을 어떤 자료형으로, 어떤 변수명으로 사용할 것인지 정의
-> 자바에서는 구조체개념을 좀 더 확장해서 클래스라는 개념을 만들었다.
****************클래스의 구조****************
접근 제한자 class 클래스명 {
<필드영역(사용할 데이터를 선언하는 영역)>
<생성자영역(데이터를 초기화해주기위한
특수목적의 메소드를 정의하는 영역)>
<메소드영역(클래스의 기능을 정의하는 영역)>
}
생성자
단축키 [ art + shift + s -> o ]=========객체를 생성할 때 데이터를 초기화해주는 작업이 필수적으로 필요하기에 초기화를 위한 메소드를 만들어준다. -> 생성자라는 규칙이 생김=======-====== - 클래스의 이름과 동일한 메소드로 반환형이 없다. - 필드 데이터의 초기화를 위한 특수목적의 메소드이다. - 매개변수가 하나도 없는 생성자를 우리는 기본생성자라고 합니다. - 생성자를 개발자가 직접 만들지 않는다면 컴파이러는 기본생성자를 만들어준다. - 개발자가 직접 생성자를 작성하면 기본생성자를 만들어주지 않는다. - **`메소드의 매개변수의 갯수 또는 타입에 따라서 메소드를 구분하는 메소드 오버로딩은 생성자에도 적용이 된다.`**
메소드
getter/setter단축키 [ art + shift + s -> r ]
this-> 인스턴스 객체(메모리를 사용중인 객체)자기 자신을 의미1. 자기 자신의 메모리를 가르킨다. 2. 생성자에서 다른 생성자를 호출할 수 있다. 3. 자기 자신의 주소를 반환할 수 있다.