您的位置:首页 > 编程语言 > Java开发

java 学习 内部类 第六天

2011-07-22 14:46 344 查看
内部类 ?

内部类就是在类中定义的类 Inner Class 内部类的this表示本对象 outer.this.data 访问到外部类的成员

内部类能操作外部类 public private protectd 缺省权限 修饰的成员

下面是内部类的例子 :

class Outer
{
private int index =100;
class Inner
{
private int index=50;
void print()
{
int index=10;
System.out.println(index);
System.out.println(this.index);
System.out.println(Outer.this.index);
}

}

void print()
{

Inner inner =new Inner();
inner.print();
}

}

class Test
{
public static void main(String []args)
{
Outer out=new Outer();
out.print();

}

}

首先必须先产生一个 外部类 才能进而产生内部类 内部类允许在 函数中定义不过 作用域只是 函数内部

我们可以在外部类内通过函数 产生内部类对象然后返回对象引用 也可以通过 new 来直接创建内部类

如果 main函数和内部类在一个外部类中 那么main函数不能调用内部类方法 因为静态函数 无法调用非静态函数的

方法 需要另外声明一个类 类可以定义在函数中 条件语句中 语句块中 不管嵌套多深都可以随意访问外部类所有成员

如果局部函数内部类要访问函数的参数或者 变量那么要声明为final 否则不能访问

内部类也可以用 protected修饰 可以在同一个类中被访问 也可以在同一个包中访问

如果声明为private 那么只能在 外部类访问 其他类都不能访问了 即使是同一个包中的类都不能访问 。。

内部类也可以声明为abstract

例子如下 :

class Test
{
public static void main(String []args)
{
Outer out=new Outer(); //声明一个外部类
Outer.Inner inner =out.new Inner(); //声明一个内部类 通过外部类的new构造一个 内部类的对象实例
inner.print(); //调用显示方法
}
}

final 修饰内部类的话 这个类就不能被继承了

static 修是内部类 那么 内部类就不能访问外部类 的非静态成员变量

静态的内部类只能访问静态的成员变量和静态成员方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: