dev_dbdb1114

[JAVA] 생성자에 관한 이야기1 본문

프로그래밍/JAVA

[JAVA] 생성자에 관한 이야기1

dbdb1114 2022. 11. 28. 21:26

생성자는 어떤 역할을 할까? 이름만 들어서는 뭔가 생성시킬 것  같지 않은가..?

 

맞다. 

 

생성자는 객체를 생성시킨다. 

 

어쨌든 우리가 객체를 선언할 때 아래와 같이 할 것이다. 

class Car{
	String name;
    String color;
}

public class Main {
	static void main (String[] arg){
    	Car Pride = new Car() // 이 식의 우변이 생성자.
    }
}

 

그래 생성자의 생김새는 일단 이렇다. Car() 

그러면 생성자의 생김새가 이렇게만 생겼을까? 

 

아니다. 

 

사실 이 얘기를 시작하기 전에 알아둘 것이 있다.

 

우리가 선언하는 클래스 안에  생성자는 자동적으로 만들어진다. 

 

그래서 우리가 인스턴스(객체)를 만들때 바로 Car pride = new Car() 라고 쓰고

불러올 수 있는 것이다. 일단 우리 눈에 보이지는 않지만, 클래스 이름에 괄호를 열고 닫은 그런 식이 

있다 하여튼간에 있다. 

 

 

또한

생성자는 우리가 클래스를 선언하면서 다른 형태로 만들 수 있다. 

만드는 법은 간단하다. 

class Car{
	String name;
    String color;
    
    
    아래의 이것이 생성자가 된다. 
    Car ( String str, String str1) {
    	this.name = str;	
        this.color = str1; 
    }
}

public class Main {
	static void main (String[] arg){
    	Car Pride = new Car() // 컴파일 에러 해당하는 생성자가 없음. 
    }
}

그냥 클래스 명 쓰고 매개변수로 뭘 넣어주면 된다. 

이렇게 작성할 경우 기본 생성자 Car() 은 생성되지 않는다. 

따라서 위에 써두었듯 이전처럼 그냥 new Car()를 우변에 넣으면 에러가 발생한다. 

 

그래서 저런 상태에서 생성자를 정상적으로 활용하려면, 객체를 생성할때 

new Car ( "pride", "red" )라는 식으로 생성시키거나,

애초에 원래 클래스에서 Car(){} 하나 만들어주면 된다. 

 

 

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] inner클래스 (정적 / 비정적)  (0) 2022.12.02
[JAVA] static이 뭐지  (0) 2022.11.28
[JAVA] 액세스 지정자  (0) 2022.11.28
[JAVA] 오버로딩  (0) 2022.11.28
[JAVA] for-each 구문  (0) 2022.11.28
Comments