inner클래스
클래스나 인터페이스 내부에 생성하는 클래스
public class InnerTest {
class InnerClass implements Runnable{
void msg() {
System.out.println("이너클래스!");
}
@Override
public void run() {
System.out.println("run오바리이딩");
}
}
public static void main(String[] args) {
InnerTest outer=new InnerTest();
InnerTest.InnerClass inner=outer.new InnerClass();
inner.msg();
}
}
이너클래스!
익명클래스
이름이 없는 이너클래스로서 한번만 사용하기 때문에 변수에 대입할 필요가 없을때 활용
public class InnerTest {
public static void main(String[] args) {
Runnable r1=new Runnable() {
@Override
public void run() {
System.out.println("연습하기");
}
};
r1.run();
}
}
연습하기
Collections.sort
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.ssafy.i_collection.set.SmartPhone;
class SmartPhone implements Comparable<SmartPhone>{
String name;
String number;
String makeYear;
public SmartPhone(String number) {
this.number = number;
}
public SmartPhone(String name,String number) {
this.name=name;
this.number = number;
}
public SmartPhone(String name,String number,String makeYear) {
this.name=name;
this.number = number;
this.makeYear=makeYear;
}
public String toString() {
return String.format("핸드폰 이름:%s,제조년도:%s,번호:%s%n",this.name,this.makeYear,this.number);
}
@Override
public int compareTo(SmartPhone o) {
return this.number.compareTo(o.number);
}
}
public class ListSortTest {
private static List<String> names = Arrays.asList("A22", "Welcome","Hi", "Java", "A23","World");
public static void multiSort() {
Collections.sort(names,(o1,o2)->{
return Integer.compare(o1.length(),o2.length());
});
}
public static void main(String[] args) {
System.out.println(names);
multiSort();
System.out.println(names);
}
}
[A22, Welcome, Hi, Java, A23, World]
[Hi, A22, A23, Java, World, Welcome]