티스토리 뷰
btnNewButton.addActionListener(new ActionListener() { //익명형(객체명이나 대입연산자가 없잖아) public void actionPerformed(ActionEvent e) { /* 내가 원하는 내용을 쓰는 곳 */ } });
private JButton getBtnNewButton() { if (btnNewButton == null) { btnNewButton = new JButton("New button"); btnNewButton.addActionListener(new ActionListener() { //익명형(객체명이나 대입연산자가 없잖아) public void actionPerformed(ActionEvent e) { /* 내가 원하는 내용을 쓰는 곳 */ } }); btnNewButton.setBounds(12, 10, 180, 40); } return btnNewButton; }
- 타입 변환과 다형성: interface 사용
interface R{ ... }
class A implements R {}
class B implements R{ {}
A a = new A(); //가능
B b = new B();
R r = new A();
r = new B(); //위, 아래 다 가능!
--->r이 어떨 때는 A형, 또 어떨 때는 B형? 여러가지 모양을 가지고 있다, 즉 다형성!
부모타입을 가지고 자식객체 생성 가능.
여러가지 클래스 유형을 동시에 표현할 수 있다.
public void m( A b) {
m(a); //A a = new A(); //가능
m(b); //불가능, 왜? A타입만 받기로 했으니까; 생성자로 ㅇㅇ
}
public void m(B b) {
m(b); //가능
m(a); //불가능
}
public void m(R b) {
m(a); //가능
m(b); //가능
} //매개변수의 다형성
package chapter08; public class InterfaceTest { RemoteControl rc; //필드가 있더라 //필드의 다형성(필드 변수) public void ex1() { rc = new Television(); rc.powerOn(); rc.powerOff(); rc = new Audio(); rc.powerOn(); rc.powerOff(); //Television t = new RemoteControl(); <-자식타입의 인스턴스에 부모를 만들 수 없다. (즉, 위의 반대경우가 불가하다는 말) } public InterfaceTest() { this.ex1(); } public static void main(String[] args) { new InterfaceTest(); //한번 쓰고 버릴 용도로다가 익명으로 생성 //InterfaceTest IT = new InterfaceTest(); 이렇게 만들어도 되는 것 } }
//매개변수의 다형성 public void ex2(RemoteControl r) { System.out.println("매개변수의 다형성 테스트...."); r.powerOn(); r.powerOff(); } public InterfaceTest() { //this.ex1(); RemoteControl r = new Television(); ex2(r); r = new Audio(); ex2(r); }
- instanceof(객체 타입 확인)
ClassCastExceptio: 강제 타입 변환시 발생할 수 있는 -
매개 값이 어떤 객체인지 instanceof 연산자로 확인하고 안전하게 강제 타입 변환을 해야 한다.
'배움과 복습' 카테고리의 다른 글
멀티 스레드(multi-Thread) (0) | 2017.09.08 |
---|---|
중첩 클래스 (0) | 2017.09.04 |
extends and implements in JAVA (0) | 2017.09.04 |
abstract class (0) | 2017.09.01 |
Abstract class에 대해 (0) | 2017.09.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 계층형 쿼리
- SELECT절 명령어
- CLASS
- 테이블 데이터 복사
- IS RECORD
- NVL()
- Maven Project
- SQL Operator
- 타입변환과 다형성
- 복수행 함수
- GROUP BY절
- !(not)
- IN(var1 var2 var3)
- hierarchical query
- DI(의존성 주입)
- Interface
- 로컬 클래스
- tables in htmll
- z-dindex
- FileChannel
- Generic Type
- casring
- implements
- DECODE()
- 데이터 딕셔너리
- 상속
- MONTH_BETWEEN
- 멤버 클래스
- 중첩 클래스
- NVL2()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함