大家帮忙看看这个JAVA的小程序哪里有错误。谢谢。

packagetest;publicclassTest{Stringtext;publicvoidTest(Strings){this.text=s;}publicsta... package test;

public class Test {
String text;
public void Test(String s){
this.text = s;
}
public static void main(String[] args) {
Test test = new Test("ABC");
System.out.println(test);
}

}
展开
 我来答
修罗撒旦
2008-06-08 · TA获得超过690个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:132万
展开全部
关键错误是:当你显式的定义了有参构造方法后,你就必须要显式的构造一个无参方法!这是至关重要的!!其他都是一些无关痛痒的错误。

修改如下:

package test;

public class Test {

String text = null;

//这里我说一下,你不写VOID和写VOID是一样的,无关紧要,因为构
//造参数不写返回值,默认就是VOID。但是你想定义有返回值(不
//是VOID)的构造参数就是不合法的了。

public void Test(String s){ //有参构造
this.text = s;
}
public void Test() {}//无参构造

public static void main(String[] args) {

Test test = new Test("ABC");
//这里我也说一下,你直接打印TEST语法是没有错的,但是他得不到
//你想要的ABC,而是打印出对象的哈希值。因为打印对象程序会自动
//调用最终父类OBJECT的方法来打印。所以如果你想打印ABC,就
//用System.out.println(test.text);

System.out.println(test);
}

}

试试看还有没有编译错误吧。JAVA优势就是封装,继承 和多态,所以参考一下 房爱德 的建议是好的。
suminglan
2008-06-08 · TA获得超过200个赞
知道答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
package test;

public class Test {
String text;
//构造方法改一下,构造方法怎么能有返回值呢
public Test(String s){
this.text = s;
}
public static void main(String[] args) {
Test test = new Test("ABC");
//这里改成这个就可以了
System.out.println(test.text);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuwei_blog
2008-06-08
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
去掉void,构造函数没有返回值标识符,test改为test.text 如下:

package test;

public class Test {
String text;
public Test(String s){
this.text = s;
}
public static void main(String[] args) {
Test test = new Test("ABC");
System.out.println(test.text);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亓昂熙5V
2008-06-08 · TA获得超过231个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:0
展开全部
System.out.println(test); // println 方法不能打印test对象,

要想打印,就用test.test打印test属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
房爱德
2008-06-08
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
用System.out.println(test.text);在此处能解决问题但原因如下:
1 test类中的text属性是"包"访问权限.所以在这个例子中test.text 能 解决问题!
2 但这不符合面向对象的规则,test类中的text属性也是不安全的.最好这样改动:
public class Test {
private String text;
public void Test(String s){
this.text = s;
}
public String getTest(){
return this.text;
}
}
这样只有在test类内部才可以访问text属性.笔者个人认为java的
面向对象优势就在此,可以封装属性.不这样做,java与其他编程语言就一样了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式