728x90
자바 클래스, 객체, 인스턴스 생성 및 객체 배열 공부 log
1. 클래스, 객체, 인스턴스의 기본 개념
- 클래스(Class)
- 객체를 정의하는 설계도 역할을 한다.
- 클래스는 속성(필드)과 동작(메서드)을 정의한다.
- 예: class Car { ... }
- 객체(Object)
- 클래스를 통해 생성된 실체이며, 메모리에 로드된 상태.
- 클래스의 인스턴스라고도 한다.
- 인스턴스(Instance)
- 객체를 구체적으로 생성한 것을 의미한다.
- 클래스 → 설계도
- 객체 → 설계도로 만든 구체적인 제품
- "인스턴스"라는 용어는 특정 클래스에서 생성된 객체를 지칭할 때 사용한다.
2. 클래스와 객체 생성
- 클래스 정의
public class Car {
String brand; int year; void drive()
{ System.out.println(brand + " is driving."); } }
2.객체 생성 및 사용
public class Main { public static void main(String[] args) { Car myCar = new Car(); // 객체 생성
myCar.brand = "Toyota"; // 필드 초기화 myCar.year = 2023; myCar.drive(); // 메서드 호출 } }
3. 생성자(Constructor)
- 클래스의 객체를 초기화할 때 사용하는 특별한 메서드.
- 특징:
- 클래스 이름과 동일.
- 반환형이 없다.
- 예제:
public class Car { String brand; int year; // 생성자 public Car(String brand, int year) { this.brand = brand; this.year = year; } void drive() { System.out.println(brand + " is driving."); } } public class Main { public static void main(String[] args) { Car myCar = new Car("Honda", 2022); // 생성자 호출 myCar.drive(); } }
4. 객체 배열
- 동일한 클래스 타입의 여러 객체를 저장하는 배열.
- 예제:
public class Car { String brand; int year; public Car(String brand, int year) { this.brand = brand; this.year = year; } void drive() { System.out.println(brand + " is driving."); } } public class Main { public static void main(String[] args) { // 객체 배열 선언 및 초기화 Car[] cars = new Car[3]; cars[0] = new Car("Toyota", 2020); cars[1] = new Car("Honda", 2021); cars[2] = new Car("Ford", 2022); // 배열의 객체 사용 for (Car car : cars) { car.drive(); } } }
5. 배운 점
- 객체와 클래스의 관계 이해: 클래스는 설계도이고, 객체는 그 설계도로 생성된 구체적인 실체라는 점.
- 객체 배열 활용법: 배열을 사용하면 같은 타입의 여러 객체를 효율적으로 관리 가능.
- 생성자의 유용성: 필드 초기화를 간결하게 하고 객체 생성 시 필요한 값을 강제할 수 있다.
6. 추가 학습 내용
- 객체 배열 초기화 단축 문법:
Car[] cars = { new Car("Tesla", 2023), new Car("BMW", 2024), new Car("Audi", 2025) };
- 다형성(Polymorphism)를 활용한 객체 배열 확장성: 부모 클래스 타입 배열에 자식 클래스 객체 저장.
위 내용을 통해 자바 객체 지향 프로그래밍의 기본을 확실히 이해할 수 있었다. 앞으로 상속과 다형성을 연계하여 더 깊이 학습할 예정이닷.
728x90
'Java Study' 카테고리의 다른 글
TIL - 싱글톤 패턴 ->플라이웨이트 패턴 -> 프로토 타입 패턴 (0) | 2025.01.02 |
---|---|
TIL - 객체 지향 프로그래밍 (2) (3) | 2024.12.30 |
TIL - super() 에 대하여 (1) | 2024.12.23 |
TIL - 오버로딩 vs 오버라이딩 (0) | 2024.12.23 |
TIL - Java Math 관련 정리 (0) | 2024.12.23 |