Java

this. 의 3가지 사용 방

H_u 2024. 4. 19. 14:27
728x90
반응형
SMALL

💡 학습 목표

this 3가지 사용 방법을 알자

 

 

this 란

  1. 인스턴스(객체) 자신의 메모리를 가리킨다.
  2. 생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다.
  3. 자신의 주소(참조값, 주소값) 를 반환 시킬 수 있다.

 

 

package basic.ch11;

 

public class Person {

 

// this 의 3가지 사용방법

// 1. this 는 자기 자신을 가리킨다(인스턴스주소)

// 2. 생성자에 다른 생성자를 호출할 떄 사용 할수있다.

//변수 --> private

private String name;

private int age;

private String phone;

private String gender;

 

public Person (String name, int age) {

// 자기 자신의 멤버 변수 name 외부에서 들어오는 지역 변수 name 을대입

this.name = name;

this.age = age;

}

 

public Person(String name, int age, String phone) {

// 생성자에서 다른생성자를 호출할수있다

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);

}

public String getName() {

return this.name;

}

 

public void setName(String name) {

this.name = name;

}

public int getAge() {

return this.age;

}

public void setAge(int age) {

this.age = age;

}

public String getphone() {

return this.phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public String getGender() {

return this.gender;

}

public void setGender(String gender) {

this.gender = gender;

}

}

 

package basic.ch11;

 

public class PersonTest {

 

public static void main(String[] args) {

 

Person person1 = new Person("홍길동", 100);

Person personBox = person1;

Person personBox2 = person1.getPerson();

Person personLee = new Person("이순신", 101);

System.out.println("--------------------------");

// 위코드까지는 Heap 메모리 영역에 객체 2개가 생겅된상태이다.

// 지역변수인 person1, personBox, personBox2 는 같은 객체를 가리킨다.

 

// 연습 문제 -

// setName 메서드를 만들자

 

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 메서드 만드는 연습

package basic.ch11;

 

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;

}

 

}

728x90
반응형
SMALL

'Java' 카테고리의 다른 글

static 변수  (0) 2024.04.19
ver 0.0.1 Starcraft  (0) 2024.04.19
접근 제어 지시자  (0) 2024.04.17
객체지향 패러다임이란  (0) 2024.04.16
생성자(constructor)  (0) 2024.04.16