- 클래스는 자료형이다.
- 클래스에는 필드와 메소드(생성자, 일반)를 입력할 수 있다.
- 필드에 값을 넣는 방법은 생성자, setter가 있다.
- 필드에서 값을 꺼내는 방법은 일반 메소드, getter가 있다.
- 생성자를 정의하지 않을 경우에만, 파라미터가 없는 기본 생성자가 내부적으로 생성된다.
일반적으로
- 필드를 해당 클래스 안에서 사용할 때는
this
를 붙인다.- 필드 앞에 private을 붙여 은닉화(Hiding)한다.
- 생성자, setter, getter 앞에 public을 붙여 외부에서 사용 가능하게 한다.
- 생성자: setter가 없다면 수정 불가
- setter: 수정 가능
1) 생성자로 필드 값 넣기
생성자(Constructor)
- 객체가 생성될 때 호출되는 메소드이다.
- 리턴 타입이 존재하지 않는다.
- 클래스 명과 동일한 이름을 갖는다.
// 🟢 Person Class
package lesson02.ex1;
public class Person {
// 필드
private String name;
private int age;
// 메소드
// 생성자
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("필드 초기화 완료");
}
// 일반
void printName() {
System.out.println(this.name);
}
void printAge() {
System.out.println(this.age);
}
}
// 🟢 PersonTest Class (Main Class)
package lesson02.ex1;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person("홍길동", 30);
p1.printName();
p1.printAge();
}
}
2) setter로 필드 값 넣기
// 🟢 Person Class
package lesson02.ex2;
public class Person {
// 필드
private String name;
private int age;
// 메소드
// setter
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
// 그 외 일반 메소드
void printName() {
System.out.println(this.name);
}
void printAge() {
System.out.println(this.age);
}
}
// 🟢 PersonTest Class (Main Class)
package lesson02.ex2;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.setName("홍길동");
p1.setAge(30);
p1.printName();
p1.printAge();
}
}