사용자 도구

사이트 도구


study:java:javachobo:appendix

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
study:java:javachobo:appendix [2010/03/19 22:23]
gauryan
study:java:javachobo:appendix [2010/03/21 14:48] (현재)
gauryan
줄 165: 줄 165:
 } }
 </​code>​ </​code>​
-위와 같이 선언된 메서드가 있을 때, 이 메서드의 매개변수로는 ​Array<​Unit>​타입의 변수만 사용할 수 있다. 즉, ArrayList<​Unit>​ list = new ArrayList<​Unit>​();​으로 생성된 객체만 매개변수로 사용될 수 있다는 뜻이다.+위와 같이 선언된 메서드가 있을 때, 이 메서드의 매개변수로는 ​ArrayList<​Unit>​타입의 변수만 사용할 수 있다. 즉, ArrayList<​Unit>​ list = new ArrayList<​Unit>​();​으로 생성된 객체만 매개변수로 사용될 수 있다는 뜻이다.
  
 <code java> <code java>
줄 229: 줄 229:
             System.out.println(u);​             System.out.println(u);​
         }         }
-    } 
-} 
-</​code>​ 
- 
-Collections 클래스의 sort() 메서드의 선언부를 보면 다음과 같다. 
-<code java> 
-public static <T extends Comparable<?​ super T>> void sort(List<​T>​ list) 
-              --------------------------------- ​          ​------- 
-                           ​(2) ​                             (1) 
-</​code>​ 
-  - ArrayList 와 같이 List 인터페이스를 구현한 컬렉션을 매개변수의 타입으로 정의하고 있다. 그리고 그 컬렉션에는 '​T'​라는 타입의 객체를 저장하도록 선언되어 있다. 
-  - '​T'​는 Comparable 인터페이스를 구현한 클래스의 타입이어야 하며 '​T'​ 또는 그 조상의 타입을 비교하는 Comparable 이어야 한다는 것을 의미한다. 
-<code java> 
-public interface Comparable<​T>​ { 
-    public int compareTo(T o); // 지정한 타입 T를 매개변수로 한다. 
-} 
-</​code>​ 
-Comparable 의 실제소스는 위와 같으며 이를 구현한 클래스의 예는 다음과 같다. 
-<code java> 
-class Student extends Person implements Comparable<​Person>​ { 
-    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 + ":"​ + name; 
-    } 
-} 
-</​code>​ 
-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<​Student>​ list = new ArrayList<​Student>​();​ 
-    list.add(new Student(10, "​Kim"​));​ 
-    list.add(new Student(40, "​Lee"​));​ 
-    list.add(new Student(20, "​Park"​));​ 
-    list.add(new Student(30, "​Jung"​));​ 
-    Conllections.sort(list);​ 
-    ​ 
-    for(Person p : list) { 
-        System.out.println(p);​ 
-    } 
-} 
- 
-class Student extends Person implements Comparable<​Person>​ { 
-    Student(int id, String name) { 
-        super(id, name); 
-    } 
-    ​ 
-    // Comparable<​Person>​ 이므로 Person 타입의 매개변수를 선언. 
-    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 + ":"​ + name; 
     }     }
 } }
study/java/javachobo/appendix.txt · 마지막으로 수정됨: 2010/03/21 14:48 저자 gauryan