Programming/Java
[JAVA 기초] 04-1. 클래스와 객체 / 생성자와 소멸자, getter(), setter()
mar1po5a
2025. 2. 7. 00:19
자바에서 클래스는 일종의 쿠키틀과 같다고 볼 수 있다. 클래스라는 설계도를 기반으로 만들어진 객체는 그 쿠키틀로 찍어낸 쿠키와 같다고 볼 수 있다.
1. 클래스와 객체
클래스 : 객체를 생성하기 위한 설계도.
객체 : 클래스를 이용해 만들어진 실제 대상. 인스턴스라고도 부름.
public class Cookie {
String shape; // 쿠키 모양
}
public class Main {
public static void main(String[] args) {
Cookie coo = new Cookie(); // 쿠키틀(클래스)로 쿠키(객체)를 생성
coo.shape = "동글동글";
System.out.println("쿠키 모양: " + coo.shape);
}
}
2. 생성자와 접근자, 소멸자
2-1. 생성자 : 객체가 생성될 때 호출되며, 필드를 초기화 시킴.
* 필드를 초기화 시킨다. = 객체의 변수에 초기값을 설정해준다.
2-2. getter() / setter() : 객체의 필드를 외부에서 접근, 수정할 수 있게 해주는 메서드.
※ setter()를 사용하면 이후에 필드를 수정할 수 있지만, 그 과정에서 불완전한 객체가 생성될 수도 있음.
class Person {
private String name; // private 변수
// 생성자
public Person(String name) {
this.name = name;
}
// Getter: name 값을 반환
public String getName() {
return name;
}
// Setter: name 값을 변경
public void setName(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Person p = new Person("민지"); // 생성자로 name 초기화
System.out.println(p.getName()); // Getter 사용 -> "민지" 출력
p.setName("민준"); // Setter 사용 -> name 변경
System.out.println(p.getName()); // 변경된 값인 "민준" 출력
}
}
2-3. 소멸자 : 사용한 자원을 반환하기 위해 close() 와 같은 메서드를 이용해 처리.
프로그램 종료 시 자동 소멸되는 경우가 많음.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력: ");
String name = sc.nextLine();
System.out.println("입력한 이름: " + name);
sc.close(); // 소멸자 역할, 자원 반환
}
}
* Scanner 클래스는 사용자로부터 데이터를 입력받을 때 사용한다. nextLong(), nextDouble() 등의 메서드도 있지만, 보편적으로 문자열을 입력받는 nextLine()을 자주 사용한다. 번호를 입력받는 프로그램에서는 nextInt()를 사용하는 경우가 많다.