以下这段程序的内部类应该如何修改?

问题描述

publicclasstest2{staticclassInner{privatetest2aa(){returntest2.this;}}publicStringtoString(){return"yes";}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubInnerdni=newInner();System.out.println(dni.aa());}}

中的returntest2.this;

这里应该如何修改?现在是错误的。因为我把内部类设成static,所以这个就出错了

解决方案

解决方案二:
返回test2.this的目的是什么?test2没实例化对象,这里直接调用this肯定报错的。你可以returnnewtest2();
解决方案三:
Quote: 引用1楼sum_rain的回复:

返回test2.this的目的是什么?test2没实例化对象,这里直接调用this肯定报错的。你可以returnnewtest2();[/quote上面解释有误。因为Inner是静态的,所以,在test2没有实例化(this也就没有具体指向)的前提下就可以访问,而这种情况下,this就没有意义了。如果要使用this,必须将static去掉,那么可以通过newtest2().newInner()创建内部类的实例化对象,因而可以使用newtest2()对应的this了。
解决方案四:
不知道你要什么效果,只是返回一个test2对象?returnnewtest2();

解决方案五:
问题描述不清

时间: 2024-08-31 03:28:44

以下这段程序的内部类应该如何修改?的相关文章

new-这段程序怎么修改?为什么没有输出结果?

问题描述 这段程序怎么修改?为什么没有输出结果? int[] iArrary = new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 }; for (int i = 0; i < iArrary.Length; i++) { for (int j =i+1; j < iArrary.Length; j++) { if (iArrary[i]>iArrary[j]) { int temp = iArrary[i];

面向对象-请问这段程序的输出是什么 为什么

问题描述 请问这段程序的输出是什么 为什么 public class Test { public static void main(String[] args) { Animal a = new Dog(); a.syaHi(); Animal b = new Bulldog(); b.syaHi(); Dog dog = (Dog)b; dog.syaHi(); check(dog); Bulldog bulldog = (Bulldog)b; check(bulldog); } public

输出-求用c语言编写这么一段程序

问题描述 求用c语言编写这么一段程序 1.用随机产生n个整数,赋给a数组 2.从小到大排序 3.计算最小数的阶乘 4.输出数组内容 解决方案 这个不难,就是先随机n个数放到数组再对数组排序,然后对数组第一个数求阶乘输出,最后输出整个排序过的数组,一步步来很简单 解决方案二: 参考代码段:https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c 解决方案三: 你需要什么样的排序方式?最

求大家使用C++编写一段程序,将.dat文件的数据取出,然后放到8个数组中,谢谢!今晚就需要!

问题描述 求大家使用C++编写一段程序,将.dat文件的数据取出,然后放到8个数组中,谢谢!今晚就需要! 具体内容:用VC时候,编写上位机程序,需要将一个我已知的.dat文件的数据取出,隔8个点放到1个数组里,这样就将数据分到8个数组中了,需要在void CtestDlg::OnPaint()下面进行操作,把.dat数据取出.根本不懂啊,求指点 解决方案 没办法通过.dat后缀这个信息知道你的文件格式.再说你也根本不懂,建议还是去威客网站雇一个人帮你.

求助,已知二叉树前序终序号求后序的下面这段程序的递归部分的意义,看不懂啊

问题描述 求助,已知二叉树前序终序号求后序的下面这段程序的递归部分的意义,看不懂啊 public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root=reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1); return root; } //前序遍历{1,2,4,7,3,5,6,8}和中序遍历序列{4,

c语言-这段程序问题在哪里,编译后的结果让我很费解

问题描述 这段程序问题在哪里,编译后的结果让我很费解 #include #include int main() { float x,y,z,k; char s,q; printf("请输入加油量:n"); scanf("%f",&x); printf("请输入服务类型:n"); printf("a.自己加n"); printf("b.自助加n"); scanf("%c",&

单片机 c-有段程序求大神帮忙找找哪里有问题

问题描述 有段程序求大神帮忙找找哪里有问题 是有关AT89c51单片机的c语言程序的,程序主要内容是测温显示以及键盘输入显示,使用keil编程,在protues软件上仿真..仿真结果与预想的有很大差别..希望大神能帮帮忙寻找错误....由于程序偏长,热心的大神可以留下QQ等,我会将程序发到你邮箱里面去的 解决方案 906254242我试试i

c语言-下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么?

问题描述 下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么? 其实就是在执行两层for循环的循环体中,for循环调换位置是否对效率有影响? 如下: 代码段一: for(row=5;--row>=0;) for(col=100;--col>=0;) sum=sum+a[row][col]; 代码段二: for(col=100;--col>=0;) for(row=5;--row>=0;) sum=sum+a[row][col]; 本人小白,望大神们指教. 解决方案

opencv c++-请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊!

问题描述 请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊! if(f) { if(!fgets(filename, (int)sizeof(_filename)-2, f)) break; //while(*filename && isspace(*filename)) // ++filename; if(filename[0] == '#') break; //continue; int l = (int)strlen(filename); while(l > 0