大家帮我看一下以下java代码中this都是指的什么?

问题描述

classOuter{intout_i=30;voidtest(){Innerin=newInner(this);in.display();}publicstaticvoidmain(String[]args){Outerout=newOuter();out.test();}classInner//类后面不要加括号是classInner{}而不是classInner(){}{Outerouter;publicInner(Outerouter){this.outer=outer;}voiddisplay(){System.out.println("out_i="+outer.out_i);//system.out.println()括号里面的变量连接是+,而不是逗号,}}}

解决方案

解决方案二:
引用楼主yfhllyf1的帖子:

classOuter{intout_i=30;voidtest(){Innerin=newInner(this);in.display();}publicstaticvoidmain(String[]args){Outerout=newOuter();out.test();}classInner//类后面不要加括号是classInner{}而不是classInner(){}{Outerouter;publicInner(Outerouter){this.outer=outer;}voiddisplay(){System.out.println("out_i="+outer.out_i);//system.out.println()括…

哪个this啊?
解决方案三:
this指的是当前的对象。classInner//内部类{Outerouter;publicInner(Outerouter)//内部类构造{this.outer=outer;//指创建对象的时候传入参数outer,赋给当前对象的属性outer}

解决方案四:
补充:Innerin=newInner(this);//这个this是指把外部类当前的对象作为参数传给Inner构造器

publicInner(Outerouter)//{this.outer=outer;//指内部类创建对象的时候传入参数outer,赋给当前内部类对象的属性outer}

解决方案五:
Innerin=newInner(this);//this指的是当前对象,在这也就是指在main方法体里Outerout=newOuter();产生的对象

解决方案六:
引用2楼yxc0433的回复:

this指的是当前的对象。JavacodeclassInner//内部类{Outerouter;publicInner(Outerouter)//内部类构造{this.outer=outer;//指创建对象的时候传入参数outer,赋给当前对象的属性outer}

回答正确
解决方案七:
this都是指当前对象Innerin=newInner(this);//this指Outer的对象this.outer=outer;//this指Inner的对象
解决方案八:
构造方法就是不是只有对象才能调动,当你new的时候就会调动构造函数,而那个this就是代表当前对象,可以这样理解也就是在你调构造函数的时候传了一个this进去,代表当前对象,this.outer就是当前对象的成员变量了,要是你不用this.那就是构造函数自己的参数赋值给自己了.也就是没有初始化成员变量。
解决方案九:
Innerin=newInner(this);//这个this指的是Outer对象this.outer=outer;//这个this指的是Inner对象

时间: 2024-10-10 02:49:17

大家帮我看一下以下java代码中this都是指的什么?的相关文章

图片-谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂

问题描述 谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂 解决方案 就是一般的配置文件呀,用来程序动态读取数据的,数据维护简单方便,可以用来存储一些不太重要的数据, 具体实现可以用java,c#等等,相关java类有,XmlDocument,XmlElement 解决方案二: 存数据的文件,类似数组.json:只不过规则不同,不是key value了

java-求教!看不懂的Java代码

问题描述 求教!看不懂的Java代码 package org.sun.web.identicon; import java.awt.Color; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; import java.awt.geom.R

string-求大神帮小弟看看这份JAVA代码究竟哪里出问题了 如何修改

问题描述 求大神帮小弟看看这份JAVA代码究竟哪里出问题了 如何修改 public class Person { String name; public Person(String personName) { name = personName; } public String greet(String yourName) { return String.format("Hi %s, my name is %s", yourName,name); } } 解决方案 代码没有编译上的错误

注册表-VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了

问题描述 VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了 void main() { HKEY hkey1,hkey2; DWORD dwDisposition1,dwDisposition2; RegCreateKeyEx(HKEY_CURRENT_USER,"SoftwareMicrosoftInternet ExplorerMain",0,NULL,0,KEY_ALL_ACCESS,0,&hkey1,&dwDisposition1); RegSetValue

c++的问题-C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题

问题描述 C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题 Phone* creat() { ifstream file("Phone.txt"); if( !file ) { for( int i = 0 ; i < 7; i++ ) cout< cout cout system("pause"); system("cls"); } next=NULL; Phone *pNew,*head,*q;

c语言-麻烦大家帮我看一下这段代码有啥错误?

问题描述 麻烦大家帮我看一下这段代码有啥错误? #include<stdio.h> int b[100],c[100],x; void input(int a[],int n) {printf("输入数组a<10个元素>:"); for(int i=0;i<n;i++) scanf("%c",&a[i]);} void insert(int a[],int n,int x) {for(int i=0;i<n;i++) if

求助大神帮我看下 下面的代码哪里有错 编译的时候一直报错

问题描述 求助大神帮我看下 下面的代码哪里有错 编译的时候一直报错 #include #include #pragma comment(lib, "Rasapi32.lib") //#include "Resource.h" HRASCONN hrasconn = NULL; //存放活动连接句柄, 用于断开连接 //BOOL WINAPI DlgProc(HWND,UINT,WPARAM,LPARAM); //BOOL RasEnum(HWND hwnd); //

帮我看一下,这个代码我怎么找不到上传文件的地方呢

问题描述 帮我看一下,这个代码我怎么找不到上传文件的地方呢 基本是按http://blog.csdn.net/jingdian14/article/details/7885416这个来写的 但是好像没有上传文件啊,如果有,哪一个语句是是往uri上传文件?运行winform每次返回的returnvalue都是0,那不就表示根本没完成上传吗,为什么?我也测试过了这个returnvalue=0确实是 else if (sReturnString == "Error") { returnVal

对象-求帮忙看一段java代码,很短的

问题描述 求帮忙看一段java代码,很短的 import java.util.*; public class Student implements Comparable { int score=0; String name; Student(int score,String name){ this.name=name; this.score=score; } public int compareTo(Object b){ Student st=(Student)b; return(this.sc