본문 바로가기
개인 기록

메서드, 생성자, 객체, 클래스, 인스턴스

by Slow Motion~ 2023. 3. 15.
728x90

이것들을 피자를 만든다고 생각해서 이해하기로 했다.

 

  • 메서드 

메서드는 레시피의 특정 동작과 같다. 특정 동작이란 토핑 추가를 한다. 피자를 굽는다. 등이 있겠다.

public void addToppings(String topping) {
    // 토핑을 추가하는 기능
}

public void bakePizza() {
    // 피자를 굽는 기능
}
  • 생성자

피자을 만드는 사람과 같다. 피자 제조자가 피자을 만들기 위해 레시피를 사용하는 것처럼, 생성자(피자을 만드는 사람)는 객체(피자)의 인스턴스(한조각)를 만들기 위해 클래스를 사용한다.

public class Pizza {
    // 피자에 대한 정보를 저장하는 멤버 변수들

    public Pizza(String size, String crustType, String sauceType) {
        // 피자 객체를 생성하는 생성자
        // 입력된 매개변수를 토대로 멤버 변수들을 초기화
    }
}
  • 클래스

요리 레시피와 같다.

public class Pizza {
    // 피자에 대한 정보를 저장하는 멤버 변수들

    public Pizza(String size, String crustType, String sauceType) {
        // 피자 객체를 생성하는 생성자
        // 입력된 매개변수를 토대로 멤버 변수들을 초기화
    }

    public void addToppings(String topping) {
        // 토핑을 추가하는 기능
    }

    public void bakePizza() {
        // 피자를 굽는 기능
    }
}
  • 객체 

피자와 같다. 레시피(클래스)를 사용하여 만들어진 피자는 피자 레시피와는 다른 개별적 물건이다.

마찬가지로 객체도 클래스와 개별적인 관계이다.

Pizza pizza1 = new Pizza("large", "thick crust", "tomato sauce");
Pizza pizza2 = new Pizza("medium", "thin crust", "pesto sauce");

 

  • 인스턴스

객체가 피자라면 인스턴스는 배달된 피자와 같다. 클래스(레시피)를 통해 만들어진 피자(객채)가 메모리에 할당이 된다. 그리고 실제로 사용될 수 있는 상태(배달 준비가 완료된 피자)를 인스턴스라고 할 수 있겠다.

 

예를 들어 OO아파트 303호에 배달되었다고 하면 303주소에 배달되 있는 피자가 인스턴스이다.

Pizza pizza1 = new Pizza("large", "thick crust", "tomato sauce");
// pizza1은 Pizza 클래스의 인스턴스이다.

Pizza pizza2 = new Pizza("medium", "thin crust", "pesto sauce");
// pizza2는 Pizza 클래스의 인스턴스이다.

 

'개인 기록' 카테고리의 다른 글

Intellij gradle 버전 변경 및 경로 설정  (0) 2023.03.30
Intellij 자바 버전 오류  (0) 2023.03.30
네트워크 정리할 것  (0) 2023.02.21
Linux 명령어  (0) 2023.02.20
Maven 설치 환경변수 설정  (0) 2023.02.15

댓글