17 내부 클래스 반복
1 정적 내부 클래스(static inner class):
public static class Inner
{
}
외부 클래스의 정적 구성원 변수 및 정적 방법에만 액세스할 수 있으며, 정적 내부 클래스 객체를 생성하는 방법은 다음과 같습니다.
OuterClass.InnerClass inner = new OuterClass.InnerClass();
2. 구성원 내부 클래스(member inner class): 외부 클래스의 정적과 비정상적인 방법과 구성원 변수에 접근할 수 있다.구성원 내부 클래스 객체를 생성하는 방법은 다음과 같습니다.
OuterCLass.Inner inner=new OuterCLass().new Inner();
OuterClass.InnerClass inner = new OuterClass().new InnerClass();
4. 부분 내부 클래스에서 외부 클래스의 구성원 변수에 접근하려면 OuterClass를 구문으로 사용합니다.this.a;
lass MemberInner
{
private int a = 4;
public class Inner2
{
private int a = 5;
public void doSomething()
{
System.out.println(MemberInner.this.a);
}
}
//
public void method()
{
Inner2 inner = this.new Inner2();
}
}
5. 로컬 내부 클래스(Local Inner Class): 메서드에 정의되어 있으며 메서드에 명시된 final 유형의 변수에만 액세스할 수 있습니다.
class LocalInner
{
public void doSomething()
{
final int a = 4;
class Inner3
{
public void test()
{
System.out.println(a);
}
}
new Inner3().test();
}
}
public class LocalInnerClassTest
{
public static void main(String[] args)
{
LocalInner localInner = new LocalInner();
localInner.doSomething();
}
}
6. 익명 내부 클래스(Anonymous Inner Class): 익명 내부 클래스는 부모 클래스를 은밀하게 상속하거나 인터페이스를 실현합니다.
AnonymousInnerClassTest test = new AnonymousInnerClassTest();
//
String str = test.get(new Date()
{
public String toLocaleString()
{
return "hello world";
}
});
System.out.println(str);
스윙에 사용되는 익명 내부 클래스의 일반적인 방법:
public static void main(String[] args)
{
JFrame frame = new JFrame("JFrame");
JButton button = new JButton("click me");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("welcome");
}
});
frame.setSize(200, 200);
frame.getContentPane().add(button);
frame.addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.setVisible(true);
}
7. 이른바 귀속(Recursion)이란 방법이 자신을 호출하는 것이다.귀환에 대해 말하자면 반드시 하나의 출구가 있어서 귀환을 끝내게 해야 비로소 사순환이 나타나지 않도록 보장할 수 있다.
public static int compute(int f)
{
if (f>1)
{
return f*compute(--f);
}
else {
return 1;
}
}
public static void DeleteAll(File file )
{
if (file.isFile()||file.list().length==0)
{
file.delete();
}
else {
File []files=file.listFiles();
for (File file2 :files)
{
DeleteAll(file2);
}
file.delete();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.