黑马程序员技术交流社区
标题:
我晕了?关于Object的小问题。
[打印本页]
作者:
李哲
时间:
2012-3-27 16:14
标题:
我晕了?关于Object的小问题。
class Demo //extends Object 我本来觉得因为任何类都是object的子类,所以没必要继承,因为默认是继承的啊。但是我把//加上,就会出错。去掉就编译通过。还是别的方面的原因呢?
{
private int num;
Demo(int num)
{
this.num=num;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Demo))
return false;
Demo d=(Demo)obj;
return this.num==d.num;
}
public String toString()
{
return "demo:"+num;
}
}
class ObjectDemo1
{
public static void main(String[] args)
{
Demo d1=new Demo(4);
}
}
作者:
郑洋洋
时间:
2012-3-27 16:39
你弄错了吧,你的代码是可以编译通过的
作者:
抓哇
时间:
2012-3-27 16:40
你可以翻下Object类的源代码 里面没有无参构造函数的 这个可以确定的
Demo(int num)
{
//super();如果写名继承 必须要调用这个 所以就会出错
this.num=num;
}
作者:
adison
时间:
2012-3-27 16:44
厄,有啥可能,你是不是把//去掉时,忘了在文字前加上//,即
//我本来觉得因为任何类都是object的子类,所以没必要继承,因为默认是继承的啊。但是我把//加上,就会出错。去掉就编译通过。还是别的方面的原因呢?
,没加就会提示有非法字符,不然不可能编译不通过吧
作者:
方江
时间:
2012-3-27 16:47
没有错误啊,我编译跟运行都通过了,而且是没有继承Object类的。你再看看,是不是你没保存,然后直接运行了呢
作者:
罗闯
时间:
2012-3-27 16:48
首先说一下object:
object类是所有java类的根基类 如果在类的声明中未使用extends关键字指明其父类,则默认类为object类 所以你这里加不加注释都是一样的。
比如:
public class Person{
...
}
等价于
public class Person extends Object{
...
}
对于toString的用法:
toString 是Object类的一个实例方法,其返回值是String 类型,描述当前对象的有关信息.
我运行了 你这个程序是没有错误的。所以你检查下是不是工具的问题。
你这个程序有些地方要注意:在java源文件中可以包含多个class文件,但是这些class文件只能有一个是public类型的,并且main函数,也就是程序的入口处,必须在public类型的程序中。
你重写了toString()所以建议打印下d的值,结果:demo:4
希望对你有帮助
作者:
李哲
时间:
2012-3-27 18:18
我可能是哪出什么问题,后来编译通过。谢谢大家!
作者:
杨华威
时间:
2012-3-28 11:18
编译通过,没什么问题,你可能是编译的类名写错了。应该文件名写成:ObjectDemo1,编译的时候应该便以这个类。
作者:
姚伟涛
时间:
2012-3-28 11:28
怎么都没有错误,输出都是Demo文件里的信息,你是不是没有Demo这个文件啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2