5. 객체 생성 방법
1. 하위클래스 참조
2. 자기 객체를 return하는 static method 이용.
import java.util.*;
public class AbstractTest1 {
public static void main(String[] args) {
//1.하위 클래스 참조
//Calendar cal = new Calendar(); //abstract여서 생성자 new로 못만듦.
//따라서 하위클래스 있나 봐야함. GregorianCalendar 있음.
//Calendar cal = new GregorianCalendar();
//2.자기 객체를 retrun하는 static method 이용.
Calendar cal = Calendar.getInstance();
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH)+1;
int d = cal.get(Calendar.DATE);
int am = cal.get(Calendar.AM_PM);
int h = cal.get(Calendar.HOUR);
int mi = cal.get(Calendar.MINUTE);
int s = cal.get(Calendar.SECOND);
System.out.println(y+"년 "+m+"월 "+d+"일 "+am+h+"시 "+mi+"분 "+s+"초");
//2월로 뜬다. java의 인덱스는 0부터 시작하기 때문.
}
}
3. 외부클래스 참조
public class AbstractTest2 {
public static void main(String[] args) throws Exception{
//3. 외부클래스 참조.
//java.lang에 Process 들어가면 abstract class임으로 new 안됨.
//하위 클래스 있나 봤더니 없음.
//자신의 객체를 return하는 static method도 없음
//외부 클래스 Runtime 들어가면 private이어서 하위 클래스 X, static method 인 2번 쓸 수 있음.
Runtime r = Runtime.getRuntime();
Process p = r.exec("calc");
System.out.println("");
}
}
4. 자신의 생성자 이용
import java.awt.*;
import java.awt.event.*;
public class AbstractTest3 extends Frame{
Button b = new Button("@눌러봐@");
public AbstractTest3() {
super("Is A Test!!!");
setLayout(new FlowLayout());
add(b);
setSize(400,300);
setLocation(300,200);
setVisible(true);
//4.자신의 생성자를 이용
//WindowAdapter를 자기 자신 생성자 이용하고싶다.
//하지만 추상클래스는 자신의 생성자 이용해 객체 생성 불가능.
//new 하고 싶다면 모든 method를 override 해야함 > 말이 안됨.
//WindowAdapter 는 추상클래스인데 method를 봤더니 추상메소드 X
//의미상의 abstract class : 추상클래스인데 실제 추상메소드가 없는 것
//그 class의 method 중 아무거나 하나이상만 override 하면 됨.
//**1회성 method임.>>동적으로 객체를 구현한다!
WindowAdapter wl = new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
};
addWindowListener(wl);
}
public static void main(String[] args) throws Exception{
AbstractTest3 iat = new AbstractTest3();
}
}
[출처] 빡쏘끼룩
'IT > JAVA' 카테고리의 다른 글
[Java]Package : window의 folder (0) | 2020.08.01 |
---|---|
[Java]Interface/수정자(modifier) (0) | 2020.07.31 |
[Java]추상클래스 예제- 사각형,원의 둘레,넓이 구하기 (0) | 2020.07.27 |
[Java]추상클래스(Abstract Class) (0) | 2020.07.24 |
[Java]상속(inheritance)- Button,Frame 만들기 (0) | 2020.07.23 |