JAVA 객체 지향 핵심

(JAVA)this 3가지 사용 방법 - 8

mynote6676 2025. 4. 16. 16:49

<aside> 💡 학습 목표

this 3가지 사용 방법을 알자

this 란

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

this.

수정 코드 this() 생성자의 사용

package com._this;

/**
 * 클래스 설계하는 측 코드
 */
public class Person {

    //this 에 3가지 사용법
    // 1.자기 자신의 주소를 가리킴
    // 2.생성자에서 다른 생성자를 호출할때 사용할 수 있다
    // 3.자신의 주소를 반환 시킬 수 있다.

    private  String name;
    private int age;
    private String phone;
    private String gender;//f , m

    //첫번째 생성자 사용방법 this.
    // 1.사용 방법(문법,왜)
    public Person(String name, int age){

        // 매개변수 = 매개변수
        // 맴버 변수 = 매개변수
        this.name = name;
        this.age = age;
        System.out.println("1번 생성자 호출 됨");
    }

    //2. 사용방법 this(); <-----
    // this는 생성자에서 다른 생성자를 호출할 수 있다.
    public Person(String name,int age, String phone) {
        //System.out.println("11111111111111111");
        //this.name =name;
        //this.age = age;
        this(name, age);// 두번째 사용법
        this.phone = phone;
        System.out.println("2번 생선자 호출 됨");
    }

    public Person(String name, int age, String phone, String gender){
        this(name, age, phone);
        this.gender= gender;
        System.out.println("3번 생성자 호출 됨");
    }


 }

 

 

실행 !!

 

package com._this;

public class PersonMainTest {

    public static void main(String[] args) {
       // Person p1 = new Person("홍길동",10,"010-1234-1234");
        Person p1 = new Person("홍길동",10,"010-1234-1234","F");

    }
}

 

 

한번더!!1

 

 

package com._this;

public class UserInfo {

    private String userId;
    private String userPassword;
    private String userName;
    private String userAddress;
    private String userNumber;

    //생성자 매개변수 1개 ~ 5개 즉 , 생성자 5개 만들어 주세요(생성자 오버로딩)


    public UserInfo(String userId) {
        this.userId = userId;

    }

    public UserInfo(String userId, String userPassword) {
        this(userId);
        this.userPassword = userPassword;

    }

    public UserInfo(String userId, String userPassword, String userName) {
        this(userId, userPassword);
        this.userName = userName;
    }

    public UserInfo(String userId, String userPassword, String userName, String userAddress) {
        this(userId, userPassword, userName);
        this.userAddress = userAddress;
    }

    public UserInfo(String userId, String userPassword, String userName, String userAddress, String userNumber) {
        this(userId, userPassword, userName, userAddress);
        this.userNumber = userNumber;
    }

    // getter 메서드 만들어주세요
    public String getUserId() {
        System.out.printf("ID : ");
        return userId;

    }

    public String getUserPassword() {
        System.out.printf("pw : ");
        return userPassword;

    }

    public String getUserName() {
        System.out.printf("name : ");
        return userName;
    }

    public String getUserAddress() {
        System.out.printf("address : ");
        return userAddress;
    }

    public String getUserNumber() {
        System.out.printf("number : ");
        return userNumber;
    }

    // setter 메서드 만들어주세요
    public void setUserId(String userId) {
        // 멤버 변수 = 외부값
        this.userId = userId;
    }

    public void setUserPassword(String userPassword) {
        // 멤버 변수 = 외부값
        this.userPassword = userPassword;
    }

    public void setUserName(String userName) {
        // 멤버 변수 = 외부값
        this.userName = userName;
    }

    public void setUserAddress(String userAddress) {
        // 멤버 변수 = 외부값
        this.userAddress = userAddress;
    }

    public void setUserNumber(String userNumber) {
        // 멤버 변수 = 외부값
        this.userNumber = userNumber;
    }


}

 

 

실행 값

 

package com._this;

import org.w3c.dom.ls.LSOutput;

public class UserInfoMainTest {
    public static void main(String[] args) {
        UserInfo userInfo1 = new UserInfo("집","키","길동","부산","123");
        System.out.println( userInfo1.getUserId());
        System.out.println( userInfo1.getUserPassword());
        System.out.println( userInfo1.getUserName());
        System.out.println( userInfo1.getUserAddress());
        System.out.println( userInfo1.getUserNumber());

    }
}