2024/07/06 3

익명 객체

이름이 없는 객체를 익명객체라 한다. 명시적으로 클래스를 선언하지 않기 때문에 쉽게 객체를 생성할 수 있다.익명객체는 필드값, 로컬 변수값, 매개변수값으로 주로 사용된다. 익명 객체는 클래스를 상속하고나 인터페이스를 구현해야만 생성할 수 있다.상속시에 익명 상속 객체, 구현시에 익명 구현 객체라고 한다. 익명 자식객체new 부모생성자(매개값) { //필드 //메소드} 익명 자식 객체는 위와 같이 생성된다. 생성된 객체는 부모타입의 필드, 로컬변수, 매개변수 값으로 대입할 수 있다.블록 안은 익명 자식 객체가 가져야 할 멤버이다. 부모타입의 멤버만 접근할 수 있기때문에 오버라이딩되는 코드가 작성된다. package ch09.sec07.ex01;public class Car { // 필드에 Tir..

Java 2024.07.06

중첩 인터페이스

중첩 인터페이스는 클래스의 멤버로 선언된 인터페이스를 말한다.인터페이스를 클래스 내부에서 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현객체를 만들기 위함이다. 중첩 인터페이스는 암시적으로 static이므로 static을 생략해도 항상 객체 없이 인터페이스를 사용할 수 있다. 중첩 인터페이스는 안드로이드와 같은 UI 프로그램에서 이벤트를 처리할 목적으로 많이 활용된다.예를 들어 버튼을 클릭했을 때 이벤트를 처리할 객체는 중첩 인터페이스를 구현해서 만든다. package ch09.sec06.ex01;public class Button { // 정적 중첩 인터페이스 public static interface ClickListener { // 추상 메서드 void o..

Java 2024.07.06

로컬 클래스 / 바깥 클래스

로컬 클래스생성자 또는 메소드 내부에서 선언된 클래스를 로컬 클래스라고 한다.package ch09.sec04.ex01;public class A { A() { // 로컬 클래스 선언 class B { } // 로컬 객체 생성 B b = new B(); } void method() { // 로컬 클래스 선언 class B { } // 로컬 객체 생성 B b = new B(); }} 로컬 클래스 B 내부에는 일반 클래스와 같이 필드, 생성자, 메소드 선언이 올 수 있다.정적 필드와 메소드는 java 17부터 사용가능하니 참고 로컬 변수(생성자 또는..

Java 2024.07.06