类中的内部类(静态、非静态、私有)中方法(静态、非静态)的调用
2016-07-31 22:40
661 查看
访问类中内部类中的方法的两种方法:
方法1、
输出
方法2、
输出
访问类中私有内部类中的方法:
输出
访问类中静态内部类中的非静态、静态方法:
输出
方法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("访问静态内部类静态方法成功!"); } } }
输出
相关文章推荐
- powermock如何阻止静态代码块和调用私有方法
- C# 反射调用私有 静态 方法
- 调用已编译成静态库的插件私有接口的方法
- 调用内部类的私有方法,其中内部类和外部类的构造器都是私有的
- Java静态方法中调用内部类
- 测试反射调用私有方法/私有静态方法
- 如何防止私有方法被反射调用?
- 利用反射对私有属性/方法进行设置/调用(转自己贴)
- Java中静态关键字的使用和内部类的调用
- Java中静态关键字的使用和内部类的调用
- AJAX调用aspx的静态方法(二)
- 类的多参数,带返回值的静态方法的调用
- 调用DLL有两种方法(静态调用和动态调用)简介
- 调用java的私有方法
- Java多线程运行时,尽可能调用单例对象、工具类和静态方法,这样可以减少内存的占用量
- 静态工厂方法月用new调用的构造方法的区别
- 通过反射修改类的私有字段值,调用私有方法
- 在工作流内部调用宿主的静态方法终止工作流的执行
- 调用java的私有方法
- 在static方法中调用非静态方法?