java内部类可以访问外部类的静态方法吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java内部类可以访问外部类的静态方法吗相关的知识,希望对你有一定的参考价值。

内部类
就相当于一个外部类的成员变量,所以可以直接访问
外部变量
,外部类不能直接访问内部类变量,必须通过创建内部类实例的方法访问,
new
InnerClass
(32).m就是创建内部类实例访问内部类成员变量。
你想不通的肯定是指内部类的私有变量怎么可以被外部类访问吧,按常规,私有变量m只能在InnerClass里被访问,
但你要注意,内部类就相当于一个外部类的成员变量,举个例子。
class
Outer
private
int
m;
private
class
Inner
private
int
n;
private
int
k;


m和类Inner都是成员变量,他们之间是平等的,唯一不同的就是Inner它是包装了几个成员变量比如n,k,也就是说m
n
k是平等的,区别在于访问n
k要通过Inner,就是要建立Inner实例访问nk,这样解释够明白了吧
参考技术A 可以,例如
public
class
satictest

//外部静态变量
private
static
int
id
=
1;
//内部类
class
tom
//访问外部类id并打印
private
int
studentid
=
id;
public
void
s()
system.out.print(studentid);


内部类和静态内部类有什么区别?

  • 静态内部类不需要有指向外部类的引用;非静态内部类需要持有对外部类的引用
  • 静态内部类可以有静态方法、属性;非静态内部类则不能有静态方法、属性
  • 静态内部类只能访问外部类的静态成员,不能访问外部类的非静态成员;非静态内部类能够访问外部类的静态和非静态成员
  • 静态内部类不依赖于外部类的实例,直接实例化内部类对象;非静态内部类通过外部类的对象实例生成内部类对象


 


技术图片

 

所有资源资源汇总于公众号

技术图片
 

 

以上是关于java内部类可以访问外部类的静态方法吗的主要内容,如果未能解决你的问题,请参考以下文章

内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

成员内部类的优点

java内部类的静态嵌套类

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

JAVA高级特性--内部类

java 内部类和外部类的关系