JAVA/코드

2022_10_28 연습 02 com.css.nestedclass

0304호 2022. 10. 28.
package com.css.nestedclass;

import java.util.Arrays;
import java.util.Comparator;

//메서드가 1개인 인터페이스
interface Sample{
	//추상메서드 선언
	public void display();
}

//인터페이스를 구현한 클래스
class SampleImp implements Sample{
	public void display() {
		System.out.println("클래스를 만들어서 사용");
	}
}

public class AnonymousMain {
	public static void main(String[] args) {
		//인터페이스를 구현한 클래스의 인스턴스를 생성해서 메서드 호출
		//인스턴스를 여러개 만들어야한다면 클래스를 만드는것이 효율적
		Sample sample  = new SampleImp();
		sample.display();
		
		//Sample 인터페이스를 anonymous로 사용
		//인스턴스가 1개만 필요하다면 클래스를 만들지 않는것이 효율적
		new Sample() {
			public void display() {
				System.out.println("클래스를 생성하지 않고 사용");
			}
		}.display();
		
		//배열의 정렬
		String [] ar = {"아담", "강진축구" , "프리스톤테일", "카카오택시"};
		
		//배열의 내림차순 정렬
		//Arrays.sort(배열, 비교를 위한 Comparator<T>인터페이스를 구현할 클래스의 객체)
		//를 호출해야 한다.
		Arrays.sort(ar, new Comparator<String>() {
			
			public int compare(String o1, String o2) {
				return o2.compareTo(o1);
			}
		});
		//배열의 요소를 빠르게 확인
		System.out.println(Arrays.toString(ar));

		//하나씩 확인
		for(String app : ar) {
			System.out.println(app);
		}
		
		
		
		
		
		
	}

}​
package com.css.nestedclass;



public class Outer {
	//내포클래스 = 다른 클래스 안에 만들어진 클래스
	class Inner{
		public int num;
	}
	
	//내포클래스 안에 static멤버가 있으면 인스턴스 생성없이 사용할 수 있도록 static을 추가
	static class StaticInner{
		public int num;
		public static int share;
		
	}
	
	public void method() {
		//메서드 안에 만들어진 클래스 :  Local Inner
		//메서드 안에서만 사용이 가능한 클래스
		class LocalInner{
			public int num;
		}
	}

}

댓글