클래스와 객체

2025. 2. 20. 16:14Java/객체지향

1. 클래스와 객체   

  • 클래스
    • 클래스란 객체를 정의해 놓은 것, 객체의 설계도 또는 틀
    • 클래스는 사용자 정의 자료형
    • 구성 멤버에는 필드, 생성자, 메서드가 있다. 
  • 객체
    • 실제로 존재하는 것, 클래스에 정의된 대로 메모리에 올라가 구체적인 값이 들어가 있는 상태
    • 클래스를 한번 잘 만들어 놓으면 객체를 생성할 때마다 고민할 필요없이 클래스로부터 객체를 생성하기만 하면 된다.

 

2. 객체와 인스턴스

클래스 ㅡ[인스턴스화]ㅡ> 인스턴스(객체)
  • 클래스로부터 객체를 만드는 과정: '클래스의 인스턴스화'
  • 어떤 클래스로부터 만들어진 객체:  '그 클래스의 인스턴스'
  • 객체와 인스턴스
    • 객체는 모든 인스턴스를 대표하는 포괄적인 의미
    • 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미
    • 예: '책상은 객체다', '책상은 책상 클래스의 인스턴스이다'

3. 객체의 구성요소 (속성과 기능)

객체 = 속성 + 기능
  • 속성: 멤버변수, 특성, 필드, 상태 -> 주로 명사형태
  • 기능: 메서드, 함수, 행위 -> 주로 동사형태

 

​4. 클래스의 또 다른 정의

  • 객체지향이론 관점의 정의: 객체를 생성하기 위한 틀
  • 프로그래밍적인 관점의 정의
    • 데이터와 함수의 결합: 클래스 = 변수 + 함수, 변수(데이터)와 함수를 하나의 클래스에서 정의하여 서로 관계가 깊은 변수와 함수들을 함께 다룰 수 있게 한다.
    • 사용자 정의 타입: 프로그래밍 언어에서 제공하는 자료형 외 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것

 

5. 인스턴스의 생성과 사용

//인스턴스의 생성 
클래스명 변수명; //클래스의 객체를 참조하기 위해 참조변수를 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
클래스명 변수명 = new 클래스명(); //선언, 생성 동시에

//인스턴스의 사용 
//인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.
변수명.멤버변수;
변수명.메서드();