자바 객체 지향 프로그래밍 기초 1.

공부하자·2023년 4월 8일
1

그녀를 붙Java

목록 보기
2/8
post-thumbnail

1. 필드 (Fields)

필드는 객체의 속성을 나타내는 변수입니다. 예를 들어, 자동차 객체를 만들 때, 자동차의 색상, 모델, 제조사 등이 해당 객체의 필드가 될 수 있습니다.

public class Car {
    private String color; // 색상
    private String model; // 모델
    private String manufacturer; // 제조사
}

위 코드에서, Car 클래스의 필드로 색상, 모델, 제조사를 나타내는 color, model, manufacturer 변수가 선언되어 있습니다.


2. 생성자 (Constructors)

생성자는 객체를 생성할 때 호출되는 특별한 메소드입니다. 생성자를 사용하여 객체를 초기화할 수 있습니다. 예를 들어, 자동차 객체를 생성할 때, 색상, 모델, 제조사를 인자로 받아 해당 객체를 초기화하는 생성자를 작성할 수 있습니다.


public class Car {
    private String color;
    private String model;
    private String manufacturer;

    public Car(String color, String model, String manufacturer) {
        this.color = color;
        this.model = model;
        this.manufacturer = manufacturer;
    }
}

위 코드에서, Car 클래스의 생성자로 color, model, manufacturer를 인자로 받아 해당 객체를 초기화하는 코드가 작성되어 있습니다.


3. 메소드 (Methods)

메소드는 객체의 동작을 나타내는 함수입니다. 예를 들어, 자동차 객체에서 시동을 켜거나 멈출 수 있는 메소드를 작성할 수 있습니다.


public class Car {
    private String color;
    private String model;
    private String manufacturer;
    private boolean engineOn;

    public Car(String color, String model, String manufacturer) {
        this.color = color;
        this.model = model;
        this.manufacturer = manufacturer;
        this.engineOn = false;
    }

    public void startEngine() {
        this.engineOn = true;
    }

    public void stopEngine() {
        this.engineOn = false;
    }
}

위 코드에서, Car 클래스의 startEngine와 stopEngine 메소드가 선언되어 있습니다.


4. 객체 (Objects)

객체는 클래스의 인스턴스입니다. 즉, 클래스를 기반으로 실제로 메모리에 할당된 것을 객체라고 합니다. 예를 들어, 자동차 객체를 만들기 위해서는 Car 클래스를 기반으로 객체를 생성해야 합니다.


public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Red", "Sonata", "Hyundai");
        myCar.startEngine();
    }
}

위 코드에서, Car 클래스를 기반으로 myCar 객체를 생성하고 startEngine 메소드를 호출하여 해당 자동차의 엔진을 켰습니다.


5. 클래스 (Classes)

클래스는 객체를 만들기 위한 청사진(blueprint)입니다. 즉, 객체를 생성하기 위한 필드와 메소드를 정의하는 것입니다. 예를 들어, Car 클래스는 자동차 객체를 만들기 위한 필드와 메소드를 정의하는 청사진이 됩니다.

public class Car {
    private String color;
    private String model;
    private String manufacturer;
    private boolean engineOn;

    public Car(String color, String model, String manufacturer) {
        this.color = color;
        this.model = model;
        this.manufacturer = manufacturer;
        this.engineOn = false;
    }

    public void startEngine() {
        this.engineOn = true;
    }

    public void stopEngine() {
        this.engineOn = false;
    }
}

위 코드에서, Car 클래스는 자동차 객체를 만들기 위한 필드와 메소드를 정의하는 청사진이 됩니다.


다른 예시를 보며 한 눈에 정리해보겠습니다.

아래는 필드, 생성자, 메소드, 객체, 클래스가 모두 포함된 또 다른 예시용 자바 코드입니다.

public class Phone {
    // 필드(멤버 변수)
    private String model;
    private int year;
    private String color;
    
    // 생성자
    public Phone(String model, int year, String color) {
        this.model = model;
        this.year = year;
        this.color = color;
    }
    
    // 메소드
    public void start() {
        System.out.println(model + "이(가) 켜집니다.");
    }
    
    public void stop() {
        System.out.println(model + "이(가) 꺼집니다.");
    }
    
    // 객체(인스턴스)
    Phone myPhone = new Phone("Iphone 11 pro", 2019, "White");
}

필드(멤버 변수): 클래스 내부에 선언된 변수로, 클래스의 상태를 나타냅니다. 위 코드에서는 model, year, color가 해당합니다.

생성자: 클래스를 객체로 생성할 때 호출되는 메소드로, 객체의 초기화를 담당합니다. 위 코드에서는 Phone 클래스에 선언된 생성자가 해당합니다.

메소드: 클래스가 수행하는 작업을 정의한 메소드로, 필드의 값을 변경하거나 다른 객체와 상호작용하는 등의 동작을 수행합니다. 위 코드에서는 start()와 stop() 메소드가 해당합니다.

객체(인스턴스): 클래스를 실체화한 것으로, 메모리에 할당된 객체를 의미합니다. 위 코드에서는 Phone myPhone = new Phone("Iphone 11 pro", 2019, "White"); 부분이 해당합니다. 이 부분은 Car 클래스를 기반으로 myCar라는 객체를 생성하고, 생성자를 호출하여 객체를 초기화합니다.

클래스: 자바에서는 객체 지향 프로그래밍을 지원하기 위해 클래스를 사용합니다. 클래스는 필드, 생성자, 메소드 등을 포함할 수 있으며, 객체를 생성하는 템플릿으로 사용됩니다. 위 코드에서는 Phone 클래스가 해당합니다.

0개의 댓글