본문 바로가기
Java

[JAVA] 자바 - 생성자, 생성자 오버로딩

by Seong-Jun 2021. 11. 22.
728x90
반응형
SMALL

생성자

  • 생성자의 기본 문법 : <class_name>([<argument_list]){[<statements]}
  • 객체를 생성할 때 new 키워드와 함께 사용합니다. (new Student();)
  • 생성자는 일반함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new와 함께 호출됩니다.
  • 생성자는 반환 값이 없고, 클래스의 이름과 동일합니다.
  • 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private으로 선언되는 경우도 있습니다.

 

기본 생성자

  • 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야 합니다.
  • 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있습니다.
  • 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어줍니다.
  • new Student()도 사용하고 싶으면 직접 기본 생성자(public Student(){})를 만들 수 있습니다.
  • 매개 변수, 구현부가 없습니다.

 

생성자 만들기

  • 컴파일러가 제공해 주는 기본 생성자 외에 필요에 의해 생성자를 직접 구현할 수 있습니다.

 

생성자 정의하기

  • 생성자를 구현해서 사용할 수 있습니다.
  • 클래스에 생성자를 따로 구현하면 기본 생성자는 제공되지 않습니다.
  • 생성자를 호출하는 코드(client코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있습니다.

 

UserInfo.java

public class UserInfo {
	public String userId;
	public String userPassword;
	public String userName;
	public String userAddress;
	
	public UserInfo() {} // 기본 생성자
	
    // 사용자 정의 생성자
	public UserInfo(String userId, String userPassword, String userName) {
		this.userId = userId;
		this.userPassword = userPassword;
		this.userName = userName;
	}
	
	public String showUserInfo() {
		return "고객님의 아이디는 " + userId + "이고, 등록된 이름은 " + userName + "입니다.";
	}
}

 

UserInfoTest.java

public class UserInfoTest {

	public static void main(String[] args) {
		UserInfo userSeong = new UserInfo(); // 생성자 생성
		userSeong.userId = "s12345";
		userSeong.userPassword = "12345678";
		userSeong.userName = "Seong Jun";
		userSeong.userAddress = "인천";
		
		System.out.println(userSeong.showUserInfo());
		
		
		UserInfo userWoo = new UserInfo("w12345", "12341234", "Woo");
		System.out.println(userWoo.showUserInfo());
	}
}

 

 

728x90
반응형
LIST

댓글