supremest.35 개발 블로그

[Java] 클래스 본문

Study/Java

[Java] 클래스

supremest.35 2021. 4. 15. 17:45

객체와 클래스, 인스턴스가 참 헷갈리긴 했다. 강사님이 잘 설명해주셨기에 이해가 됐다.

 


클래스

- 객체는 설계도를 바탕으로 만들어진다.

- 자바에서 객체에 대한 설계도가 클래스(class)다.

- 클래스는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다.

- 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다.

- 클래스로부터 객체를 생성하는 과정을 인스턴스화라고 한다.

- 자바의 클래스에서 속성(property)을 멤버변수 또는 필드라고 부른다.

- 자바의 클래스에서 기능(function)을 메소드라고 부른다.

 

객체 지향 프로그래밍 개발 단계

  1. 클래스 설계
  2. 클래스로 객체 생성
  3. 생성된 객체의 속성과 기능 이용하기
내가 이해한 클래스, 객체 : 

클래스라는 설계도를 이용해서 객체가 만들어진다.
예를 들어, 모니터를 만드는 설계도가 있다고 생각해보자. (클래스 설계)
공장에서는 이 설계도를 이용해서 여러 모니터를 만든다. (클래스로 객체 생성)
각 모니터는 소비자로부터 사용된다. (생성된 객체의 속성과 기능 이용하기)

 

 

객체의 생성과 참조형 변수


- new 연산자를 사용하면 클래스로부터 객체를 생성할 수 있다.(인스턴스화)

  • new 클래스명();

- 객체는 메모리의 힙(Heap)영역에 만들어진다.

  • 만들어진 객체는 garbage collector가 자동으로 정리한다.
    • new 연산자로 만들어진 객체를 아무도 사용하지 않을 때, garbage collector의 정리 대상이된다.
    • 언제 정리할지는 모른다. 

- new 연산자는 메모리의 힙 영역에 객체를 생성한 후, 메모리 내에서 객체의 위치를 알 수 있도록 객체의 주소값(메모리에서 객체가 위치하고 있는 주소)를 반환한다.

 

- new 연산자가 반환하는 주소값을 저장하기 위한 참조변수가 필요하다.

  • 참조변수는 생성된 객체의 주소값을 저장하는 변수다.
  • 참조변수의 타입은 해당 객체를 생성할 때 사용했던 클래스 이름이다.
  • 주소값이 저장된 참조변수는 힙영역에 생성된 객체를 참조하게 된다.

 

- 생성된 객체의 속성과 기능을 사용하기 위해서는 반드시 해당 객체를 참조하고 있는 참조변수를 사용해야한다.

 

생성된 객체의 속성과 기능 이용하기

- 참조변수가 참조하는 객체의 속성과 기능을 사용할 수 있다.

- 생성된 객체의 속성과 기능을 사용하기 위해서는 반드시 참조변수에 객체의 주소값을 저장해두어야 한다.

 

 

 

 

클래스의 구성요소


  • 필드(field)
    • 객체의 데이터, 상태정보, 부품객체 등을 저장하는 곳
    • 객체의 고유한 속성을 나타낸다.
    • 초기값을 지정하지 않으면 해당 데이터의 기본값으로 초기화됨.
    • 생성자와 메소드 전체에서 사용가능
    • 객체와 함께 유지됨
  • 생성자(constructor)
    • new 연산자로 호출되는 메소드
    • 객체 생성시 초기화 담당
    • 반드시 클래스의 이름과 동일한 이름을 가지고, 반환타입 없음.
    • 객체를 생성할 때만 호출가능
  • 메소드(method)
    • 이름을 가진 수행문의 블록
    • 객체의 고유한 기능
    • 필드의 값 조회, 수정가능

 

 

모든 클래스는 Object클래스의 자손

 

'Study > Java' 카테고리의 다른 글

[Java] 개행문자 치환  (0) 2022.04.14
[Java] 메소드  (0) 2021.04.16
[Java] 객체란  (0) 2021.04.15
[Java] 컬렉션 프레임워크(Collection Framework)  (0) 2021.04.01
[Java] 필드(멤버)변수, 지역변수  (0) 2021.04.01