본문 바로가기
Programming

JAVA 클래스와 객체

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 11. 15.
반응형

📘 클래스와 객체

자바는 객체지향 언어입니다. 이 강의에서는 클래스를 정의하고, 객체를 생성하는 방법, 생성자와 this 키워드, static 변수의 차이를 다룹니다.


📌 목차

  1. 클래스와 객체란?
  2. 클래스 정의 및 객체 생성
  3. 생성자(Constructor)
  4. this 키워드
  5. 인스턴스 vs 클래스(static) 변수

🔹 1. 클래스와 객체란?

클래스(Class)는 설계도, 객체(Object)는 그 설계도로 만든 실제 제품입니다.

예를 들어, '자동차'라는 클래스는 모델, 속도 등의 속성과 주행, 정지 등의 동작을 정의합니다. 이 클래스를 기반으로 '내 차'라는 객체를 생성하면, 실제로 동작하는 자동차가 됩니다.


🔹 2. 클래스 정의 및 객체 생성

// 클래스 정의
public class Car {
    String model;
    int speed;

    void drive() {
        System.out.println(model + " is driving at " + speed + " km/h.");
    }
}

// 객체 생성
Car myCar = new Car();
myCar.model = "Tesla";
myCar.speed = 120;
myCar.drive();

실행 결과:

Tesla is driving at 120 km/h.

🔹 3. 생성자(Constructor)

생성자는 객체가 생성될 때 자동으로 실행되는 메서드입니다.

public class Car {
    String model;
    int speed;

    // 생성자
    public Car(String m, int s) {
        model = m;
        speed = s;
    }

    void drive() {
        System.out.println(model + " runs at " + speed + "km/h.");
    }
}

// 사용
Car c1 = new Car("Kia", 100);
c1.drive();  // 출력: Kia runs at 100km/h.

생성자는 클래스 이름과 동일하며, 객체 생성 시 초기화를 담당합니다.


🔹 4. this 키워드

this현재 객체 자신을 가리키는 키워드입니다.

public class Car {
    String model;

    public Car(String model) {
        this.model = model;  // 매개변수와 인스턴스 변수 구분
    }
}

위 예제에서 this.model은 인스턴스 변수, model은 매개변수를 의미합니다.


🔹 5. 인스턴스 vs 클래스(static) 변수

public class Car {
    String model;            // 인스턴스 변수
    static int carCount = 0; // 클래스 변수 (공유)

    public Car(String model) {
        this.model = model;
        carCount++;          // 모든 객체에서 공유됨
    }
}

Car c1 = new Car("Hyundai");
Car c2 = new Car("BMW");

System.out.println(Car.carCount); // 출력: 2

인스턴스 변수는 각 객체마다 별도로 존재하며, 클래스 변수는 클래스 전체에서 공유됩니다.


반응형

'Programming' 카테고리의 다른 글

JAVA 객체지향 프로그래밍 (OOP)  (60) 2025.11.17
JAVA 패키지와 접근제한자  (38) 2025.11.16
JAVA 메서드와 매개변수  (43) 2025.11.14
JAVA 배열과 컬렉션 기초  (55) 2025.11.13
JAVA 조건문과 반복문  (74) 2025.11.12