永发信息网

如何在外部实例化私有静态内部类

答案:3  悬赏:30  手机版
解决时间 2021-04-05 19:35
如何在外部实例化私有静态内部类
最佳答案
class T1 {
class T2 {
public T2() {
System.out.println("T2");
}
}
static class T3 {
public T3() {
System.out.println("T3");
}
}
private static class T4 {
public T4() {
System.out.println("T4");
}
}
public static void main(String args[]) {
//实例化内部类T4,
//因为内部类T4是private的,所以不可被其他类访问,自然不能在其他类中new出来
T4 t4 = new T1.T4();
}
}
public class A {
public static void main(String args[]) {
//实例化内部类T2
T1 t1 = new T1();
T1.T2 t2 = t1.new T2();
//实例化内部类T3
T1.T3 t3 = new T1.T3();
}
}
全部回答
你这也太高深了吧?先弄懂概念吧,static只能修饰属性,方法,代码段,至于静态类?Java中的类根本就不能用static修饰!如果你要是用static修饰一个class的话,这是错误的!private私有的,只能被这个类本身访问(类可见性);
自己做一下实验不就知道了?
public class A {
private static class B {
public B(){
System.out.println("b");//输出b代表B已经实例化
}
}
public static void main(String[]args){
//直接实例一个B(B是静态的)
B a = new B();
}
}
//输出b
如果你是在不同包的类中这样实例化就不可以了(根本就无法实例化B),因为B是private修饰的
如过静态内部累B是public修饰的
public class A {
public static class B {//private改成public
public B(){
System.out.println("b");//输出b代表B已经实例化
}
}
}
package ....
public class C {//另外一个类(也可能不在同样的包下)
public static void main(String[]args){
A.B a = new A.B(); //实例化A的静态内部类B
}
}
在别的包中的类直接 A.B b = new A.B(); 就可以实例化了

参考资料:本人测试

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁知道济南的马路经路是南北而纬路是东西啊?
手刷跳马是什么意思,请问谁确实试过,9月6日
猫产子喜欢在什么地方,怎么样一个过程?
在广西桂林,全国普通话测试在哪里?什么时候
单选题有人说17世纪英国国王开始被套上“紧箍
常州有没有好一点的穿耳洞的地方?
赞美儿童活泼可爱的诗歌
怎么烧烤黄喉,怎么用料,靠多少成熟?知道的请
“来啊,造作啊,反正有大把时光。”这句歌词
一锅烂肉抄豌豆脂肪热量是多少
分手后为什么没有性欲
王宝强离婚最新进展,这回马蓉要哭了 一分也
形容人反复无常或惯猜成语
宣传科学、揭露伪科学是我们中学生应尽的义务
形容不用上班在家很舒服的句子
推荐资讯
已知x=2和x=-3是方程(x+m)(x-2)=0的两个实数
请问这姑凉是谁,感觉好美
怎样发感谢信呢?
单选题如果1930年从中国洛阳出发,前往德国、
有什么好玩的单机冒险游戏
我80后学点什么好啊
学会知而不言,因为言多必失。
电脑光驱读不出DVD-R光盘,等好久才显示“请
2.6小时=________小时________分???4.05m3=__
开学的最后一自然段的好句子。
上下句对称的唯美古诗,写豪情万丈,兴奋喜悦的
苯酚分子结构中化学键如图所示,关于苯酚在各
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?