JAVA

[JAVA]생성자, this

당고개 2023. 9. 5. 22:45

1. 생성자

인스턴스를 생성하려면 생성자가 항상 필요합니다.

1. 생성자가 없으면 인스턴스를 만들 수 없습니다.
2. 생성자는 클래스 이름과 동일해야 합니다.
3. 생성자는 인스턴스 생성시 한번만 호출되는 특성을 가지고 있습니다.

class Person {
    String name;
    int age;
    String sex;

    // 생성자와 매개변수 
    Person(String name, int age, String sex) { 
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
}

Default 생성자

생성자를 명시적으로 선언하지 않는 경우 자동적으로 Default 생성자를 생성합니다.

class Person {
    String name;
    int age;
    String sex;

    // 컴파일러가 default 생성자를 주입한다.
}

인스턴스 생성

클래스의 생성자를 통해 인스턴스를 생성할 수 있습니다.

class Person {
    String name;
     int age;
    String sex;

    //생성자와 매개변수 
    Person(String name, int age, String sex) { 
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
}
Person person = new Person("이름", 1, "female");


2. this 키워드

this 키워드는 자기 자신 Person 클래스를 지칭합니다. this 키워드를 통해 Person 클래스 스코프 내의 멤버 변수에 접근 할 수 있습니다.

접근할 수 있는 클래스 스코프 내에서 생성자의 매개 변수명과 멤버 변수명이 동일할 경우 this 키워드를 통해 멤버 변수에 접근할 수 있습니다.

class Person {
    String name;
    int age;
    String sex;

    // 생성자와 매개변수 
    Person(String name, int age, String sex) { 
        this.name = name;
        // this.name은 클래스의 멤버 변수를 지칭하고
        //name은 매개 변수를 지칭한다.
        this.age = age;
        // this.age는 클래스의 멤버 변수를 지칭하고
        // age는 매개 변수를 지칭한다.
        this.sex = sex;
        // this.sex는 클래스의 멤버 변수를 지칭하고
        // sex는 매개 변수를 지칭한다.

    }
}

3.생성자를 이용해서 클래스 만들어보기

코드 작성(Person.java)

class Person {
    String personName;
    int personAge;
    String personGender;

    Person(String name, int age, String gender) {
        personName = name;
        personAge = age;
        personGender = gender;
    }
}

코드 작성(Main.java)

public class Main {
    public static void main(String[] args) {
        Person person = new Person("김철수", 20, "male");
        System.out.println(person.personName);
        System.out.println(person.personAge);
        System.out.println(person.personGender);
    }
}

출력

김철수
20
male

 

 

 

출처 : https://www.codelatte.io/courses/java_programming_basic/8LW6ZIG8D1IM3QE7

'JAVA' 카테고리의 다른 글

[JAVA]메서드  (0) 2023.09.07
[JAVA]생성자 오버로딩  (0) 2023.09.06
[JAVA]멤버 변수  (0) 2023.09.05
[JAVA]클래스  (0) 2023.08.30
[JAVA]문자열 만들기  (0) 2023.08.21