1. java.lang 패키지
- 자바가 기본으로 제공하는 라이브러리중에 가장 기본이 되는 것이 바로 java.lang패키지이다. lang은 Laguage의 줄임말.
- 대표적 클래스
- Object: 모든 자바 객체의 부모 클래스
- String: 문자열
- Integer, Long, Double : 래퍼타입, 기본형 데이터 타입을 객체로 만든 것
- Class : 클래스 메타 정보
- System : 시스템과 관련된 기본 기능들을 제공
2. Object

- 묵시적 : 개발자가 코드에 직접 기술하지 않아도 시스템 또는 컴파일러에 의해 자동으로 수행되는 것을 의미
- 명시적 : 개발자가 코드에 직접 기술해서 작동하는 것을 의미
Object클래스가 최상위 부모 클래스인 이유
- 공통 기능 제공
- Object 는 모든 객체에 필요한 공통 기능을 제공한다. Object 는 최상위 부모 클래스이기 때문에 모든 객체는 공통
기능을 편리하게 제공(상속) 받을 수 있다 - 객체의 정보를 제공하는 toString()
- 객체의 같음을 비교하는 equals()
- 객체의 클래스 정보를 제공하는 getClass()
- 기타 여러가지 기능
- Object 는 모든 객체에 필요한 공통 기능을 제공한다. Object 는 최상위 부모 클래스이기 때문에 모든 객체는 공통
- 다형성의 기본 구현
- 부모는 자식을 담을 수 있다. Object 는 모든 클래스의 부모 클래스이다. 따라서 모든 객체를 참조할 수 있다.
Object 클래스는 다형성을 지원하는 기본적인 메커니즘을 제공한다. 모든 자바 객체는 Object 타입으로 처리될 수
있으며, 이는 다양한 타입의 객체를 통합적으로 처리할 수 있게 해준다.
- 부모는 자식을 담을 수 있다. Object 는 모든 클래스의 부모 클래스이다. 따라서 모든 객체를 참조할 수 있다.
3. Object(2)
- Object는 모든 객체의 부모이므로 어떤 객체든지 인자로 전달할 수 있다.
- 단 하위 객체에서 정의한 메서드를 사용하려면 다운캐스팅이 필요하다.
- 모든 타입의 부모이므로, 객체들을 배열에 담을 수 있다.
- 또한 toString()등 메서드 오버라이딩하여 사용할 수 있다.
- 정적 의존관계 Vs 동적 의존관계
- 정적 의존관계는 컴파일 시간에 결정, 주로 클래스 간의 관계를 의미
- 동적 의존관계는 프로그램을 실행하는 런타임에 확인할 수 있는 의존관계이다. 어떤 객체가 인자로 전달될 지는 프로그램을 실행해봐야 알 수 있다.
- 동일성과 동등성
- 동일성(identity) : ==연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인
- 두 객체의 참조값을 비교한다.
- 동등성(Equality) : equal() 메서드를 사용하여 두 객체가 논리적으로 동등한지 확인.
- 동일성(identity) : ==연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인
'Java' 카테고리의 다른 글
| Java 중급 1 - String (0) | 2025.02.14 |
|---|---|
| Java 중급 1 - 불변객체 (0) | 2025.02.14 |
| Java 기본 - 다형성과 설계 (0) | 2025.01.30 |
| Java 기본 - 다형성 1 (2) | 2025.01.22 |
| Java 기본 - 상속 (0) | 2025.01.03 |