[Java] 생성자(Constructor)

2023. 12. 18. 23:21·Java

생성자(Constructor)


: 객체 생성시마다  딱 한번 호출되는 특수한 메서드(인스턴스 초기화 메서드)

-주로 객체 생성시 인스턴스 변수 초기화에 사용 or 객체 생성시 실행할 작업 있을 때 사용

-모든 클래스는 반드시 하나 이상의 생성자가 있어야 함. (클래스 만들때 기본생정자 넣는 습관 들이기!!)

-클래스 내에 생성자가 없으면 컴파일러가 기본 생성자를 만들어 줌.

-단, 개발자가 하나 이상의 생성자를 선언하면 컴파일러는 기본 생성자를 만들지 않음

class Test{
    Test(){ //기본생성자(매개변수 없는 생성자)
        ...
    }
    Test(int num){ //매개변수 있는 생성자
        ...
    }
    
    →생성자 오버로딩
}
Test t = new Test();
               ↑
           생성자 호출

1. new 의해 Heap영역에 Test클래스 인스턴스 생성

2. 생성자 Test()호출, 수행

3. new 결과로 Test인스턴스 주소 참조변수 t에 저장

 

[ 생성자 조건 ] 

1. 생성자 이름 = 클래스 이름

2. 리턴값X  (void 안붙임) 

접근지정자 클래스명([매개변수 선언]){
    //인스턴스 변수 초기화 코드 (주로)
    //또는 인스턴스 생성시 수행될 코드
}

 

[ 기본 생성자 ]  default Constructor

: 매개변수 없는 생성자

생성자가 하나도 없는 경우! 컴파일러가 기본 생성자를 자동추가.

클래스명 () { }
Test (){ }

 

[ 매개변수 있는 생성자 ] 

public class Test {
	String subject;
	String type;
	int score;
	
	Test(){}
	Test(String sb, String t, int sc){
		subject = sb;
		type = t;
		score = sc;
	}
}
Test t = new Test();
t.subject = "수학";
t.type; = "가";
t.score; = 88;

→ Test t = new Test("수학","가",88);

 

'Java' 카테고리의 다른 글

[Java] 변수 초기화(명시적, 생성자, 초기화블럭)  (0) 2023.12.18
[Java] this(), this  (0) 2023.12.18
[Java] 오버로딩(overloading)  (0) 2023.12.17
[Java] 클래스 메서드(static 메서드)와 인스턴스 메서드  (0) 2023.12.17
[Java] 변수와 메서드  (0) 2023.12.17
'Java' 카테고리의 다른 글
  • [Java] 변수 초기화(명시적, 생성자, 초기화블럭)
  • [Java] this(), this
  • [Java] 오버로딩(overloading)
  • [Java] 클래스 메서드(static 메서드)와 인스턴스 메서드
Naah
Naah
  • Naah
    blueprint
    Naah
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • Java (28)
      • Kotlin (0)
      • TypeScript (7)
      • React (22)
      • Next.js (1)
      • Spring (22)
      • JPA (12)
      • Spring Data JPA (6)
      • Querydsl (1)
      • Error (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • manage
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Naah
[Java] 생성자(Constructor)
상단으로

티스토리툴바