25.01.20 TIL Class와 Instance

신성훈·2025년 1월 20일
0

TIL

목록 보기
122/162

1. 클래스란?

클래스(Class)는 객체를 정의하기 위한 청사진(설계도)입니다.
속성(필드)과 동작(메서드)을 정의하여 객체의 구조와 행동을 기술합니다.
예시: 자동차 설계도, 동물의 공통 특성 등

클래스의 구성 요소

  1. 필드(Field)
    • 객체가 가지는 속성(데이터)
  2. 메서드(Method)
    • 객체가 수행할 동작(기능)
  3. 생성자(Constructor)
    • 객체 생성 시 호출되는 특별한 메서드
public class Car {
    String brand;  // 필드
    int speed;     // 필드

    // 생성자
    public Car(String brand, int speed) {
        this.brand = brand;
        this.speed = speed;
    }

    // 메서드
    public void drive() {
        System.out.println(brand + " is driving at " + speed + " km/h.");
    }
}

2. 인스턴스란?

인스턴스(Instance)는 클래스를 기반으로 생성된 실제 객체입니다.
클래스는 설계도이고, 인스턴스는 설계도를 기반으로 만들어진 실체입니다.

인스턴스 생성 과정

  • new 키워드를 사용하여 클래스의 인스턴스를 생성
  • 생성자를 호출하여 초기화
public class Main {
    public static void main(String[] args) {
        Car car = new Car("Toyota", 120); // 인스턴스 생성
        car.drive(); // 인스턴스 메서드 호출
    }
}

3. 클래스와 인스턴스의 차이

구분클래스인스턴스
정의객체의 설계도클래스를 기반으로 생성된 실제 객체
메모리 할당메모리에 할당되지 않음메모리에 할당되어 실제 데이터와 동작을 가짐
역할객체의 구조와 동작을 정의프로그램에서 실제 동작을 수행하는 주체
예시자동차 설계도실제 생산된 자동차

4. 클래스와 인스턴스 메서드

클래스 메서드 (static)

  • 클래스에 속하며, 인스턴스를 생성하지 않아도 호출 가능
  • 주로 공통적인 기능을 제공할 때 사용
public class MathUtils {
    public static int add(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int sum = MathUtils.add(3, 5); // 클래스 메서드 호출
        System.out.println("Sum: " + sum);
    }
}

인스턴스 메서드

  • 특정 인스턴스에 속하며, 해당 인스턴스를 통해 호출
Car car = new Car("BMW", 150);
car.drive(); // 인스턴스 메서드 호출

5. 클래스와 인스턴스의 활용

  1. 클래스 사용

    • 데이터의 구조와 동작을 정의
    • 객체 지향 프로그래밍(OOP)의 기본 단위
  2. 인스턴스 사용

    • 프로그램에서 실제 데이터를 처리하고 동작을 수행
    • 클래스 설계에 따라 다양한 객체를 생성해 사용 가능

6. 마무리

클래스와 인스턴스를 이해하는 것은 객체 지향 프로그래밍(OOP)의 핵심입니다.
클래스를 통해 구조화된 코드를 작성하고 인스턴스로 만들어 실제 애플리케이션에서 동작하도록 구현할 수 있습니다.
특히 프로젝트를 진행하며 설계 단계에서 클래스를 정의하고 이를 기반으로 다양한 인스턴스를 생성해 데이터를 처리하는 과정이 매우 중요하다는 것을 깨달았습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글