| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:关于默认构造器的问题
取消只看楼主 加入收藏
chengsencs
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-7-24
收藏
 问题点数:0 回复次数:2 
关于默认构造器的问题
public class Garden
{
public String getFlower(String strFlowerName)
{

if(strFlowerName.equals("rose"))
{ return new Rose();
}

if(strFlowerName.equals("peony"))
{ return new Peony();
}
return null;

}
}

这个程序运行时总是提示

D:\>javac Garden.java
Garden.java:7: cannot resolve symbol
symbol : variable rose
location: class Garden
{ return rose;
^
Garden.java:10: cannot resolve symbol
symbol : variable peony
location: class Garden
{ return peony;
^

我的看法是因为并没有声明构造器所以系统自动生成了一个默认构造器,这个构造器为
public Garden();
但是这个构造器没有参数,所以无法使用
public String getFlower(String strFlowerName)
方法,故系统报错。不知道我的解释是不是对的,希望各位指点一下。并且
帮我改正这个程序的错误之处。谢谢!
搜索更多相关主题的帖子: 构造器 
2006-08-01 20:16
chengsencs
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-7-24
收藏
得分:0 

如果可以的话再看一下这个程序

public class InitObject
{
private Date today;
public static void main(String[] args)
{
new InitObject().print(); ×××
}

public void print()
{
System.out.println(today.toString());
}
}

打星号的那行意思是不是因为没有别的构造器,所以系统默认了构造器并且自动声明了
一个对象new InitObject() 还是利用打星号的那行同时进行了声明变量和调用print()方法?
求助!谢谢!

2006-08-01 20:24
chengsencs
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-7-24
收藏
得分:0 
以下是引用NiceGirl在2006-8-1 22:23:01的发言:

new InitObject() 是个对象,然后这个对象调用print()方法。
第一段代码能把其他的类贴出来吗?完整点,这样看不懂

是否因为没有显式声明一个构造器,所以系统自动声明一个默认构造器,并且又自动声明了一个对象new InitObject()?即星号行之前,系统已经自动声明了new InitObject(),所以可以接着用new InitObject()来调用方法?

第一楼的代码是我从一本教科书上COPY来的。是全部的代码了。

2006-08-01 22:45
快速回复:关于默认构造器的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049236 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved