생성자
자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공한다.
자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 한다.
즉, Car 클래스의 생성자의 이름은 Car가 된다.
이러한 생성자는 다음과 같은 특징을 가진다.
- 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않습니다.
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있습니다.
- 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있습니다.
기본 생성자 (default constructor)
- 클래스에는 반드시 적어도 하나 이상의 생성자가 존재
- 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음
- 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
public Student(){} - 매개 변수가 없음, 구현부가 없음
생성자 정의하기(overloading)
- 생성자를 구현해서 사용할 수 있음
- 클래스에 생성자를 따로 구현하면 기본 생성자(default constructor)는 제공되지 않음
- 생성자를 호출하는 코드에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음
UserInfo.java
public class UserInfo {
public String userId;
public String userPassWord;
public String userName;
public String userAddress;
public String phoneNumber;
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 userLee = new UserInfo();
userLee.userId = "a12345";
userLee.userPassWord = "zxcvbn12345";
userLee.userName = "Lee";
userLee.phoneNumber = "01034556699";
userLee.userAddress = "Seoul, Korea";
System.out.println(userLee.showUserInfo());
UserInfo userKim = new UserInfo("b12345", "09876mnbvc", "Kim");
System.out.println(userKim.showUserInfo());
}
}
'Java' 카테고리의 다른 글
[자바] 정적 멤버와 static,싱글톤(singleton) (0) | 2022.09.26 |
---|---|
[Java] GET,SET을 사용하는 이유 (0) | 2022.09.25 |
[자바] 인스턴스(Instance)란? (0) | 2022.09.25 |
[자바] 함수와 메서드 (0) | 2022.09.21 |
[자바] 객체(Object) (0) | 2022.09.21 |