"Java 내부 클래스의 역할에 따른 심층 분석"에서는 Java 내부 클래스에 대해 몇 가지 이해할 수 있지만, 내부 클래스에는 여전히 신중하게 연구할 가치가 있는 부분이 있습니다.
다음은 제가 요약하고 여러분과 공유하는 Java 내부 클래스에 대한 몇 가지 사항입니다....
하나: 정적 내부 클래스는 정적 멤버를 가질 수 있지만 비정적 내부 클래스는 정적 멤버를 가질 수 없습니다.
이것을 이해하는 방법?
아래 코드를 살펴보세요.
공개 클래스 테스트 {
개인 정수 번호 = 1;
// 비정적 내부 클래스는 비정적 멤버를 가질 수 있습니다.
개인 클래스 InnerTest {
// 오류 비정적 내부 클래스는 정적 멤버를 가질 수 없습니다.
// 개인 정적 int inNumber = 2;
개인 int inNumber = 2;
공개 InnerTest() {
세트번호(2);
inNumber = inNumber + 숫자;
System.out.println("innerTest---" + inNumber);
}
}
//테스트의 비공개 메소드
개인 무효 setNumber(int 숫자) {
this.번호 = 번호;
}
//건설자
공개 테스트() {
InnerTest in = new InnerTest();
System.out.println("테스트");
}
공개 정적 무효 메인(String[] args) {
테스트 테스트 = new Test();
// 내부 테스트---4
// 시험
}
}
공개 클래스 테스트 {
개인 정적 정수 번호 = 1;
개인 문자열 이름 = "테스트";
// 정적 내부 클래스
개인 정적 클래스 InnerTest {
// 정적 내부 클래스는 정적이 아닌 멤버를 가질 수 있습니다.
개인 int inNumber = 2;
공개 InnerTest() {
//정적 내부 클래스는 외부 클래스의 정적 멤버에 액세스할 수 있습니다.
세트번호(2);
inNumber = inNumber + 숫자;
System.out.println("innerTest---" + inNumber);
//오류 정적 내부 클래스는 외부 클래스의 비정적 멤버에 접근할 수 없습니다.
//System.out.println(이름);
}
}
//테스트의 정적 개인 메소드
개인 정적 무효 setNumber(int n) {
숫자 = n;
}
//건설자
공개 테스트() {
InnerTest in = new InnerTest();
System.out.println("테스트");
}
공개 정적 무효 메인(String[] args) {
테스트 테스트 = new Test();
// 내부 테스트---4
// 시험
}
}
이해하기 쉽나요...
요약하자면: