반응형 개발70 자바(Java) - 익명 객체1 (익명 자식 객체 생성) 익명(anonymous)객체는 이름이 없는 객체 이다. 어떤 클래스를 상속하거나 인터페이스를 구련해야만 한다. 부모클래스를 상속해서 자식객체를 생성해서 변수에 담는다. -> 익명 자식 객체 (인터페이스는 생성자를 갖지않음) 새로운 객체는 {...} 구현되며 인터페이스 타입에 맞게 변수에 담는다. -> 익명 구현 객체 익명 자식 객체 생성 - 필드 선언할 때 초기값으로 익명 자식 객체를 생성하여 대입 - 메소드 내에서 로컬 변수 선언 시 초기값으로 익명 자식 객체를 생성해서 대입 - 메소드의 매개 변수가 부모 타입일 경우 메소드를 호출하는 코드에서 익명 자식 객체를 생성해서 매개값으로 대입 익명 자식 객체의 멤버 접근 제한 익명 자식 객체에 새롭게 정의된 필드와 메소드는 익명 자식 객체 내부에서만 사용되고.. 2020. 11. 24. 자바(Java) - 중첩 인터페이스 중첩 인터페이스 클래스의 멤버로 선언된 인터페이스 해당 클래스와 긴밀한 관계를 맺는 구현클래스를 만들기 위해서 클래스 내부에서 선언한다. class A{ //중첩 인터페이스 [static] interface I{ void method(); } } 인스턴스 멤버 인터페이스와 정적 멤버 인터페이스 모두 가능하다. 예시1) 중첩 인터페이스 public class Button { //인터페이스 타입 필드 OnClickListener listener; //매개 변수의 다형성 void setOnClickListener(OnClickListener listener) { this.listener = listener; } void click() { listener.onClick(); //ㄱ현 객체의 onClick()메소.. 2020. 11. 23. 자바(Java) - 중첩 클래스의 접근 제한 중첩 클래스의 접근 제한 바깥 필드와 메소드에서 사용 제한 A 가 있어야, B를 사용할 수 있다. C는 A가 없이도 사용 가능하다. 예시1) 바깥 필드와 메소드에서 사용 제한 public class A { //인스턴스 멤버 클래스 class B{} //정적 멤버 클래스 static class C{} //인스턴스 필드 B field1 = new B(); C field2 = new C(); //인스턴스 메소드 void method1() { B var1 = new B(); C var2 = new C(); } //정적 필드 초기화 //static B field3 = new B(); //A객체가 있어야 B객체를 이용할 수 있다. static C field4 = new C(); //A객체 없이도 C객체를 사용할 수.. 2020. 11. 23. 자바(Java) - 중첩 클래스와 중첩 인터페이스 객체 지향 프로그래밍에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스와 관계를 맺을 경우에는 클래스 내부에 선언하는 것이 좋다. 중첩 클래스 (nested class) 클래스 내부에 선언한 클래스이며, 바깥 클래스와 긴밀한 관계를 가진다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 콛의 복잡성을 줄일 수 있다. 중첩 인터페이스 (nested interface) 클래스 내부에 선언한 인터페이스이며, 바깥 클래스와 긴밀한 관계를 가진다. 중첩 클래스 멤버 클래스 클래스의 멤버로서 선언되는 중첩 클래스 로컬 클래스 생성자 또는 메소드 내부.. 2020. 11. 23. 자바(Java) - 타입 변환과 다형성 다형성을 구현하기 위해서는 메소드 재정의와 타입 변환이 필요하다. 인터페이스 역시 이 두가지 기능이 제공되므로 상속과 더불어 다형성을 구현하는데 많이 사용된다. 상속은 같은 종류의 하위 클래스를 만드는 기술이고, 인터페이스는 사용방법이 동일한 클래스를 만드는 기술 이다. 개념상 차이는 있지만 상속과 인터페이스 둘 다 다형성을 구현하는 방법은 비슷하다. 인터페이스의 다형성 인터페이스 사용 방법은 동일하지만 구현 객체를 교체하여 프로그램 실행 결과를 다양하게 할 수 있다. 자동 타입 변환 (promotion) 구현 객체가 인터페이스 타입으로 변환되는 것이다. 구현 객체와 자식 객체는 인터페이스 타입으로 자동 타입 변환이 된다. 인터페이스 변수 = 구현객체; //구현객체가 인터페이스 타입으로 변환 필드의 다형.. 2020. 11. 17. 자바(Java) - 인터페이스 자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. 인터페이스를 통해 다형성을 구현할 수 있다. 인터페이스(interface) 개발 코드는 인터페이스를 통해서 객체와 서로 통신한다. 인터페이스의 메소드를 호출하면 객체의 메소드가 호출된다. 개발 코드를 수정하지 않으면서 객체 교환이 가능하다. 인터페이스 선언 ~.java 형태 소스 파일로 작성되고, 컴파일러를 통해 ~.class 형태로 컴파일 된다. 클래스와 물리저거 파일 형태는 같으나 소스 작성 내용이 다르다. [public] interface 인터페이스이름 { ... } 인터페이스는 객체로 생성할 수 없으므로 생성자를 가질 수 없다. interface 인테페이스 이름 { /.. 2020. 11. 16. 이전 1 2 3 4 5 6 ··· 12 다음 728x90 반응형 LIST