티스토리 뷰

배움과 복습

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);
	}



- 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
댓글