생성자
인스턴스변수(객체) 초기화
1. 생성자의 이름은 클래스 이름과 같아야 함
2. 리터 값이 없다(void 생략)
class Pizza {
int size;
String type;
public Pizza() {
size = 12;
type = "슈퍼슈프림";
}
public Pizza(int s, String t) {
size = s;
type = t;
}
}
public class PizzaTest {
public static void main(String[] args) {
Pizza obj1 = new Pizza();
System.out.println("("+obj1.type+ " , "+obj1.size+",)");
Pizza obj2 = new Pizza(24, "포테이토");
System.out.println("("+obj2.type+ " , "+obj2.size+",)");
}
}
Plain Text
복사
기본 생성자(default constructor)
class A{
}
public class JinWorld{
public static void main(String[] args){
A a = new A();
System.out.println(a);
JavaScript
복사
this()와 this
this : 클래스 내부에서 자기 자신을 가르킬 때
this(), this(매개변수) : 같은 클래스의 다른 생성자를 호출할 때
접근제한자
접근제한자는 클래스, 필드변수, 생성자, 메서드 앞에 사용함
접근제한의 범위
•
클래스 앞에 붙는 접근제한자 : public or default(보통은 생략해서 사용)
•
변수와 메서드 앞에 붙는 접근제한자 : All
접근제한의 범위
정보은닉의 필요성
해당 변수의 접근하는 함수(메서드)를 별도로 정의해서 안전하게 변수에 접근할 수 있도록 함
public class HCar {
private String name;
public int year;
int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Java
복사
year은 문제가 없지만, price와 name은 컴파일 에러 발생
setter 메서드를 통해 hCar 변수 name값을 변경