您的位置:首页 > 其它

内部类

2015-08-01 13:50 330 查看

HOW:基本使用

/**
*需求1:在Outer类中定义内部类Inner
*需求2:Inner内定义一个vistOuter方法访问Outer的x属性
*需求3:Outer内定义一个vist方法访问Inner的vistOuter方法
*/
class Outer
{
String x="outer";
//定义内部类
class Inner
{
String x="inner";
//内部类可以不创建外部类的对象而访问外部类的属性Outer.this.属性
void vistOuter(){
System.out.println("访问到的是:"+Outer.this.x);
}
}
//外部类不能直接访问内部类的方法,必须要先创建内部类的对象,通过该对象访问
void vist(){
//new Inner()看成一个对象,再.方法
new Inner().vistOuter();
}
}


注意事项

1.内部类与外部类的成员同级,所以内部类可以被private修饰!

2.内部类与外部类的成员同级,所以内部类可以访问外部类的成员变量,即使是private

3.如果一个内部类中有静态变量或者静态声明,那么它必须是静态内部类=》如果是静态内部类,那么:Outer.Inner.x或Outer.Inner.function()可以访问其静态成员或方法

4.静态类不能直接访问本类的成员或者方法:可以通过实例化之后再访问

class Outer
{
static int x=5;
//因为外部类中定义了静态成员,所以这里必须是静态内部类
static class Inner
{
//本类非静态成员
int x=1;
//本类静态方法
static void vistOuter(){
System.out.println(Outer.x);
}
}
}

class StaticNeiBu
{
public static void main(String[] args)
{
//调用静态内部类的静态方法:输出外部类静态成员变量
Outer.inner.vistOuter();
//访问静态内部类的非静态成员x
System.out.println(new Outer.Inner().x);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: