首页>>前端>>JavaScript->java中外部类访问内部类(java外部类访问内部类的方法)

java中外部类访问内部类(java外部类访问内部类的方法)

时间:2023-12-02 本站 点击:0

Java外部类怎么访问内部类的方法和成员呢?可以在外部类创建内部类的实例化对象吗?

是可以的,付代码说明:

package com.demo;

public class Main {

    public static void main(String[] args) {

        // 非静态内部类实例对象无法独立存在, 必须依赖于一个外部类的实例对象

        // 所以必须先实例化一个外部类对象

        Demo demo = new Demo();

        // 因为 非静态内部类 也是类的 非静态成员, 所以可以用 对象. 来访问

        // 下面用 外部类对象.内部类构造器 来创建内部类对象

        Demo.InnerDemo innerDemo = demo.new InnerDemo();

        innerDemo.show();

    }

}

/**

 * 一个外部类

 */

class Demo {

    /**

     * 内部类, 这里的内部类是非静态的。

     *

     * 实例化静态内部类很简单, 直接 类名.内部类名, 这里不多说。

     */

    public class InnerDemo {

        /**

         * 内部类的一个方法

         */

        public void show() {

            System.out.println("这是一个内部类的方法");

        }

    }

}

java中外部类可以访问内部类吗

一 对于外部类来说 内部类相当于它的一个属性 内部类中的private也相当于它本身的private属性 所以根据类内可见原则 内部类private是可以被外部类访问的

二 你在主方法中直接new一个自身类 相当于是在声明一个新的类 用这个新类去调用它的私有 你说是啥后果 对于jmv来说这就是典型的调用权限失败

JAVA 中外部类可以访问非静态内部类的私有属性???

1、创建一个Bean1类,并建好两个私有变量和构造方法。

2、创建一个Bean2类,引入对应包,创建好main 方法。

3、创建 Class? clazz = Class.forName("test.Bean1")。

4、创建Bean1 bean = (Bean1) clazz.newInstance();Field[] fs = clazz.getDeclaredFields()。

5、创建for (Field field : fs)   // 要设置属性可达,不然会抛出IllegalAccessException异常   field.setAccessible(true);// 打印初始值 System.out.println(field.getName() + "===" + field.get(bean));}。

6、执行main方法查看结果。

Java在外界如何调用局部内部类

内部类和成员变量一样,通过外部类的实例调用内部类。

可以先创建外部类实例。

用外部类实例调用内部类构造方法创建内部类实例。

再用这个内部类实例调用内部类成员方法。

  A a=new A();

  A.B b=a.new B();

  b.do1();//do是关键字,所以这里在do后面加了个1,否则无法编译。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/JavaScript/9565.html