java中,一个内部类如何拿到外部类的变量值

java中,一个内部类如何拿到外部类的变量值,第1张

部类

1内部类的访问规则 (1)内部类可以直接访问外部类中成员,包括私有 之所以可以直接访问外部类的成员,是因为内部类中持有一个外部类的引用,格式:外部类名this (2) 外部类要访问内部类,必须建立内部类对象。2访问格式当内部类定义在外部类的成员位置上,而且非私有,可以再外部其他类中,可以直接建立内部类对象格式:外部类内部类 变量名=外部类对象内部类对象; 当内部了在成员位置上,就可以被成员修饰符所修饰比如private,将内部类在外部类中进行封装static:内部类就具备static的特性当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限

在外部其他类中,如何直接访问static内部类的非静态成员呢new outerInner()function();

注意:当内部类中定义了静态成员,该内部类必须是static的: 当外部类中的静态方法访问内部类时,内部类也必须是静态的

内部类定义在局部时,不可以被成员修饰符修饰,可以直接访问外部类中的成员,因为还持有外部类中的引用。但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。

static Singleton instance = new Singleton();  

static类型的成员变量,只会在新建类的对象时被执行一次。

所以static Singleton instance = new Singleton();   只有在第一次调用时,被new一次。之后获取的都是第一次执行的对象。所以称之为单例。

也可以使用老的写法,比较清晰一些。

class ABC {

   private static ABC instance;

   private ABC() {}

   public ABC getInstance() {

     if (instance==null)

         instance = new ABC();

      return instance;

   }

}

这样写法的缺点是效率不如

class ABC {

   private static ABC instance= new ABC();

   private ABC() {}

   public ABC getInstance() {

      return instance;

   }

}

这样写法高。

1 Java项目一般从src目录开始有comAjava这样的目录结构。这就是包结构。所以一般编译后的结构是跟包结构一模一样的,这样的结构保证了import时能找到正确的class引用包访问权限就是指同包下的类可见。

import 一般加上全路径,并且使用时只包含当前目录的所有类文件,不包括子目录。

2 外部类只有public和default两种修饰,要么全局可访问,要么包内可访问。

3 内部类可以有全部访问权限,因为它的概念就是一个成员变量,所以访问权限设置与一般的成员变量相同。

非静态内部类是外部类的一个成员变量,只跟外部类的实例有关。

静态内部类是独立于外部类存在的一个类,与外部类实例无关,可以通过外部类内部类直接获取Class类型。

想要了解更多可以跟我一起讨论哦

这样做。。

在类A里面定义一个全局变量 result

然后在C里面调用 Athisresult = Cstring

这样 就传递到A了。。。

然后在B里面 你就可以直接调用A。的全局变量

以上就是关于java中,一个内部类如何拿到外部类的变量值全部的内容,包括:java中,一个内部类如何拿到外部类的变量值、关于java静态内部类形式的单例模式、java 内部类和外部类的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9533566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存