본문 바로가기

백엔드 기술/Java

클래스와 객체의 차이

클래스
객체를 만들 수 있는 설계도.

객체
클래스를 통해 생성된 인스턴스.

ex) 개발자 입장에서 상품 페이지를 만든다고 가정하자.
전자 제품 담당자라면, 제품 종류 별로 TV, AC, Stove 페이지를 만들어야 한다.
또한 제품별로 이름, 가격, 특징 등을 다르게하여 일일이 만들어야 하지만,
객체 지향 개념으로 클래스를 이용해 인스턴스를 생성한다면
각 제품군의 설계도를 만들어두면, 
필요한 정보들만 넣어 객체를 만들면 간편하게 관리가 가능하다.

1. [제품군별 설계도를 만든다]

public class TV {
    String name;
    int size;
    int price;
    String function;

    public TV(String name, int size, int price, String function) {
        this.name = name;
        this.size = size;
        this.price = price;
        this.function = function;
    }
}

public class AC {
    String name;
    int size;
    int price;
    String function;

    public AC(String name, int size, int price, String function) {
        this.name = name;
        this.size = size;
        this.price = price;
        this.function = function;
    }
}

public class Stove {
    String name;
    int size;
    int price;
    String function;

    public Stove(String name, int size, int price, String function) {
        this.name = name;
        this.size = size;
        this.price = price;
        this.function = function;
    }
}

2. 설계도(클래스)를 활용하여 원하는 인스턴스를 생성한다.

public class Main {
    public static void main(String[] args) {
        TV tv1 = new TV("tv1",75,1000,"스마트TV");
        TV tv2 = new TV("tv2",85,1500,"초거대TV");
        AC ac1 = new AC("ac1",50,500,"스탠드형");
        AC ac2 = new AC("ac2",60,800,"스탠드+벽결이");
        Stove st1 = new Stove("stv1",30,100,"3인용 난로");
        Stove st2 = new Stove("stv2",50,150,"6인 이상용 난로");
    }
}