반응형
📘 클래스와 객체
자바는 객체지향 언어입니다. 이 강의에서는 클래스를 정의하고, 객체를 생성하는 방법, 생성자와 this 키워드, static 변수의 차이를 다룹니다.
📌 목차
- 클래스와 객체란?
- 클래스 정의 및 객체 생성
- 생성자(Constructor)
- this 키워드
- 인스턴스 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 |