내부 클래스 사용 예
5907 단어 Java
내부 통일은 언제 사용했습니까?
어떤 반의 실례와 방법이 관련이 있음을 명확히 하는 데 쓰인다.
내부류가 정의하는 것은 단독으로 필요한 상황이 있으면 내부류가 아니라 최고급으로 정의하는 것이 좋다.
사용예①
외부 클래스와 함께 사용하면 유용한 조수 클래스로 사용됩니다.
예를 들어 네 가지 연산을 할 수 있는 계산기 종류를 정의해 보자.
다음은 계산기 클래스가 지원하는 계산 동작을 내부 클래스로 정의하는 enum의 예입니다.
내부 클래스 예public class Calculator {
public enum Operation {
PLUS { public int apply(int x, int y) { return x + y; } },
MINUS { public int apply(int x, int y) { return x - y; } },
MULTIPLY { public int apply(int x, int y) { return x * y; } },
DIVIDE { public int apply(int x, int y) { return x / y; } };
public abstract int apply(int x, int y);
}
public int calc(Operation operation, int x, int y) {
return operation.apply(x, y);
}
}
내부 클래스 예사용 예public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int result = calculator.calc(Calculator.Operation.PLUS, 2, 3);
System.out.println(result);
//=> 5
}
}
사용예②
외부 클래스와 관련된 클래스를 정의하려면
Java 표준 라이브러리의 내부 클래스 사용 위치
■ java.util.ArrayList와 관련된 Iterator 정의
■ java.util.LinkedList와 관련된 Iterator 정의
■ java.util.HashMap 관련 HashIterator
ArrayList의 Iterator, HashMap의 Iterator 등은 이 카테고리와 관련된 것을 정의하려면 내부 레벨을 사용한 것 같다.
Reference
이 문제에 관하여(내부 클래스 사용 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Buzzword111/items/6cb0dffe77da53034c5b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public class Calculator {
public enum Operation {
PLUS { public int apply(int x, int y) { return x + y; } },
MINUS { public int apply(int x, int y) { return x - y; } },
MULTIPLY { public int apply(int x, int y) { return x * y; } },
DIVIDE { public int apply(int x, int y) { return x / y; } };
public abstract int apply(int x, int y);
}
public int calc(Operation operation, int x, int y) {
return operation.apply(x, y);
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int result = calculator.calc(Calculator.Operation.PLUS, 2, 3);
System.out.println(result);
//=> 5
}
}
Reference
이 문제에 관하여(내부 클래스 사용 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Buzzword111/items/6cb0dffe77da53034c5b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)