Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

햄발

this 본문

Java

this

햄발자 2024. 4. 19. 09:02

 

this

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

 

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

}

package basic.ch11;

public class PersonTest {

public static void main(String[] args) {

Person pBox1 = new Person("홍길동", 100);
Person pBox2 = person1;
Person pBox3 = person1.getPerson();

Person personLee = new Person("이순신", 101);
System.out.println("--------------------------------");
// 위 코드까지는 Heap 메모리 영역에 객체가 2개 생성된 상태이다. 
// 지역변수인 person1, personBox, personBox2 는 같은 객체를 가리킨다.

} // 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;
}

}

 

'Java' 카테고리의 다른 글

static 메소드 (함수)  (0) 2024.04.19
static 변수  (0) 2024.04.19
접근 제어 지시자  (0) 2024.04.17
생성자 (constructor)  (0) 2024.04.16
객체지향 패러다임  (0) 2024.04.16