티스토리 뷰
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
- DI(의존성 주입)
- !(not)
- 상속
- MONTH_BETWEEN
- Generic Type
- 타입변환과 다형성
- FileChannel
- NVL()
- 데이터 딕셔너리
- 중첩 클래스
- Maven Project
- 테이블 데이터 복사
- IS RECORD
- NVL2()
- implements
- 로컬 클래스
- tables in htmll
- CLASS
- 계층형 쿼리
- GROUP BY절
- casring
- SELECT절 명령어
- SQL Operator
- IN(var1 var2 var3)
- hierarchical query
- z-dindex
- Interface
- 멤버 클래스
- 복수행 함수
- DECODE()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함