永发信息网

java主函数访问主函数所在类的内部类的问题

答案:2  悬赏:70  手机版
解决时间 2021-01-27 08:50
新人初学java,有个地方非常不解,希望大神们不吝赐教,拜托啦……(^人^)

问题描述如下:
先给一段代码吧
class Outer{}
class A
{
class Inner1{}
static class Inner2{}
public static void main()
{
new Outer();//这句编译成功 ————(1)
new Inner();//这句编译失败————(2)
new Inner2();//这句编译成功————(3)
}
}
那么问题来了,关于(1)(2)(3),大神们都是如何理解的呢?

呃,突然想起来,再补充一点~
在class A中再定义一个函数如下
public void f()
{
new Inner1();//这句编译成功————(4)

}
还有就是(2)那句是new Inner1() 之前少打了个1。。。
最佳答案
首先非静态方法是可以访问和实例化静态和非静态内部类的,所以f()方法编译成功
再者静态方法是不可以访问和实例化非静态内部类的,因为main方法是静态的,所以(2)编译错误

如果内部类是静态(static 修饰),那么内部类中是不能访问外部类非静态属性和方法的,反之则能访问

静态内部类:是可以被独立实例化的,而不依赖外部类实例化,且内部类中可以有静态属性,但是只能访问外部类静态属性

非静态内部类:要实例化必须先实例化外部类,他是依赖于外部类实例的,所以他才能够有资格访问外部类的非静态属性,即使是private属性,但是非静态内部类中是不能有静态属性的

严格来说,内部类就是外部类的一个属性,既然是自己的属性当然就能被其他属性和方法访问,因此应该遵循属性访问的一般规则,即非静态属性或方法可以访问静态和非静态属性,但是静态属性或方法只能访问静态属性,在这里你应该能发现点什么,内部类和其他属性一样,有静态和非静态之分,且静态属性可以不依赖类实例化而使用,而非静态则需要依赖类实例化而初始化。

所以内部类是比较特殊属性但是也符合类的一般属性情况 ,希望能帮助你!
全部回答
先看下面程序:(我结合这段代码讲) 首先要弄清楚的是,类 b 和 方法f在编译的时候是在一个层次上 他们使用的资源都是自己的局部变量,或者是成员变量。 现在类b要用方法f的资源,所以必须这个资源是已经存在的,final 的资源是原来定义并初始化的。所以... 我的语文不太好,说的有点乱,如果没看懂在找我... =========================code begin ======================= public class test { int b = 0; final int c = 0; void f(final int a) { class b { void print() { system.out.println(a); system.out.println(b); system.out.println(c); } } } public static void main(string[] args) { } } =======================code end =====================
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个女孩子说;如果我死了,你怎么办?
天鹭·清林雅筑停车场地址在什么地方,我
云中城6层第四关怎么打
江鼍的意思是什么啊?知道的请说下!
苹果6手机的Wi-Fi打不开,这是什么原因
1966年是什么年
喜欢你的人经常给你发短信你会怎么想他?
凤九是谁的孩子
小儿最常见的心律失常为A.室性心动过速B.室上
5条国际新闻 要有介绍发生地所在的半球、国家
东联·阳光尚城停车场地址有知道的么?有
景逸x5和宝骏56o后备箱尺寸谁大
洁整的意思是什么啊?知道的请说下!
为什么溴是易挥发
预产期最多嫩超过多长时间,超过时间长了会不
推荐资讯
矫正牙齿以后不戴保持器牙齿以后会变形吗?
这是权志龙啊~~虽然真的很像女的,但是五官之
飘樊落混的意思是什么啊?知道的请说下!
<急>吊瓜子怎么吃啊?
豆角吃多了有坏处吗?
大众驾校(洛阳涧西)怎么去啊,我要去那办事
驾驶证换证时或转入其它省时需要从新拍照片吗
将信将疑的意思是什么啊?知道的请说下!
这只鸡在游泳,我在帮他看着衣服的英文翻译
花龙村地址在哪,我要去那里办事
得道肥的意思是什么啊?知道的请说下!
请问农业银行卡打电话给客服能修改预留号码嘛
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?