三个关类的问题

sqq4290 2008-04-14 10:16:09
Q1:构造函数为什么不能有返回值呢?
Q2:为什么一个类可以在定义自己同时实例化自己呢?比如

Lab.java
class Lab
{
private int arg1;
private int arg2;
Lab()
{
arg1=1;
arg2=2;
}
Lab lab=new Lab();
}

这种方式实例化自己应该注意什么,这样做又什么用途?
Q3 一个接口是不是只能被类实现(implements)而不能被类扩展(extends)?
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
panxuan 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dracularking 的回复:]
1.因为构造方法是用来new的
2.类中实例化自己前提是类中允许实例成员 只不过该实例比较特殊 一般可能会应用于单例
3.接口可以被接口继承 被类继承没见过
[/Quote]
anqini 2008-04-15
  • 打赏
  • 举报
回复
第五楼:
问题1:构造方法的目的是为了在以后的程序中使用该类而做的准备,那准备是什么呢?就是初始化各成员变量,调用构造方法,当然,他继承了其他类的话得先实例化父类的。这样准备完毕后,把实力化的对象给某个引用变量。

问题2:我觉得定义这个词包含了实力化,定义本身就是把实力化的对象付值给引用变量。
问题3:接口能被接口继承,是单继承,能被类(包括抽象类)实现,切忌,可以多实现!
晨星 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sqq4290 的回复:]
引用 3 楼 steedhorse 的回复:
(2)不明白楼主哪里不懂,为什么不可以呢?反正一切都是引用,这跟实例化一个其它类的对象又有什么区别呢?

我就是想知道这种在定义自己的同时又实例化自己的类在设计类的范畴内有什么实际用途
[/Quote]
你别老是“自已自已”的,非静态成员变量的初始化不管是不是写在构造函数中,都是在对象被创建时执行的,所以实例化自己跟实例化别人没有任何区别。
怎么会没有用呢?只要类中的成员变量有用,初始化就肯定有用。
你钻牛角尖了。
sqq4290 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 steedhorse 的回复:]
(2)不明白楼主哪里不懂,为什么不可以呢?反正一切都是引用,这跟实例化一个其它类的对象又有什么区别呢?
[/Quote]
我就是想知道这种在定义自己的同时又实例化自己的类在设计类的范畴内有什么实际用途
whmjxa 2008-04-14
  • 打赏
  • 举报
回复
问题一:构造方法就是没有返回值的,有返回值的就不叫构造方法了,因为构造方法默认就是public leiming(可有参数可无){}
问题二:当类的一个对象被创建时,自动执行该类的构造方法
问题三:一个接口可以被类实现也可以被类继承

纯属个人理解,还请高手指点
晨星 2008-04-14
  • 打赏
  • 举报
回复
(1)构造函数在使用new创建对象时被自动调用,而new返回的永远是新对象的引用,基本上没有机会再搞一个额外的返回值。如果想报告错误,可以使用异常机制;
(2)不明白楼主哪里不懂,为什么不可以呢?反正一切都是引用,这跟实例化一个其它类的对象又有什么区别呢?
(3)接口可以被其它接口继承,被类实现。没有类继承接口一说。
snakexiay 2008-04-14
  • 打赏
  • 举报
回复
Q2里面的lab实际上是Lab类的一个属性,它是一个Lab类型的对象,所以用new Lab()初始化它
dracularking 2008-04-14
  • 打赏
  • 举报
回复
1.因为构造方法是用来new的
2.类中实例化自己前提是类中允许实例成员 只不过该实例比较特殊 一般可能会应用于单例
3.接口可以被接口继承 被类继承没见过

62,615

社区成员

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

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