도찐개찐

[JAVA] 클래스(Class), 객체(Object) 본문

JAVA

[JAVA] 클래스(Class), 객체(Object)

도개진 2022. 7. 6. 11:48

클래스(Class)

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

클래스를 정의하는 방법

클래스란 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있다.

copy typescriptclass Tv {
    // 속성(변수)
    String color; 
    boolean power; 
    int channel;

    // 기능(메서드)
    void power() { power = !power; }
    void channelUp() { channel++; }
    void channelDown() { channel--; }

객체(Object)

객체

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

객체 만드는 방법

인스턴스화

  • 클래스로부터 객체를 만드는 과정
  • 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

객체 : 모든 인스턴스를 대표하는 포괄적인 의미
인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미

 

객체의 구성 요소

  • 속성(property)
    • 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
  • 기능(function )
    • 메서드(method), 함수(function), 행위(behavior)
copy cpp클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
copy cppTv t; // Tv 클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv 인스턴스의 주소를 t에 저장

예)

copy typescriptclass Tv {
    String color;
    boolean power;
    int channel;

    void power() { power = !power; }
    void channelUp() { ++channel; }
    void channelDown() { --channel; }
}

public class TvTest {
    public static void main(String[] args) {
        Tv t;
        t = new Tv();
        t.channel = 7;
        t.channelDown();
        System.out.println("현재 채널은 " + t.channel + "입니다.");
    }
}

new 연산자

copy java클래스 변수 = new 클래스();

인스턴스(객체)를 생성해주는 역할

메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고

그 공간의 참조값을 객체에게 반환하여 주고 이어서 생성자를 호출한다.

728x90
Comments