본문 바로가기
  • soobinhand의 기술 블로그
728x90

자바39

[자바 프로그래밍 언어] 5장 중첩 클래스와 인터페이스 5.1 정적 중첩 타입 중첩 타입을 정의할 수 있다는 것은 다음의 두 가지 주요 용도를 지원할 수 있다는 것을 의미한다. 중첩 클래스와 중첩 인터페이스가 논리적으로 관련된 그룹에 구조화되고 같은 범위에 속하는 타입이 될 수 있게 해준다. 중첩 클래스가 논리적으로 연관된 객체를 간단하고도 효율적으로 연결할 수 있다. 중첩 타입은 이 타입을 선언한 타입의 일부분이 되며 이 둘은 서로의 멤버에 접근할 수 있는 관계. 정적일 경우에는 단순한 구조의 타입을 허용하는 반면, 아닐 경우에는 중첩 객체와 이를 감싸는 외부 객체와의 특별한 관계를 정의해야 한다. 외부 클래스나 인터페이스 내에 static 멤버로 선언된 중첩 클래스나 중첩 인터페이스는 최상위 클래스나 최상위 인터페이스처럼 동작한다. 중첩 타입의 이름은 ".. 2021. 12. 25.
[자바 프로그래밍 언어] 4장 인터페이스 4.1 인터페이스 예제 인터페이스는 메소드의 집합이나 이 타입의 협약을 구성하는 다른 타입을 포함하여 추상적인 형태로 작성된다. 그래서 인터페이스는 구현을 포함할 수 없고 인터페이스의 인스턴스를 생성할 수도 없다. 인터페이스는 설계만을 표현한 것이며 클래스는 설계와 구현을 함께 표현한 것이다. 대부분의 인터페이스는 여러 클래스의 다양성을 표현할 수 있는 특성을 정의하고 있다. 이 특성들은 어떤 것을 할 수 있다는 의미로 'able'을 포함한다. cloneable - 이 타입의 객체는 복제를 지원한다. comparable - 이 타입의 객체는 비교할 수 있는 순서를 가진다. Runnable - 이 타입의 객체는 독립적인 스레드로 실행할 수 있는 작업 단위를 표현한다. 클래스는 슈퍼 인터페이스에 정의된 메소.. 2021. 12. 24.
[자바 프로그래밍 언어] 3장 클래스 확장 3.1 확장 클래스 주어진 클래스의 객체가 원래 클래스나 이를 확장한 클래스처럼 다양한 형식을 가질 수 있는 것을 다형성이라고 한다. 클래스 확장은 두 가지 형식의 상속을 제공한다. 협약 또는 타입의 상속, 이것에 의해 서브 클래스는 슈퍼 클래스의 타입을 얻어 슈퍼 클래스가 사용될 수 있는 곳에 다형적으로 사용될 수 있다. 구현의 상속, 서브 클래스는 슈퍼 클래스의 접근 가능한 필드와 메소드의 구현을 획득한다. 클래스 확장은 다양한 목적으로 사용할 수 있지만 주로 특수화를 위해 사용한다. 특수화란 특정 클래스를 확장하는 서브 클래스에서 새로운 행동을 정의하여 서브 클래스가 슈퍼 클래스의 특수화된 버전이 되는 것을 말한다. 외부 클래스에서 접근할 수 있는 메소드와 필드의 집합 그리고 클래스의 멤버들이 어떻.. 2021. 12. 23.
[자바 프로그래밍 언어] 2장 클래스와 객체 2.1 단순한 클래스 자바 프로그래밍의 기본 단위는 클래스이다. 클래스는 메소드를 정의한다. 이름을 잘 짓는 것은 클래스 설계의 핵심이다. 제한자가 없는 클래스는 오직 소속된 패키지 내에서만 접근할 수 있다. abstract 클래스는 불안정한 것으로 간주되므로 클래스의 인스턴스를 생성할 수 없다. final 클래스는 상속할 수 없다. 클래스는 동시에 final과 abstract가 될 수 없다. public 클래스가 파일당 오직 한 개만 존재해야 한다. 2.2 필드 클래스에 선언하는 변수를 필드라고 한다. 서로 다른 인스턴스로 분리된 객체의 필드가 의미하는 것은 각 객체만의 유일한 상태를 가진다는 것이다. 이러한 필드를 인스턴스 변수라 한다. 필드는 동시에 final과 volatile이 될 수 없다. 가끔.. 2021. 12. 22.
728x90