클래스와 객체
[클래스와 객체]
1. 클래스란?
- 붕어빵 틀을 생각하면 편하다.
- 해당 틀에 여러 객체를 만든다.
2. 객체란?
- 붕어빵 틀에서 찍어낸 붕어빵들을 생각하면 편하다.
- 클래스에서 실제로 사용할 수 있는 것을 만들어 낸 결과물이 객체이다.
3. 인스턴스화?
- 클래스를 이용해서 객체를 만드는 행위를 인스턴스화라고 하고 만들어진 결과물은 객체 또는 인스턴스라고 한다.
[객체 생성]
1. 생성자란?
- 우리는 클래스를 만들고 이를 실체화해서 사용해야 한다.
- 객체지향의 가장 큰 장점은 클래스를 만들어 두면 언제든지 이를 실체화해서 사용할 수 있다는 점이다.
- 객체 생성, 초기화에 사용하는 메서드가 생성자이다.
객체 생성에 필요한 메서드 생성자
- 기본 생성자
- 해당 기본 생성자의 경우엔 인자가 없고, 컴파일러가 기본으로 생성해주기 때문에 개발자가 굳이 작성하지 않아도 된다.
- 일반 생성자(인자가 있다)
- 일반 생성자의 경우엔 개발자가 필요에 따라서 인자를 추가하는 등의 작업을 진행해서 객체 초기화에 사용한다.
- 일반적으로 메서드에 해당하지만 생성자의 경우엔 한번만 사용할 수 있다는 점이 일반 메서드와의 차이점이다.
- 생성자의 경우엔 반환 타입을 명시하지 않아야 한다.
1. 기본 생성자 코드
public class Class{
접근제한자 Class(){
}
}
- 아무것도 없이 클래스 이름과 같은 이름을 가진 메서드가 기본 생성자이다.
- 이는 컴파일러가 자동 생성해준다.
- 데이터 초기화 작업이 없기 때문에 이는 객체 생성 후 나중에 따로 진행해도 무관하다.
2. 일반 생성자 코드
public class Class {
private String field1;
private int field2;
접근제한자 Class(String a, int b){
this.field1 = a;
this.field2 = b;
}
}
- 기본 생성자와 달리 초기화를 담당할 때 사용할 데이터가 인자(파라미터로) 넘겨 받고 있다.
- 컴파일러가 자동으로 생성하지 않기 때문에 개발자가 직접 작성해주어야 한다.
- 초기화 하고 싶은 값만 인자로 넘겨 받아 데이터 초기화를 진행한다.
ㅔ빌더 패턴의 등장]