java内部类练习

来源:互联网 发布:k歌达人for mac 编辑:程序博客网 时间:2024/05/23 02:03
内部类:就是类一个的内部定义的类
内部类的操作如下:

class Outer
{
class inner{}//内嵌类
}


注:编译上述代码会产生两个文件:
Outer.class 和 Outer$inner.class.

 
 在创建内部类对象
 内部类除了可以在外部产生实例化对象,
 也可以在外部类的外部产生实例化对象

 那么,根据内部类生成的*。class文件:Outer$inner.class

 "$":dollardollar(刀了)



 "$"符号在程序运行时将替换成“. ”

 所以内部类的访问:通过“外部类.内部类”的形式表示
 
 
 内部类调用方式:
 Outer out = new Outer();//产生外部类实力
 Outer.inner in = null;//声明内部对象

 in = out.new.Inner();//实例化内部对象

 实力:

 OuterClass outer = new OuterClass();

 OuterClass.InnerClass inner = outer.new InnerClass("外部使用内部类");


方法内部类:
 类可以作为一个类的成员外,还可以吧类放在方法内定义

class Outer

{

public void doSomething()

{

class inner

{

public void seeOuter()

{

////....

}

}

}

}


public class test_12 { public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.print();  // 直接在外部使用内部类 (注:不推荐使用) OuterClass.InnerClass inner = outer.new InnerClass("外部使用内部类"); inner.print();  //使用方法内部类 outer.print_2(); } }  class OuterClass {  public void print() { // 在外部类实例化内部类对象,并调用方法 InnerClass inner = new InnerClass("成员内部类"); inner.print(); } class InnerClass { private String name; public InnerClass(String name) { this.name = name; } public void print() { System.out.println(name); } }    public void print_2() { int x = 10; final int y = 20; class InnerClass_2// 在方法内定义内部类 { public void print() { //x=10;//不能使用 //y=20; System.out.println("在方法内定义内部类"+x+" "+y); } } //自己创建对象自己使用 /*  注意: 1.方法内部类只能在定义该内部类的方法内实例化, 不可以在此方法外对其实例化。  2.方法内部类对象不能使用该内部类所在方法的非 final局部变量。 **/ InnerClass_2 inner = new InnerClass_2(); inner.print(); } } 






 
0 0
原创粉丝点击