생성자

클래스를 인스턴스로 만들 때 호출

Person person1 = new Person(); // Person() > 생성자
  • 클래스 내부에 생성자를 구현 안해도, 컴파일러가 자동으로 기본생성자를 구현(1개 클래스에 1개 이상 생성자)
  • public Person(){} //기본생성자
  • 생성자명 = 클래스명
  • 메서드가 아니고, 객체를 생성할 때만 호출
  • 상속 불가능, return 없음
  • 접근제어자 클래스명 ([[매개변수]) { 초기화 할 로직 }

생성자 example

package classexample;

public class Person {

    int height;
    int weight;
    String name;

    public Person() {}

    public Person(String pName) {
        name = pName;
    }

    public Person(int pHeight, int pWeight, String pName) {
        height = pHeight;
        weight = pWeight;
        name = pName;
    }

    public String showPersonInfo(){
         return name + "," + height + "," + weight;
    }
}
package classexample;

public class PersonTest {
    public static void main(String[] args) {
        Person personLee = new Person();
        personLee.height = 180;
        personLee.weight = 80;
        personLee.name = "이정하";
        System.out.println(personLee.showPersonInfo());

        Person personKim = new Person("김정은");
        personKim.height = 160;
        personKim.weight = 50;
        System.out.println(personKim.showPersonInfo());

        Person personPark = new Person(170, 90, "박은정");
        System.out.println(personPark.showPersonInfo());

        System.out.println(personLee);
        System.out.println(personKim);
        System.out.println(personPark);

    }
}

접근제어자

  • public : 외부 모든 클래스에서 접근 가능
  • default(default 값) : 동일 패키지 내 접근 가능
  • private : 현재 클래스 내에서만 사용 가능(이외 어떤 외부 클래스 접근 불가능) = 정보은닉 구현
  • protected : 다른 패키지의 하위 클래스까지 가능

정보은닉

private 접근제어자로 객체 생성 시 정보를 감추는 것

  • 정보은닉 구현된 변수에 값을 넣는 방법 생성자에서 매개변수 넘겨서 매개변수를 통해 초기화
  • 외부에서 변경 및 조회는 별도 메서드 구현으로 가능(getter, setter)→ 중요 변수들을 외부에서 조작할 수 없도록 한다
  • → 세부 내용/로직을 내부적으로 조작할 수 있다

'JAVA' 카테고리의 다른 글

Array, ArrayList  (0) 2022.11.26
this, static  (0) 2022.11.26
클래스, 인스턴스  (0) 2022.11.26
자바프로그래밍 시작하기  (0) 2022.11.26

+ Recent posts