您的位置:首页 > 其它

类中的内部类(静态、非静态、私有)中方法(静态、非静态)的调用

2016-07-31 22:40 661 查看
访问类中内部类中的方法的两种方法:

方法1、

class OuterInnerClass {

public static void main(String[] args) {

Outer.Inner oi = new Outer().new Inner();
oi.print();
}
}

class Outer {                                       //这是一个普通部类
class Inner {                                   //这是一个普通内部类
public void print(){
System.out.println("访问内部类成功!");
}
}


输出


方法2、

class OuterInnerClass {

public static void main(String[] args) {
//只是这里分开创建对象了!
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
oi.print();
}
}

class Outer {                                       //这是一个普通部类
class Inner {                                   //这是一个普通内部类
public void print(){
System.out.println("访问内部类成功!");
}
}


输出


访问类中私有内部类中的方法:

class OuterInnerClass {

public static void main(String[] args) {

Outer oi = new Outer();                 //访问类中私有内部类中的方法
oi.method();                            //可以将私有内部类看做一个私有方法
}
}

class Outer {                                       //这是外部类
/*
通过内部创建方法访问本类中的私有类,和类中私有方法的访问原理一样
*/
public void method(){
PrivateInner p = new PrivateInner();
p.print();
}

private class PrivateInner {                    //这是内部类(私有)
public void print (){
System.out.println("访问私有内部类成功!");
}
}
}


输出


访问类中静态内部类中的非静态、静态方法:

class OuterInnerClass {

public static void main(String[] args) {

Outer.StaticInner oi1 = new Outer.StaticInner();//访问类中静态内部类中的非静态方法
oi1.print();

Outer.StaticInner.staticPrint();    //访问类中静态内部类中的静态方法之方法1,
//直接类名.调用

Outer.StaticInner oi2 = new Outer.StaticInner();//访问类中静态内部类中的静态方法之方法2,
//创建对象后调用
oi2.staticPrint();
}
}

class Outer {                                       //这是一个普通部类

static class StaticInner {                  //这是内部类(静态)
public void print (){
System.out.println("访问静态内部类成功!");
}

public static void staticPrint (){
System.out.println("访问静态内部类静态方法成功!");
}
}
}


输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class