코딩이란 무엇일까

Java/자바[10일차](3)-생성자 본문

국비지원수업

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();
		//생성자 정의가 없을 때에는 기본 생성자가 컴파일할 때 자동으로 포함됩니다.
}

출력 결과

⚠️ 추가적으로 매개변수가 있는 생성자를 정의해 주고 기본 생성자를 정의해 두지 않았다면

       기본 생성자는 자동으로 생성되지 않습니다.

이상으로 글 마치겠습니다.

글 읽어주셔서 감사합니다.

Comments