Post

클래스와 인스턴스


Class

Class

  • 객체를 정의해 놓은 것
  • 객체의 설계도 또는 툴
  • 객체를 생성하는데 사용됨

Class를 사용하는 이유

Class

  • 코드의 재사용성이 높다 (새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다)
  • 코드의 관리가 용이하다 (코드간의 관계를 이용해서 쉽게 코드를 변경할 수 있다)
  • 신뢰성이 높은 프로그래밍을 가능하게 한다

Class 정의 방법

Class는 객체를 정의하는 과정으로 클래스에는 객체의 모든 속성과 기능이 정의되어 있다

1
2
3
4
5
6
7
8
9
10
class human {
    // 속성(변수)
    String job; 
    String sex;
    String name; 
    int age;

    // 기능(메서드)
    void ageadd() { age++; }
    void jobchange() { job="callmen" }

객체

  • 객체는 실제로 존재하는 것 사물 또는 개념이다
  • 객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 달라진다
  • 클래스에 정의된 내용대로 메모리에 생성된 것이다

객체의 구성 요소들

  • 속성(property)
    • 멤버변수(member variable)
    • 특성(attribute)
    • 필드(field)
    • 상태(state)
  • 기능(function)
    • 메서드(method)
    • 함수(function)
    • 행위(behavior)

객체 생성 방법

위에서 생성한 Class를 사용해서 객체를 만드는 과정을 인스턴스화라고 하며 Class로부터 만들어진 객체를 해당 Class의 인스턴스라고 한다

  • 객체 : 모든 인스턴스를 대표하는 포괄적인 의미
  • 인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미
1
2
클래스명 참조변수명; // 클래스의 객체를 참조하기 위한 참조변수 선언
참조변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장

new 연산자 : 인스턴스(객체)를 생성해주는 역할을 한다 메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고 그 공간의 참조값을 객체에게 반환하여 주고 생성자를 호출한다


[객체 사용 과정]

graph LR
A(Class 정의하기 *설계도 그리기*)-->B(Class를 사용해서 객체 생성하기 *설계도를 이용해서 물건 생산하기*)-->C(만들어진 객체를 사용하기 *생산된 물건 사용하기*)
This post is licensed under CC BY 4.0 by the author.