Java 17일차 2(익명클래스)

2022. 12. 2. 09:56코딩배움일지/JAVA

package j19_익명클래스; /*이름이 없는클래스 Calculator 인터페이스만 만들었다. */

public class CalcMain {

	public static void main(String[] args) { /*인터페이스는 생성 할 수 없다.*/
		
		Calculator c1 = new Calculator() { /*c1 = new Calculator 의 주소값이 들어간다. 인터페이스는 생성 안되는까 implements*/
			 /*임시로 오버라이드 이 클래스 안에서만*/ /*다른클래스에서는 안됨*/ /*재사용할 필요가 없는 경우*/

			@Override /* 인터페이스 implements 해서 오버라이드*/ /*직접 임시로 구현하였다. 1회용 틀 여기서 찍어내고 버린다.*/
			public int calc(int a, int b) {
				System.out.println("덧셈");
				return a+b;
			}
			
		};
		
		Calculator c3= new Calculator() {
			 /*한번더 재사용 하고 싶으면 다시 오버라이드.*/

			@Override /* 인터페이스 implements 해서 오버라이드*/ /*직접 임시로 구현하였다. 1회용 틀 여기서 찍어내고 버린다.*/
			public int calc(int a, int b) {
				System.out.println("덧셈");
				return a+b;
			}
			
		};
		
		
		
		
		
		
		int r1 = c1.calc(10,20);
		System.out.println(r1);
		
		Calculator c2 = new Addition(); /*1회용이니까 클래스를 새로 만들어야 한다.*/ /*이거는 비교용 클래스 생성*/
		
		int r2 = c2.calc(20, 30);
		System.out.println(r2);
		
		int r3 = c3.calc(30,70);
		System.out.println(r3);
	

	}

}

인터페잇흐

package j19_익명클래스;

public interface Calculator {
	
	public int calc(int a, int b);

}

 

클래스 비교

package j19_익명클래스;

public class Addition implements Calculator { 

	@Override
	public int calc(int a, int b) {
		
		return a+b;
	}

}

다른 클래스에서는 못사용

인터페이스를 작동시킨 클래스에서 사용하면 버려지지만

재사용 하려면 다시 오버라이드 해야함.

'코딩배움일지 > JAVA' 카테고리의 다른 글

Java 17일차 4(람다)  (0) 2022.12.02
Java 17일차 3(람다)  (0) 2022.12.02
Java 17일차 1(예외 미루기)  (0) 2022.12.02
Java 16일차 4(예외처리)  (0) 2022.12.01
Java 16일차 3-2(예외처리)  (0) 2022.12.01