국비지원수업
Java/자바[10일차](3)-생성자
둥구는 지굴다
2022. 11. 2. 21:39
생성자
생성자란 클래스의 구성 멤버 중 하나입니다.
new 연산자로 클래스로부터 객체를 생성할 때 호출되며 객체의 초기화를 담당합니다.
생성자의 특징
- 보통 객체를 생성할 때 변수를 초기화하거나 필요한 다른 객체를 생성하는 등 작업을 처리할 때 사용합니다.
- 반드시 클래스 이름과 동일하게 작성해야 합니다.
- 모든 클래스는 생성자가 반드시 존재하며 하나 이상 정의가 가능합니다.
- 생성자 선언을 생략하면 컴파일러는 인자가 없는 기본 생성자를 실행합니다
기본 생성자
모든 클래스는 생성자가 반드시 존재합니다.
우리가 클래스 내부에 생성자 선언을 생략했더라도 컴파일러는
[public] 클래스( ){ }
와 같은 기본 생성자를 바이트 코드에 자동으로 추가합니다.
위의 내용으로 알수 있는 점은 클래스에서 분명 생성자를 선언하지 않았는데
BlogClass bc= new BlogClass();
이와 같은 형태로 쓸 수 있던 것은 컴파일러가 자동으로 생성자를 바이트 코드에 추가했기 때문인 것이죠!
기본 생성자 구조
클래스명(){
//객체의 초기화 코드
}
매개변수가 있는 생성자
매개변수가 있는 생성자는 말 그대로 생성자에 매개변수가 존재하는 것입니다.
생성자는 필드의 값을 생성자로 초기화해줄 수 있습니다.
기본 생성자 , 매개변수 생성자 사용해보기
클래스 부분
public class MyClass3 {
private int age;
private String name;
private double point;
//기본 생성자
public MyClass3() {
this.point=12.3; //기본 생성자도 필드 값 초기화 가능
}
//매개변수가 있는 생성자 :
public MyClass3(int age,String name) {
this.age=age;
this.name=name;
this.point=12.3;
}
ic String fields() {
return "이름 :"+name+",나이 :"+age+",포인트 :"+point;
}
}
생성자를 사용해서 객체 생성과 동시에 필드 값 초기화해보기
메인 메서드
public static void main(String[] args) {
//생성자 테스트 : 생성자는 필드 값을 초기화 하기 위해서 사용합니다.
//기본 생성자로 객체 생성
MyClass3 myA = new MyClass3();
System.out.println("myA :"+myA.fields());
//매개변수 생성자로 객체 생성
MyClass3 myB= new MyClass3(25,"쯔위");
System.out.println("myB:"+myB.fields());
MyClass2 myy= new MyClass2();
//생성자 정의가 없을 때에는 기본 생성자가 컴파일할 때 자동으로 포함됩니다.
}
출력 결과
⚠️ 추가적으로 매개변수가 있는 생성자를 정의해 주고 기본 생성자를 정의해 두지 않았다면
기본 생성자는 자동으로 생성되지 않습니다.
이상으로 글 마치겠습니다.
글 읽어주셔서 감사합니다.