배움과 복습
java GUI - actionPerformed
뚜비콩
2017. 9. 4. 10:34
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); }