Java Study

TIL - 객체 지향 프로그래밍

초코너무조코 2024. 12. 30. 11:24
728x90

자바 클래스, 객체, 인스턴스 생성 및 객체 배열 공부 log


1. 클래스, 객체, 인스턴스의 기본 개념

  • 클래스(Class)
    • 객체를 정의하는 설계도 역할을 한다.
    • 클래스는 속성(필드)과 동작(메서드)을 정의한다.
    • 예: class Car { ... }
  • 객체(Object)
    • 클래스를 통해 생성된 실체이며, 메모리에 로드된 상태.
    • 클래스의 인스턴스라고도 한다.
  • 인스턴스(Instance)
    • 객체를 구체적으로 생성한 것을 의미한다.
    • 클래스 → 설계도
    • 객체 → 설계도로 만든 구체적인 제품
    • "인스턴스"라는 용어는 특정 클래스에서 생성된 객체를 지칭할 때 사용한다.

2. 클래스와 객체 생성

  1. 클래스 정의

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. 배운 점

  1. 객체와 클래스의 관계 이해: 클래스는 설계도이고, 객체는 그 설계도로 생성된 구체적인 실체라는 점.
  2. 객체 배열 활용법: 배열을 사용하면 같은 타입의 여러 객체를 효율적으로 관리 가능.
  3. 생성자의 유용성: 필드 초기화를 간결하게 하고 객체 생성 시 필요한 값을 강제할 수 있다.

6. 추가 학습 내용

  • 객체 배열 초기화 단축 문법:
    Car[] cars = {
        new Car("Tesla", 2023),
        new Car("BMW", 2024),
        new Car("Audi", 2025)
    };
    
  • 다형성(Polymorphism)를 활용한 객체 배열 확장성: 부모 클래스 타입 배열에 자식 클래스 객체 저장.

위 내용을 통해 자바 객체 지향 프로그래밍의 기본을 확실히 이해할 수 있었다. 앞으로 상속과 다형성을 연계하여 더 깊이 학습할 예정이닷.

728x90