객체(Object)의 개념
객체는 현실 세계의 개념을 소프트웨어로 모델링한 것입니다. 예를 들어, 자동차, 사람, 책 등을 객체로 표현할 수 있습니다. Java에서 객체는 메모리에 생성되어 프로그램에서 사용되며, 객체는 상태와 행동을 가지게 됩니다.
- 상태(State): 객체의 속성을 나타내며, 필드(Field or variable(변수))로 표현됩니다.
- 행동(Behavior): 객체가 할 수 있는 동작을 나타내며, 메서드(Method or function)로 표현됩니다.
Class 개념
- 클래스 (Class): 객체를 생성하기 위한 만드는 것입니다.
- 필드 (Field): 클래스나 객체(Instance, 인스턴스)의 데이터를 저장하는 변수입니다.
- 메서드 (Method): 객체의 동작을 정의하는 함수입니다.
객체의 생성 (Instance화)
Instance Member와 Class Member 비교
특징 | Instance Member | Class Member (정적 Member) |
연결 대상 | 특정 클래스의 인스턴스에 연결됨. | 클래스 자체와 연결됨, 특정 인스턴스와는 무관함. |
Keyword | 특별한 키워드 없음 (기본 동작). | 'static' 키워드로 정의됨. |
Memory 할당 | 각 인스턴스마다 인스턴스 멤버의 고유한 복사본이 생성됨. | 하나의 복사본만 존재하며, 모든 인스턴스에 공유됨. |
접근 방식 | 클래스의 인스턴스를 통해 접근. | 클래스 이름이나 인스턴스를 통해 접근. |
사용 예 | 색상, 모델과 같은 객체별 속성. | 생성된 객체의 수와 같은 클래스 수준의 속성. |
'this' keyword 사용 | 현재 객체를 참조하기 위해 this 사용 가능. | 인스턴스와 연결되지 않으므로 this 사용 불가. |
Overloading과 Overriding 비교
특징 | Method Overriding | Method Overloading |
정의 | 서브클래스에서 슈퍼클래스의 메서드를 재정의. | 동일한 클래스에서 동일한 이름을 가지지만 매개변수가 다른 여러 메서드 정의. |
클래스 관계 | 상속 구조에서 부모 클래스와 자식 클래스 간에 발생. | 하나의 클래스 내에서 발생. |
메서드 시그니처(Method signature) | 부모 메서드와 동일한 시그니처를 가져야 함. | 매개변수의 타입, 개수 또는 순서가 달라야 함. |
반환 타입 | 오버라이딩된 메서드는 동일한 반환 타입을 가져야 함. | 동일하거나 다른 반환 타입을 가질 수 있음. |
다형성 | 런타임(Runtime) 다형성을 지원. | 컴파일타임 다형성을 지원. |
어노테이션(Annotation) | '@Override' 어노테이션을 사용하여 오버라이딩을 명시. | 특별한 어노테이션이 필요 없음. |
'Java' 카테고리의 다른 글
Java Error & Exception (0) | 2024.09.09 |
---|---|
Interface, Default, Static, Polymorphism(다형성) (0) | 2024.09.09 |
Java (접근 제어자, 상속의 개념) (0) | 2024.09.05 |
Java 변수(Variable) (0) | 2024.09.03 |
Java 개념 (0) | 2024.09.02 |