💡 목표
this 3가지 사용 방법을 알자
this 란
1. 인스턴스(객체) 자신의 메모리를 가리킨다.
2. 생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다.
3. 자신의 주소(참조값, 주소값) 를 반환 시킬 수 있다.
public class Person {
// this의 3가지 사용방법
// 1. this 는 자기 자신을 가리킨다(인스턴스의 주소)
// 2. 생성자에 다른 생성자를 호출할 떼 사용할 수 있다.
// 3. 자신의 주소(참조값, 주소값)를 반환 시킬 수 있다.
// 변수 -->private
private String name;
private int age;
private String phone;
private String gender;
// 1.
// 생성자
public Person(String name1, int age) {
// 자기 자신의 멤버 변수 name 외부에서 들어오는 지역 변수 name을 대입
// this = 구분 (변수명이랑 매개변수랑)
this.name = name1;
this.age = age;
}
public Person(String name, int age, String phone) {
// 생성자에서 다른 생성자를 호출할 수 있다 this(...)
this(name, age); // 생성자 호출할 때는 제일 먼저 호출함.(밑에 다가 적으면 에러남)
// this.name = name;
// this.age = age;
this.phone = phone;
// 다른 생성자를 가장 먼저 호출하고 다른 수식을 장석해야 한다.
}
public Person(String name, int age, String phone, String gender) {
this(name, age, phone);
this.gender = gender;
}
// 3. 자신의 주소값으 반환 시킬 수 있다.
public Person getPerson() {
// 자신에 주소값을 반환 시킨다.
return this;
}
public void showInfo() {
System.out.println("이름 : " + name + " 나이 : " + age);
}
// setter
public void setName(String name) {
this.name = name;
}
}// end of class
public class PersonTest {
public static void main(String[] args) {
Person person1 = new Person("홍길동", 100); // heap 메모리 데이터 1개
Person personBox = person1;
Person personBox2 = person1.getPerson(); //this 반환
System.out.println("-------------------");
// 위 코드까지는 Heap 메모리 영역에 객체가 2개 생성된 상태이다.
// 지역변수인 person1, personBox, personBox2 는 같은 객체를 가리킨다.
// 연습 문제 - setName 메서드를 만들어 주세요
// setName 메서드는 class 파일에다 만들어야 됨
//이름 바꾸기 이순신 --> 티모
personBox2.setName("티모");
person1.showInfo();
}//end of main
}//end of class
실행 결과_________
3개의 참조 변수가 하나의 객체를 가리키고 있다.
setter 메서드 만들기 —> 멤버 변수 name
--------- Person 코드 추가 ------------------------
// setter
public void setName(String name) {
this.name = name;
}
---------- PersonMainTest 코드 추가 ------------------
// setName 메서드를 만들어 주세요
personBox2.setName("티모");
person1.showInfo(); // 결과 확인
Getter, Setter 메서드 만드는 연습
public class Person {
//this의 3가지 사용방법
// 1. this 는 자기 자신을 가리킨다(인스턴스의 주소)
// 2. 생성자에 다른 생성자를 호출할 때 사용할 수 있다.
// 3. 자신의 주소(참조값, 주소값)를 반환 시킬 수 있다.
// 변수--> private
private String name;
private int age;
private String phone;
private String gender;
// 1.
// 생성자
public Person(String name, int age) {
// 자신 자신의 멤버 변수 name 외부에서 들어오는 지역 변수 name을 대입
this.name = name;
this.age = age;
}
public Person(String name, int age, String phone) {
// 생성자에서 다른 생성자를 호출할 수 있다 this(...)
this(name, age);
this.phone = phone;
// 다른 생성자를 가장 먼저 호출하고 다른 수식을 작성해야 한다.
// this.name = name;
// this.age = age;
}
public Person(String name, int age, String phone, String gender) {
this(name, age, phone);
this.gender = gender;
}
// 3. 자신의 주소값을 반환 시킬 수 있다.
public Person getPerson() {
// 자신에 주소값을 반환 시킨다.
return this;
}
public void showInfo() {
System.out.println("이름 : " + name + ", 나이 : " + age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
'JAVA > Java 기초' 카테고리의 다른 글
[JAVA] 기초 - static 변수 (0) | 2024.05.20 |
---|---|
[JAVA] ver 0.1 Starcraft 만들어보기 (0) | 2024.05.20 |
[JAVA] 기초 - 접근 제어 지시자 (0) | 2024.05.20 |
[JAVA] 기초 - 객체지향 패러다임 (0) | 2024.05.20 |
[JAVA] 기초 - 생성자(constructor) (0) | 2024.05.20 |