생성자
[표현법]
public 클래스명([매개변수1, 매개변수2...]) {
}
- 객체를 생성해주기 위한 목적으로 생성자를 사용합니다
- 생성자 작성시 유의사항 1. 반드시 생성자명은 클래스명과 동일해야함 (대/소문자 구분) => 안 그럼 오류! 2. 반환형이 존재하지 않습니다
- 만일 반환형을 쓰게 되면 메소드로 인식해버립니다
public class User {
// 필드영역
private String userId;
private String userPwd;
private String userName;
private int age;
private char gender;
//
public User() {
// 기본 생성자(매개변수 없는 생성자)
// 단지 객체 생성만을 목적으로 할 때 사용합니다
System.out.println("테스트용");
}
// 매개변수 생성자
// 객체 생성과 동시에 전달값들을 매개변수로 받아서 해당 각 필드에 초기화할 목적
public User(String userId, String userPwd, String userName) {
this.userId = userId;
this.userPwd = userPwd;
this.userName = userName;
}
public User(String userId, String userPwd, String userName, int age, char gender) {
this.userId = userId;
this.userPwd = userPwd;
this.userName = userName;
this.age = age;
this.gender = gender;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public String information() {
return "Id : " + userId + " Password : " + " Name : " + userName + " Age : " + age + " Gender : " + gender;
}
}
public class ConstructorRun {
public static void main(String[] args) {
User u1 = new User();
System.out.println(u1.information());
// 각 필드에 JVM의 초기 값이 담겨 있음(null,0)
// 1. 객체 생성 후 값을 대입하는 방법
// 회원가입 시 필수 입력 사항만 받는다면? - 추상화
/*
u1.setUserId("boglebogle");
u1.setUserPwd("9999");
u1.setUserName("스폰지밥");
u1.setAge(30);
u1.setGender('남');
*/
// 2. 매개변수 3개짜리 생성자로 객체 생성
User u2 = new User("boglebogle","9999","스폰지밥");
System.out.println(u2.information());
// 3. 매개변수 전체 필드 넣어서 생성자 만들고 객체 생성
User u3 = new User("user03", "pwd03", "장원영", 18, 'F');
System.out.println(u3.information());
// 생성자로 바로 넣으면 될 거 같은데 setter를 굳이 만들어야 하나요?
// 스폰지밥 => 스폰지송으로 바꾸려고 합니다
// u2.setUserName("스폰지송");
// setter를 활용해 바꾸려는 부분을 빠르게 바꿔줄 수 있습니다
// System.out.println(u2.information());
// 그럼 getter는 안 만들면 안될까요?
// 비번을 까먹은 경우에는 비번만을 보여줘야 합니다.
// getter를 통해 특정 데이터 하나만 던져주고 싶을 때 필요합니다.
// System.out.println(u2.getUserPwd());
// System.out.println(u1.information());
}
}
'Java' 카테고리의 다른 글
자바 객체 배열 만들기 - 1. 객체 생성 및 호출 연습 (0) | 2022.11.08 |
---|---|
자바 Static Non-static 오버로딩 (0) | 2022.11.07 |
자바 접근제한자 (0) | 2022.11.05 |
자바 static 변수 final 상수 필드 (0) | 2022.11.04 |
자바 전역변수 지역변수 (0) | 2022.11.04 |