문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
study:java:javachobo:appendix [2010/03/19 22:11] gauryan |
study:java:javachobo:appendix [2010/03/19 22:22] gauryan |
||
---|---|---|---|
줄 193: | 줄 193: | ||
**[주의]** 여기서 만일 Unit이 클래스가 아닌 인터페이스라 할지라도 키워드로 ' | **[주의]** 여기서 만일 Unit이 클래스가 아닌 인터페이스라 할지라도 키워드로 ' | ||
- | 예제 : / | + | 예제 : / |
- | <code java> | + | |
import java.util.*; | import java.util.*; | ||
줄 247: | 줄 246: | ||
} | } | ||
</ | </ | ||
+ | Comparable 의 실제소스는 위와 같으며 이를 구현한 클래스의 예는 다음과 같다. | ||
+ | <code java> | ||
+ | class Student extends Person implements Comparable< | ||
+ | Student(int id, String name) { | ||
+ | super(id, name); | ||
+ | } | ||
+ | | ||
+ | public int compareTo(Person o) { | ||
+ | return this.id - o.id; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class Person { | ||
+ | int id; | ||
+ | String name; | ||
+ | | ||
+ | Person(int id, String name) { | ||
+ | this.id = id; | ||
+ | this.name = name; | ||
+ | } | ||
+ | | ||
+ | public String toString() { | ||
+ | return id + ":" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Collections 의 sort()의 매개변수가 Comparable에 사용될 수 있는 타입이 Comparable 을 구현하는 클래스(Student)나 그 조상(Person)일 수 있다고 하였기 때문에 Student 객체를 담은 ArrayList 는 sort() 의 매개변수가 될 수 있는 모든 조건을 충족시킨다. | ||
+ | |||
+ | 예제 : GenericsEx2.java <code java> | ||
+ | import java.util.*; | ||
+ | |||
+ | class Unit {} | ||
+ | class Tank extends Unit {} | ||
+ | class Dropship extends Unit {} | ||
+ | |||
+ | class GenericsEx2 { | ||
+ | ArrayList< | ||
+ | list.add(new Student(10, " | ||
+ | list.add(new Student(40, " | ||
+ | list.add(new Student(20, " | ||
+ | list.add(new Student(30, " | ||
+ | Conllections.sort(list); | ||
+ | | ||
+ | for(Person p : list) { | ||
+ | System.out.println(p); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class Student extends Person implements Comparable< | ||
+ | Student(int id, String name) { | ||
+ | super(id, name); | ||
+ | } | ||
+ | | ||
+ | // Comparable< | ||
+ | public int compareTo(Person o) { | ||
+ | return this.id - o.id; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class Person { | ||
+ | int id; | ||
+ | String name; | ||
+ | | ||
+ | Person(int id, String name) { | ||
+ | this.id = id; | ||
+ | this.name = name; | ||
+ | } | ||
+ | | ||
+ | public String toString() { | ||
+ | return id + ":" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
===== 타입에 안전한 열거형 (Typesafe enums) ===== | ===== 타입에 안전한 열거형 (Typesafe enums) ===== | ||
이전까지 자바는 C언어와 달리 열거형이라는 것이 존재하지 않았으나 새로 추가되었다. 자바의 열거형은 C언어의 열거형보다 더 향상된 개념의 열거형으로 열거형이 갖는 값 뿐만아니라 타입까지 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다. | 이전까지 자바는 C언어와 달리 열거형이라는 것이 존재하지 않았으나 새로 추가되었다. 자바의 열거형은 C언어의 열거형보다 더 향상된 개념의 열거형으로 열거형이 갖는 값 뿐만아니라 타입까지 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다. | ||
줄 280: | 줄 353: | ||
</ | </ | ||
- | 예제 : EnumEx.java | + | 예제 : EnumEx.java <code java> |
- | <code java> | + | |
import java.util.*; | import java.util.*; | ||
줄 354: | 줄 426: | ||
가변인수를 사용할 때 한 가지 주의해야할 점은 오버로딩을 하는 경우인데, | 가변인수를 사용할 때 한 가지 주의해야할 점은 오버로딩을 하는 경우인데, | ||
- | 예제 : VarArgsEx1.java | + | 예제 : VarArgsEx1.java <code java> |
- | <code java> | + | |
class VarArgsEx1 { | class VarArgsEx1 { | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
줄 404: | 줄 475: | ||
</ | </ | ||
- | 예제 : StaticImportEx1.java | + | 예제 : StaticImportEx1.java <code java> |
- | <code java> | + | |
import static java.lang.System.out; | import static java.lang.System.out; | ||
import static java.lang.Math.*; | import static java.lang.Math.*; |