🦈 자바 클래스 정리 🦈
특정 객체를 생성하기 위해 변수와 메서드를 정의하는 형태나 틀을 의미한다.
class 붕어빵 {
private String name; // 변수 - 이름
public 붕어빵(String newName) {
this.name = newName;
} // 생성자
public String getName() {
return name;
} // 메서드 (getter)
public void setName(String newName) {
this.name = newName;
} //메서드 (setter)
}
붕어빵이라는 객체를 생성하기 위해 붕어빵 클래스를 생성한다.
객체의 변수로 이름을 가지며, 생성자로 붕어빵 객체를 생성할 때 새로운 이름을 받아와 저장한다.
붕어빵 슈붕 = new 붕어빵("슈크림");
붕어빵 팥붕 = new 붕어빵("팥");
슈크림이라는 이름을 가지는 붕어빵 객체의 이름은 슈붕이고, 팥이라는 이름을 가지는 객체의 이름은 팥붕이다.
슈붕과 팥붕은 붕어빵 객체이지만, 각자 가진 이름과 객체가 저장된 주소값이 다르다.
이때 new는 객체 생성 시 사용하는 키워드이다.
하나의 객체가 생성될 때 객체 변수에 값을 설정할 수 있도록 하는 것이다.
class 붕어빵 {
...
public 붕어빵() {} // 빈 생성자
public 붕어빵(String newName) {
this.name = newName;
} // 생성자
...
}
생성자에서 사용한 this 키워드는 클래스 자신을 의미하며, this.name은 클래스의 name을 의미한다.
또, 빈 생성자를 선언해 만약 아무런 변수를 받아오지 않을 경우 생성 오류를 막을 수 있다.
class 붕어빵 {
...
public String getName() {
return name;
} // 메서드 (getter)
...
}
getName() 메서드는 붕어빵의 name에 접근해 해당하는 객체의 name을 반환하는 getter이다.
System.out.println(슈붕.getName()); // '슈크림' 출력
System.out.println(팥붕.getName()); // '팥' 출력
따라서 슈붕과 팥붕에서 해당 메서드를 호출할 경우 각각의 객체의 이름을 반환한다.
class 붕어빵 {
...
public void setName(String newName) {
this.name = newName;
} //메서드 (setter)
...
}
setName() 메서드는 붕어빵 name에 접근해 해당 객체의 새로운 이름을 설정하는 setter이다.
슈붕.setName("슈붕"); // '슈붕'이라는 새로운 이름으로 설정
System.out.println(슈붕.getName()); // '슈붕' 출력
따라서 setter로 새로운 이름을 설정하고, getter를 통해 새로 설정된 이름을 확인할 수 있다.