클래스, 객체, 인스턴스의 관계

VANS·2022년 1월 16일
0

스터디

목록 보기
10/15

22.01.15(토)

미션과 수업으로 학습한 클래스, 객체, 인스턴스간의 관계에 대해 간략하게 정리하고자 한다.


동네(소프트웨어 세계)에서 곧 오픈 예정인 헬스장중 어느곳을 갈지 고려중인 반스를 예시로 들어보겠다.

클래스

  • 코드를 담고 있고, 연관(공통)되어 있는 메소드와 변수들을 모아놓아서 분류를 위해 활용 가능하다.

    반스는 헬스장에는 운동하고, 씻고, 물마시는 행동(메소드)을 위해
    기구, 탈의실, 정수기 항목(변수)들이 있었으면 좋겠다고 생각(실제로 구현X)을 하고 있다.

class 헬스장 {
     기구(변수)
     탈의실(변수)
     정수기(변수)

     운동하기(메소드)
     씻기(메소드)
     물마시기(메소드)
}

객체(오브젝트)

  • 구현해야할 대상으로 선언한 객체는 인스턴스화 되기전에 메모리 차지를 하지않는다.

    반스 : 헬스장 A랑 B는 기구, 탈의실, 정수기들은 있는데 아직 오픈(인스턴스화)를 안해서
    어느회사 기구인지 탈의실은 락커가 몇개인지 정수기는 몇개인지 모르겠네?

class 헬스장 {
     기구(변수)
     탈의실(변수)
     정수기(변수)

     운동하기(메소드)
     씻기(메소드)
     물마시기(메소드)
}

public class 동네 {
	public static void main(String[] args) {
    	헬스장 A;
        헬스장 B;
        }
}

인스턴스

  • 인스턴스는 실제로 메모리가 할당된 상태로, 클래스를 통해 객체가 실제로 구현된것이다.

    반스 : 헬스장 A, B가 오픈(인스턴스화)를 했으니 보러가자!

class 헬스장 {
     기구(변수)
     탈의실(변수)
     정수기(변수)

     운동하기(메소드)
     씻기(메소드)
     물마시기(메소드)
}

public class 동네 {
	public static void main(String[] args) {
    	헬스장 A;
        헬스장 B;
        
        A = new 헬스장();
	B = new 헬스장();
        }
}
profile
코딩도 점진적 과부화

0개의 댓글