경계의 경계

자바의 클래스(Class)와 객체(Object) 본문

Java

자바의 클래스(Class)와 객체(Object)

gigyesik 2024. 2. 1. 02:03

Intro

객체 지향 프로그래밍에서, 클래스와 객체는 프로그램을 설계하는 데 필요한 필수적인 요소이다.

자바에서 클래스가 논리(Logical)적 실체(Entity)만 될 수 있는 반면, 객체는 물리적(Physical) 또는 논리적 실체가 될 수 있다.

객체 (Object) 란 무엇인가

상태(State), 행동(Behavior)을 가지며 물리적, 논리적 실체가 존재할 수 있는 대상들은 모두 객체라는 이름으로 명명할 수 있다.

  • 물리적 실체 예시 : 자전거, 자동차, 의자 등 물건
  • 논리적 실체 예시 : 은행 시스템

객체의 구성요소

객체는 3개의 구성요소를 가진다.

  • 상태 (State) : 객체 안의 데이터
  • 행동 (Behavior) : 객체 안의 메서드
  • ID (Idenetity) : 객체의 고유번호

객체와 클래스의 관계

객체는 클래스의 인스턴스이다.

클래스는 객체가 생성될 설계도이고, 객체는 클래스를 통해 생성된 결과물인 것이다.

클래스 (Class) 란 무엇인가

클래스는 공통적인 특징을 가진 객체의 집합이다. 클래스는 메모리를 점유하지 않는다.

어떤 객체가 생성될 것인지 지정하는 설계도 역할을 하며, 오직 논리적 실체로만 존재할 수 있다.

클래스의 구성요소

클래스는 다음 중 전부 또는 일부를 가질 수 있다.

  • 필드 (Field)
  • 메서드 (Method)
  • 생성자 (Constructor)
  • 코드 블록 (Block)
  • 중첩 클래스, 인터페이스 (Nested class and interface)

클래스 선언

class className {
  field;
  method;
}

클래스의 인스턴스 변수와 메서드, new 키워드

  • 인스턴스 변수 (Instance Variable) : 클래스 내부, 메서드 외부에 있는 변수를 의미한다. 컴파일시에는 메모리를 점유하지 않고, 런타임에 객체나 인스턴스가 만들어질 때 메모리를 점유한다.

  • 메서드 (Method) : 객체의 행동을 정의하는 함수를 메서드라 한다.

  • new 키워드 : 메모리를 점유하도록 하는 키워드

      class Developer { // class
          int id; // instance variable
          String name;
    
          public static void main(String args[]) { // method
              Developer d1 = new Developer; // object, allocate memory
              System.out.println(d1.id); // accessing reference variable
          }
      }

Resources

'Java' 카테고리의 다른 글

자바의 인터페이스  (0) 2024.02.04
자바의 패키지  (0) 2024.02.02
자바와 자료구조  (0) 2024.01.30
자바의 예외처리  (1) 2024.01.30
자바의 반복문  (0) 2024.01.28