클래스 vs 객체
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 3번째.
클래스는 구조를 정의하는 청사진입니다. 객체는 그 청사진으로부터 생성된 구체적인 인스턴스입니다.
클래스 (설계도)
public class Car {
String brand;
int year;
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
}
public String getInfo() {
return this.brand + " (" + this.year + ")";
}
}객체(인스턴스) 생성하기
Car car1 = new Car("Tesla", 2023);
Car car2 = new Car("Honda", 2020);
System.out.println(car1.getInfo()); // Tesla (2023)
System.out.println(car2.getInfo()); // Honda (2020)각 객체는 독립적입니다. car1을 변경해도 car2에는 영향을 주지 않습니다. 동일한 클래스로부터 각각 고유한 데이터를 가진 객체를 무제한으로 생성할 수 있습니다.
챌린지
중급Car 클래스(설계도)를 생성하면 프로그램이 이 클래스로부터 두 개의 서로 다른 객체(인스턴스)를 생성합니다:
- 필드:
brand(String) 및year(int) - 두 필드를 모두 설정하는 생성자
"<brand> (<year>)"를 반환하는getInfo()메서드
치트 시트
클래스는 구조를 정의하는 설계도입니다. 객체는 그 설계도로부터 생성된 구체적인 인스턴스입니다.
클래스 정의하기:
public class Car {
String brand;
int year;
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
}
public String getInfo() {
return this.brand + " (" + this.year + ")";
}
}클래스로부터 객체 생성하기:
Car car1 = new Car("Tesla", 2023);
Car car2 = new Car("Honda", 2020);
System.out.println(car1.getInfo()); // Tesla (2023)
System.out.println(car2.getInfo()); // Honda (2020)각 객체는 고유한 데이터를 가진 독립적인 존재입니다. 동일한 클래스로부터 무제한으로 객체를 생성할 수 있습니다.
직접 해보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String brand1 = scanner.nextLine();
int year1 = Integer.parseInt(scanner.nextLine());
String brand2 = scanner.nextLine();
int year2 = Integer.parseInt(scanner.nextLine());
Car car1 = new Car(brand1, year1);
Car car2 = new Car(brand2, year2);
System.out.println("Car 1: " + car1.getInfo());
System.out.println("Car 2: " + car2.getInfo());
System.out.println("Same car? " + (car1 == car2));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
4상속
상속의 기초 (extends)super 키워드메서드 오버라이딩 (@Override)생성자 체이닝Object 클래스단일 및 다중 레벨 상속다중 클래스 상속이 불가능한 이유요약 - 직원 계층 구조