생성자
클래스를 인스턴스로 만들 때 호출
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 |