안녕하세요.
#yeoneeblog 여니입니다 :)
public class User {
// 필드부
private String userId;
private String userPwd;
private String userName;
private int age;
private char gender;
// 생성자부
/*
* 생성자 [표현법] public 클래스명(매개변수(생략가능) { 해당 생성자를 통해서 객체 생성시 실행하고자 하는 코드; }
*
* 생성자를 작성하는 목적
* 1. 객체를 생성해주기 위한 목적
* 2. 객체 생성 뿐만 아니라 매개변수로 전달된 값을 곧바로 필드에 초기화할 목적
*
* 생성자 작성시 주의사항
* 1. 반드시 클래스명과 동일해야함(대/소문자 구분)
* 2. 반환형이 존재하지 않는다(메소드와 비슷하게 생겨서 헷갈릴수있음)
* 3. 여러개 생성이 가능하지만 매개변수가 중복 되면 안된다.
* 4. 매개변수 생성자를 명시적으로 작성하게 되면 기본 생성자를 jvm이
* 자동으로 만들어 주지 않는다.
*
* 즉, 어찌됏든 기본생성자는 항상 작성하는 습관을 들이자
*/
public User() { // 매개변수 없는 생성자 == 기본 생성자
// 단지 객체 생성만을 목적으로 할 때 사용
// 기본생성자 작성하지 않아도 호출하는데 문제어 없음.
// JVM이 자동으로 만들어 줬기 때문에 항상 객체 생성이 가능했다.
// 단, 매개변수가 있는 생성자가 작성되어있을때에는 기본생성자도 반드시 기술해야한다.
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생성자 호출 가능
this(userId, userPwd, 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;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userPwd=" + userPwd + ", userName=" + userName + ", age=" + age
+ ", gender=" + gender + "]";
}
// 메서드부
public class Run {
public static void main(String[] args) {
// 1. 기본생성자로 객체 생성/ setter메소드로 각 필드 초기화
User u1 = new User();
u1.setUserId("user01");
u1.setUserPwd("pass01");
u1.setUserName("경민");
System.out.println(u1);
//2. 객체 생성과 동시에 각 필드에 값들을 초기화
User u2 = new User("user02" , "pass02" , "경민2");
System.out.println(u2);
// 3. 생성자는 여러개 만들 수있음. 단, 매개변수가 중복되지 않아야 한다.
// 객체 생성과 동시에 각 필드에 값들을 초기화
// 매개변수 5개짜리 생성자로 객체 생성.
User u3 = new User("pass03","user03","user03", 33 , '남');
System.out.println(u3);
}
}
'JAVA' 카테고리의 다른 글
자바 변수구분(전역변수, 지역변수) (0) | 2023.05.09 |
---|---|
자바의 클래스구조(필드부,생성자부,메서드부)3 (0) | 2023.05.08 |
자바 클래스의 구조(필드부,생성자부,메소드부) (0) | 2023.05.08 |
자바 이차원배열 다양한 예제 문제 (3) | 2023.05.07 |
자바 이차원 배열 (0) | 2023.05.07 |