请教个关于NEW的问题

yaoguai1233 2010-05-24 10:00:25
今天看到一段代码如下:
public class Hello {

String s = "Hello";

public Hello(String s)
{
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}

public static void main(String[] args) {
Hello x=new Hello("HelloWorld!"); //这里在new Hello的时候跟了参数。
}
}
提问:new是实例化对象的,这里跟了参数是不是说是实例化方法Hello。
还是说可以将Hello x=new Hello("HelloWorld!")理解成
Hello x=nwe Hello();//实例化对象
Hello("HelloWorld");//给方法传参数
是不是可以这么理解?
新人请高手多多指教~~~~~~~~~
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaoguai1233 2010-05-24
  • 打赏
  • 举报
回复
如果类属性上定义的变量和方法内部定义的变量名相同时,用this就表示调用的是类属性,不用this就代表调用的方法内的变量。我是这么理解的。
dabanphoto 2010-05-24
  • 打赏
  • 举报
回复
这个例子我也有问题求教:

程序开始执行后,先将"HelloWorld!"传给了

public TestHelloWorld(String s)

中的(String s),然后打印,输出为s = HelloWorld!,然后

System.out.println("1 -> this.s = " + this.s);

这里好象就有点问题了,这里的this指向的是自己的成员变量String s还是构造器里的S这个形参呢?从运行结果看,应该是指向了成员变量String s,但为什么会这样呢?
yaoguai1233 2010-05-24
  • 打赏
  • 举报
回复
呵呵,谢谢大家。理解又加深了几分
不善^ 2010-05-24
  • 打赏
  • 举报
回复
首先你要了解 构造方法
什么是构造方法?

构造方法有什么用?


这两点明白了 你知道为什么带参数了
Mybeautiful 2010-05-24
  • 打赏
  • 举报
回复
首先,1.你这个例子只能 new Hello (String), 不能直接new Hello().
因为你只有一个构造方法public Hello(String s) (当你写了构造方法后,默认的不带参数的构造方法就不能用了。)


然后,澄清下,不管是带参数还是不带参数构造方法,它都是个构造方法,带参数只是这个方法正好需要参数而已。 (说得有点拗口)

总而言之,构造方法(或说构造器更确切),就是你构造这个方法的途径。一个类可以拥有多个构造器,你能使用任何一个构造器去new这个类的对象。
yaoguai1233 2010-05-24
  • 打赏
  • 举报
回复
明白了,多谢~
茫茫大海 2010-05-24
  • 打赏
  • 举报
回复
new实例化对象时调用构造方法,在本例中构造方法Hello有参数,所以在实例化对象时用new Hello("Hello world"),这句还是实例化对象!方法是对象的,方法不用实例化的!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧