본문 바로가기
Back-End/Java

[Java] 생성자 Constructor

by nanee_ 2021. 8. 27.
728x90
반응형
SMALL

생성자 Constructor

객체를 생성할 때 다음과 같은 모양으로 만들라고 지시하는 것

객체를 생성할 때 강제성을 부여하는 것

 

생성자가 메서드와 다른 이유

초기화의 목적을 가지고 있고,

메서드와 같은 기능을 가지고 있지만, return 이 없으며 return 타입은 자기 자신이다.

따라서 메서드라고 부르지 않는다.

 

기본 생성자

클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다.

클래스에 생성자가 하나도 없는 경우 컴파일러가 자동으로 기본 생성자를 생성을 해 준다.

 

pulic class Dog{
	
    public String color;
    public String name;
    public int age;
    
    // 기본 생성자
    public Dog(){
    
    }
}

 

이 Dog 클래스를 main 함수가 있는 다른 클래스에서 구현하고자 한다면

 

pulic class MainTest{
	
    // main 함수
    public static void main(String[] args){
    
    	// 기본 생성자 사용
        Dog dog1 = new Dog();
        
        dog1.name = "coco";
        dog1.age = 3;
        dog1.color = "brown";
    
    }
}

 

매개변수가 없는 기본 생성자를 이렇게 사용할 수 있다.

 

 

 

사용자 정의 생성자

개발자가 직접 정의하는 생성자이다.

 

pulic class Dog{
	
    public String color;
    public String name;
    public int age;
    
    // 사용자 정의 생성자
    public Dog(String n1, int n2, String n3){
    	name = n1;
        age = n2;
        color = n3;
    }
}

 

매개변수로 n1, n2, n3 을 넣어주고,

데이터타입에 맞게 멤버변수들을 대입연산자(=)를 이용해 연결시켜준다.

 

pulic class MainTest{
	
    public static void main(String[] args){
    
    	// 사용자 정의 생성자 사용
        Dog dog2 = new Dog("nana", 4, "white");
       	
        // 값 수정
        student2.name = "rucy";
    }
}

 

생성자를 정의한 대로 매개변수에 맞게 초기화까지 같이 해줄 수 있다.

 

만약 값을 바꾸고 싶다면 점연산자로 멤버변수에 접근해 새로운 값을 대입해주면 된다.

 

 

 

 

 

 

 

728x90
반응형
LIST

'Back-End > Java' 카테고리의 다른 글

[Java] 참조 자료형 변수  (0) 2021.08.30
[Java] this 키워드  (0) 2021.08.27
[Java] 인스턴스 (Instance), 힙(Heap) 메모리  (0) 2021.08.26
[Java] 메서드 Method  (0) 2021.08.26
[Java] 함수(Function), Stack 메모리  (0) 2021.08.26