Menu
Coddy logo textTech

클래스 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에는 영향을 주지 않습니다. 동일한 클래스로부터 각각 고유한 데이터를 가진 객체를 무제한으로 생성할 수 있습니다.

challenge icon

챌린지

중급

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));
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨