1.메소드의 매개변수의 이름을 필드의 이름과 동일하게 작성한 경우 필드를 표현하기 위해 this 키워드 사용
2.생성자에서 다른 생성자를 호출하여 필드 초기화 처리하기 위해 this 키워드 사용
3.이벤트 처리 프로그램 또는 다중 스레드 프로그램에서 객체를 표현하기 위해 this 키워드 사용
public class Member {
//필드(Field) : 표현대상의 속성값을 저장하기 위한 클래스의 요소
// => 필드 작성시 필드에 저장된 초기값 설정 가능 : 객체 생성시 기본값이 아닌 초기값 저장
private String id="NoId";
private String name="NoName";
private String email="NoEmail";
// 매개변수가 없는 생성자 - 기본 생성자
public Member() {
//this 키워드를 사용하여 매개변수가 있는 생성자를 호출하여 필드 초기화 처리
//형식) this(값, 값, ...)
// => 생성자에 this 키워드로 다른 생성자를 호출하는 명령
// => this 키워드로 생성자를 호출하는 명령은 무조건 생성자의 첫번째 명령으로 작성
//this("NoId", "NoName", "NoEmail");
}
//매개변수가 있는 생성자 작성
// => 매개변수에 전달되어 저장된 값을 필드의 초기값으로 저장
public Member(String id) {
this.id=id;
}
public Member(String id, String name) {
super();
this.id = id;
this.name = name;
}
public Member(String id, String name, String email) {
super();
this.id = id;
this.name = name;
this.email = email;
}
//메소드(Method) : 명령을 실행하여 표현대상의 행위(기능)을 구현하기 위한 클래스의 요소
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void display() {
System.out.println("아이디 = "+id);
System.out.println("이름 = "+name);
System.out.println("이메일 = "+email);
}
}
package oop;
public class MemberApp {
public static void main(String[] args) {
//new 연산자로 Member 클래스의 매개변수가 없는 기본 생성자를 호출하여 객체 생성해
//참조변수에 저장
// => 생성된 객체 필드에는 기본값이 초기값으로 자동 저장
Member member1=new Member();
//객체로 필드의 Getter 메소드를 호출하여 객체의 필드값을 반환받아 출력
//Member 클래스에서 필드의 초기값이 출력됨
System.out.println("아이디 = "+member1.getId());
System.out.println("이름 = "+member1.getName());
System.out.println("이메일 = "+member1.getEmail());
System.out.println("==============================================================");
//객체로 필드의 Setter 메소드를 호출하여 매개변수에 전달된 값으로 객체의 필드값 변경
member1.setId("abc123");
member1.setName("홍길동");
member1.setEmail("abc@itwill.xyz");
/*
System.out.println("아이디 = "+member1.getId());
System.out.println("이름 = "+member1.getName());
System.out.println("이메일 = "+member1.getEmail());
*/
//위의 작업을 Member 클래스에서 display() 메소드 명령으로 작성하여 손쉽게 출력
member1.display();
System.out.println("==============================================================");
//new 연산자로 매개변수가 있는 생성자를 호출하여 객체를 생성해 참조변수에 저장
// => 매개변수에 전달된 값에 의해 객체 필드에 초기값으로 저장
// => 매개변수에 전달되는 값에 의해 생성자가 자동 선택되어 호출 - 메소드 오버로딩에 의한 다형성
Member member2=new Member("opq456");
member2.display();
System.out.println("==============================================================");
Member member3=new Member("xyz789", "임꺽정");
member3.display();
System.out.println("==============================================================");
Member member4=new Member("asd123", "전우치", "asd@itwill.xyz");
member4.display();
System.out.println("==============================================================");
}
}