inner클래스와 익명클래스

codakcodak·2023년 7월 25일
0

Java

목록 보기
15/17
post-thumbnail

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);
//		return this.number.compareTo(o.number)*-1;내림차순
    }
 
}

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]
profile
숲을 보는 코더

0개의 댓글