[Java] 자바 객체와 관련된 용어 정리

2025. 1. 24. 02:59·개발/Java

1. 객체 (Object):

  • 실제 세상의 사물이나 개념을 소프트웨어적으로 표현한 것
  • 상태(state)와 행동(behavior)을 가지며, 이를 통해 자신의 역할을 수행
  • 클래스의 인스턴스(instance) 라고도 한다.

2. 클래스 (Class):

  • 객체를 생성하기 위한 틀 또는 설계도.
  • 객체가 가져야 할 상태(필드)와 행동(메서드)을 정의.
  • 클래스는 객체가 어떻게 구성되고 동작해야 하는지에 대한 청사진을 제공.
  • 예: "자동차"라는 클래스는 "색상", "모델" 과 같은 필드와 "가속", "정지" 와 같은 메서드를 가질 수 있다.

3. 인스턴스 (Instance):

  • 클래스를 기반으로 메모리에 생성된 실체.
  • 객체와 동의어로 사용되기도 한다.
  • new 키워드를 사용하여 클래스로부터 인스턴스를 생성 할 수 있다.
  • 예: Car myCar = new Car(); 에서 myCar는 Car 클래스의 인스턴스.

4. 필드 (Field):

  • 객체의 상태를 나타내는 변수.
  • 멤버 변수(Member Variable) 또는 속성(Attribute) 이라고도 한다.
  • 클래스 내부에 선언되며, 객체가 생성될 때 메모리에 할당됩니다.
  • 자바 빈 규약이 적용된 객체에서 필드는 프로퍼티 (Property)라고도 한다.
    ( getter/setter 메서드를 통해 접근 가능한 필드 )
  • 예: Car 클래스에서 color, model, speed는 필드.

5. 메서드 (Method):

  • 객체의 행동을 정의하는 함수.
  • 객체가 수행할 수 있는 작업을 정의하며, 객체의 상태를 변경하거나, 정보를 반환할 수 있다.
  • 예: Car 클래스에서 accelerate(), brake(), honk()는 메서드

6. 생성자 (Constructor):

  • 객체가 생성될 때 자동으로 호출되는 특별한 메서드.
  • 객체의 초기화를 담당하며, 주로 필드의 초기값을 설정하는 데 사용.
  • 클래스 이름과 동일한 이름을 가지며, 리턴 타입이 없다.
  • 예: public Car(String color, String model) { ... }

7. 참조 (Reference):

  • 객체가 저장된 메모리 주소를 가리키는 것.
  • 참조 변수는 이 참조값을 저장하는 변수.
  • 자바에서는 포인터(*) 대신 참조를 사용하여 객체에 접근.

8. this:

  • 현재 객체 자신을 가리키는 참조.
  • 주로 인스턴스 메서드나 생성자 내에서 사용되며, 필드와 매개변수/지역변수의 이름이 동일할 때 이를 구분하기 위해 사용.
  • this.필드명 형태로 사용하여 현재 객체의 필드에 접근할 수 있다.
  • this()는 현재 클래스의 다른 생성자를 호출할 때 사용.

9. static:

  • 클래스에 속하는 멤버(필드, 메서드, 초기화 블록)를 선언하는 데 사용되는 키워드.
  • static 멤버는 객체 생성 없이 클래스이름.멤버 형식으로 접근할 수 있다.
  • static 필드는 모든 객체가 공유하는 변수이며,
    static 메서드는 객체의 상태와 무관하게 동작하는 유틸리티 메서드에 주로 사용된다.

10. 가비지 컬렉션 (Garbage Collection):

  • 더 이상 사용되지 않는 객체를 메모리에서 자동으로 회수하는 JVM의 기능.
  • 개발자가 명시적으로 메모리를 해제할 필요가 없다.

11. 상속 (Inheritance):

  • 기존 클래스의 특성(필드, 메서드)을 물려받아 새로운 클래스를 만드는 것.
  • 코드 재사용성을 높이고, 객체 간의 계층 관계를 표현할 수 있다.
  • 상속을 해주는 클래스를 부모 클래스(Super Class), 상속을 받는 클래스를 자식 클래스(Sub Class) 라고 한다.

13. 다형성 (Polymorphism):

  • 하나의 코드가 여러 타입의 객체에 대해 동작할 수 있는 성질.
  • 오버로딩(Overloading) 과 오버라이딩(Overriding) 을 통해 구현.
  • 오버로딩: 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것.
  • 오버라이딩: 부모 클래스로부터 상속받은 메서드를 자식 클래스에서 재정의하는 것.

14. 캡슐화 (Encapsulation):

  • 객체의 내부 구현을 외부로부터 숨기고, 허용된 메서드를 통해서만 접근하도록 제한하는 것.
  • 정보 은닉(Information Hiding) 이라고도 한다.
  • 접근 제어자(public, protected, private)를 사용하여 캡슐화를 구현.

15. 추상화 (Abstraction):

  • 객체의 공통적인 특성을 추출하고, 불필요한 세부 사항을 제거하여 핵심적인 기능에 집중하는 것.
  • 추상 클래스(Abstract Class) 와 인터페이스(Interface) 를 통해 추상화를 구현.
저작자표시 비영리 변경금지 (새창열림)

'개발 > Java' 카테고리의 다른 글

예외  (0) 2025.03.27
java.time  (0) 2025.03.14
java.util.Date  (0) 2025.03.14
Enum 타입  (0) 2025.03.05
[Java] equals() 와 hashCode()  (0) 2025.01.24
'개발/Java' 카테고리의 다른 글
  • java.time
  • java.util.Date
  • Enum 타입
  • [Java] equals() 와 hashCode()
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
[Java] 자바 객체와 관련된 용어 정리
상단으로

티스토리툴바