생성자메서드와 this

강9·2023년 11월 27일
0

Java

목록 보기
40/71
post-thumbnail

클래스 생성 예제)

public class Person {
    // 상태정보(멤버변수)
    public String name;
    public int age;
    public String phone;

    // 행위정보(멤버메서드)
    public void play() {
        System.out.println("운동을 한다.");
    } // play_
    public void eat() {
        System.out.println("음식을 먹다.");
    } // eat_
    public void walk() {
        System.out.println("걷다.");
    } // walk_

} // Person_

💡생성자메서드(Constructor)란?

객체를 메모리에 생성하는 역할을 한다

  • new 연산에 의해서 호출이 된다.
  • 자신이 가지고 있는 멤버들을 메모리에 올려 객체생성하는 역할
  • 메서드 이름은 클래스 이름동일해야 한다.
  • 접근제한자가 public인 경우에만 호출이 된다.
  • 모든 클래스는 기본생성자(default constructor)를 가지고 있다.
  • 객체의 초기화를 위해서 사용된다.
  • 리턴타입이 없다. // void를 적지 않는다.
  • 객체가 생성이 되면 this자동으로 만들어진다.
    this : 자신을 가리키는 객체변수 (참조변수, 포인터변수)

🔖 객체가 생성된 후 멤버에 접근하는 방법

.(dot, 도트, 점) 연산자로 접근한다.

Person p = new Person();
	p.name
	p.age
	p.phone


🔖 정보은닉된 정보에 접근하는 방법

생성자 메서드를 통한 접근 (객체 초기화)

1️⃣ 객체 모델링(설계)

public class PersonVO {
    private String name;
    private int age;
    private String phone;
                      
                         // 생성자 오버로딩해서 초기화
    public PersonVO(String name, int age, String phone) {
    this.name = name;
    this.age = age;
    this.phone = phone;
    }
    
    public PersonVO() { // 오버로딩 시 기본생성자가 필요하면 별도로 생성 해줘야함(자동생성 x)
    this.name = "홍길동";
    this.age = 50;
    this.phone = "010-1234-5678";
    }
    
    // setter 메서드 생략
    public String getName() {
    	return this.name;
    }
    public int getAge() {
    	return this.age;
    }
    public String getPhone() {
    	return this.phone;
    }

2️⃣ 객체 생성

Person VO p =new PesonVO();

3️⃣ 객체 접근(사용)

// 1.
Person VO p =new PersonVO(); // 생성자 메서드로 값을 저장하고 초기화
Person VO p =new PersonVO("홍길동", 50, "010-1234-5678");
// 2.
PersonVO p = new PersonVO();
        p.setName("홍길동");
        p.setAge(2000);
        p.setPhone("010-1234-5678");

        System.out.println(p.getName()); // "홍길동"
        System.out.println(p.getAge()); // 2000
        System.out.println(p.getPhone()); // "010-1234-5678"

4️⃣ toStirng() 활용하여 접근하는 방법

// 1. 초기화
public String toString() {
	return name+"\t"+age+"\t"+phone;
}
// 2. 출력
System.out.println(p.toString()); 
System.out.println(p); // p.toString()

// 출력값 : 홍길동 2000 010-1234-5678
profile
코린이 일기

0개의 댓글