ch11. Interface and Polymorphism
- ★ 코드의 재사용, ★ polymorphism으로 구현
- inner class는 implements로 event-handler interfaces하는 classes에 유용
- To learn about interfaces (인터페이스에 대해 배우기)
- Interface : A model for a class that specifies the fields and methods that must be present in a class that implements the interface
- 실행되어야 하는 중요한 코드를 more general, more reusable 하게 한다
- Interface의 특징 ( 클래스와의 차이점 )
- Abstract (추상적이다) : 이름, 매개변수, 리턴 값은 있다. 실행문은 없다. ( No implementation! )
- Public : interface type안의 ALL method는 자동적으로 public이다.
- No instance field : Interface 안에서는 instance가 허용되지 않는다.
- ※ Interface는 constant(상수)로 명시된것만 허용한다. Interface 필드 내에는 자동적으로 public static final이 된다.
- ※ 객체를 선언한다하더라도public static final 형태로 되기 때문에 다른 객체가 final로 선언된 객체를 reference 할 수 없다. 다만 final로 선언된 객체안의 내용은 변경할 수 있다.
- implements : interface 끌어올 때 쓰는 keyword.
- A class can implements more than one interface type. 하나 이상의 interface 끌어오는 것 가능! ( 물론, class는 반드시 끌어다온 interface안에 있는 method를 다 구현해둬야함 *_*)
- To be able to convert between class and interface references
- You can convert from a class type to an interface type, provided the class implement
- Cannot convert between unrelated types
- 유의사항*_*
- Interface 타입의 변수는 선언가능하다 (ex. Measurable x; )
- 그러나, interface로 construct할 수 없다. (ex. Measurable x = new Measurable(); // ERROR)
- Interface는 Class가 아니다. 따라서 Interface 타입의 객체는 존재하지 않는다. 만약 어떤 Interface 변수가 어떤 객체를 가리킨다면, 그 객체는 분명히 어떤 Class에 속한 것이고 , 그 Class는 interface를 implements 한 것이다. (ex. Measurable x = new BankAccount(); // OK )
- To understand the concept of polymorphism
- "Concept" Polymorphism : principle that behavior can vary depending on the actual type of an object.
- http://terms.co.kr/polymorphism.htm 참고
- Example : Overloaded -> when a single program has several methods with the same name but different parameter types.
- 또한, interface의 경우와 inheritance 모두 polymorphism 개념이 적용된 것이라 볼 수 있다.
- To appreciate how interfaces can be used to decouple classes
- To learn how to implement helper classes as inner class
- To understand how inner classes access variables from the surrounding scope
- Inner class : defined inside another class
- used for tactical classes that should not be visible elsewhere in a program.
- not a publicly accessible feature
- The compiler turns an inner class into a regular class file
- Methods of an inner class can access variables from the surrounding scope
- Local variables that are accessed by an inner-class method must be declared as final ( inner-class에서 접근하는 지역변수들은 반드시 final 이어야 한다!)
- To implement event listeners for timer
- 단위 : 1/1000 second (millisecond)
- 참고 : Mock Object
- 완전한 프로그램이기 전에 class를 test하고 싶은 경우에 사용
- Interface를 이용한 기법
ch12. Event Handling
To understand the Java event model
ch13. Inheritance
- Code Reuse!
- To learn about inheritance
- Inheritance : a mechanism for enhancing existing classes by adding methods and fields
- more general class : called "super class"
- super class로부터 상속받는 specialized class : called "sub class"
- Every class extends the Object class (either directly or indirectly)
- Super class has state and behavior, and sub classes inherit them.
- cf. Interface is Not class. Interface has NO state and NO behavior
- To understand how to inherit and override superclass methods
- Use the super keyword to call a method of the superclass
- To be able to invoke superclass constructor
- super(parameter); - super class's constructor
- must be the first statement of the subclass constructor
- subclass reference를 superclass reference로 convert -> OK
- 그러나, superclass reference를 subclass reference로 바꾸는 것은 위험함
- instanceof 연산자 : 어떤 객체가 어느 타입에 속해있는지 테스트 하는 연산자
- object instanceof TypeName
- ex.
if(anObject instanceof BankAccount)
{
BankAccount anAccount = (BankAccount) anObject;
,,,
}
- anObject가 null을 가리키면 false, anObject가 BankAccount로 cast 가능하다면 true
- To learn about protected and package access control
- Protected - can be accessed by all subclasses and all classes in the same package
- hard to modify , cannot be changed
- To understand the common superclass Object and how to override its toString and equals methods
- String toString()
- boolean equals(Object otherObject)
- Object clone()
ch14. Graphic User Interface
- To use inheritance to customize frames
- Design a subclass of JFrame
- To understand how user-interface components are added to a container
- To understand the use of layout managers to arrange user-interface components in a container
- Layout-management ~ JPanel
- flow layout(default)
- border layout - center/north/south/east/west 로 구성. add할때 위치지정!
- ex.
- panel.setLayout(new BorderLayout());
- panel.add(component, BorderLayout.NORTH);
- grid layout - 표모양
- grid-bag layout
- 각 열이 다른 크기를 가질 수 있음
- To become familiar with common user-interface components, such as buttons, combo boxes, text areas, and menus
- Choices
- Radio buttons
- only one button can be selected at a time (단일 항목만 선택 가능)
- 버튼이 클릭되면 이전에 클릭되어있던 버튼은 자동으로 turn off
- ButtonGroup으로 묶어야 단일 항목 선택 가능!
- isSelected : 버튼이 선택되었는지 여부
- Check boxes
- Two states : 체크 / 체크안됨
- don't ButtonGroup ! 버튼그룹은 단일항목만 선택하게 함. 체크박스는 중복선택 가능해야함
- Combo boxes
- setEditable 이용
- Menus
- frame > menu bar > menus
- To build programs that handle events from user-interface components
- To learn how to browse the Java documentation
'Computers > Language java' 카테고리의 다른 글
bytearray 를 string 으로 (from bytearray to string) (0) | 2011.04.12 |
---|---|
Access specifier / Modifier (0) | 2011.04.10 |
week11. Input/Output and Exception Handling (0) | 2011.04.10 |
week10. Inheritance (0) | 2011.04.10 |
week9. Interfaces and Polymorphism (0) | 2011.04.10 |