반응형

 

 

1. 생성자(Contructor)

자바는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자 메소드를 제공한다.

또한, 생성자는 객체를 생성할 때 자동으로 실행되며 객체를 초기화하기 위해 가장 먼저 실행되는 메소드이다.

 

 

1-1. 생성자의 특징

▶ 생성자의 이름은 해당 클래스의 이름과 같아야 한다.

▶ 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않는다.(=반환형이 아니다.)

▶ 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있다.

▶ 하나의 클래스가 여러 개의 생성자를 가질 수 있고, 메서드 오버로딩이 가능하다.

▶ 생성자의 주요역할은 멤버변수의 초기화이다.

▶ 생성자의 형태는 아래와 같다.

class User{
	String userName;
	public User(){
		userName = 'Jinny';
	}
}

 

 

1-2. 생성자와 void메서드

생성자와 void 메서드는 둘 다 return값이 없다는 점에서 같지만, 이름과 역할에서 차이점이 있다.

생성자는 클래스와 이름이 같아야 하고 멤버변수의 초기화를 담당하지만 void 메서드는 클래스와 이름이 달라야 하고, 

생성자보다 조금 더 다양한 기능을 담당한다.

 

 

 

2. 생성자의 New 키워드

  • 생성자를 만들지 않았을 때 컴파일러에 의해 자동으로 생성자가 만들어지며 이를 기본생성자라고 한다.
  • 기본생성자는 파라미터를 전달받지 않기 때문에 빈 객체를 생성한다.

 

생성자를 만들지않았지만 new 키워드를 통해 ( new DefaultConstructor() ) 자동으로 기본 연산자가 생성된다

public class DefaultConstructor {

	String name;
	int age;
	
	//public DefaultConstructor() {} //생략된 기본 생성자
	
	public static void main(String[] args) {
	
		//new연산자가  DefaultConstructor()를 호출하면 컴파일러가 기본생성자를 만든다
		DefaultConstructor user = new DefaultConstructor();
		
		//기본생성자는 외부에서 객체의 멤버변수를 설정해줘야한다
		user.name ="Jinny";
		user.age =28;
	}
}

 

class User {
    String userName;
    int userAge;
    
    public User(String userName, int userAge) {
    	this.userName = userName;
        this.userAge = userAge;
    }
    
    public String userInfo() {
    	return "Name : " + userName + ", Age : " + userAge;
    }
}

public class Example {
	public static void main(String[] args) {
    	User user1 = new User("Jinny", 28);
        System.out.println(user1.userInfo());
    }
}

// Name : "Jinny", Age : 28

 

 

 

 

# 참고 사이트

http://tcpschool.com/java/java_methodConstructor_constructor

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기