this

  - 자신의 인스턴스에 접근할때 사용

  - 보통 this.을 사용하여 멤버 변수에 접근함

  - 메서드, 생성자에서 사용하는 매개변수(파라미터)이름과 해당 클래스 멤버 변수명이 같을때 구분하기 위해 사용

public class Student {
    public String name;
    public String grade;

    public Student(String name, String grade) {
        this.name = name;
        this.grade = grade;
    }
}

생성자(constructor)

  - 생성자의 목적은 객체 초기화 이다.

  - 생성자의 이름은 클래스 이름과 같아야 한다.

  - 생성자는 반환 타입이 없다.

  - 생성자는 인스턴스를 생성한 후 바로 호출된다.(객체당 한번만 호출)

  - 개발자가 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자 삽입

  - 생성자는 오버로딩 가능하다

 

생성자 장점

  - 직접 정의한 생성자를 호출 하지 않을경우 컴파일 오류가 발생하기 때문에 필수값 입력을 보장할 수 있다.

 

this()

  - 생성자 내부에서만 사용할 수 있다.

  - 생성자의 첫 줄에서만 this()를 사용할 수 있다.

 

public class Student {
    public String name;
    public String grade;


    Student(String name, String grade) {
        this.name = name;
        this.grade = grade;
    }

    Student(String name) {
        this(name, "A");
    }
}

public class Main {
    public static void main(String[] args) {
        // Student student0 = new Student(); // error : no suitable constructor found for Student(no arguments)
        Student student1 = new Student("Kim");
        Student student2 = new Student("Kim", "C");

        Student[] students = {student1, student2};

        for (Student student : students) {
            System.out.println("student.name = " + student.name);
            System.out.println("student.grade = " + student.grade);
        }

    }
}

'인강 > 자바(기본편)' 카테고리의 다른 글

다형성  (0) 2024.07.23
상속  (0) 2024.07.22
변수와 초기화  (0) 2024.07.02
기본형 vs 참조형  (0) 2024.07.01
클래스와 데이터  (0) 2024.07.01

+ Recent posts