两个初学者问题???

applezh 2003-08-26 08:50:31
1.是不是不可以用对象名直接访问私有字段?
我在CORE JAVA上看到一个例子

class Employee
{...
boolean equals(Employee other)
{
return name.equals(other.name)
}
}

这里other.name不就是直接访问私有字段吗???

2.若一个子类继承父类

如果子类调用父类的构造器,如下:

public Manager(String n, double s,int year,int month,int day)
{
super(n,s,year,month,day);
bonus=0
}

但用super调用父类的构造器时 会不会创建一个子类对象同时 创建一个父类对象??? 还是就是只创建一个子类对象,只是调用简单地用父类构造器地形式来为子类从父类继承下来的私有字段赋值???
...全文
18 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflash 2003-08-26
  • 打赏
  • 举报
回复
UP
林中漫步1982 2003-08-26
  • 打赏
  • 举报
回复
NetixChina(Netix) 是非常正确的, dmhorse(dmhorse)对第一题的回答是错的。


记住:可以在一个类的对象中访问同类的另一个对象的任何private成员变量、成员函数。

因为题中的类名与要访问的对象的类名( 即方法equals中的参数类型)都是Employee类,
所以可以用“ 对象名.成员名”的方式访问。


NetixChina 2003-08-26
  • 打赏
  • 举报
回复
1,private是类级私有,而非对象级私有。即可以在一个类的对象中访问同意各类的另一个对象的任何private成员变量、成员函数。
2,只创建一个子类对象,只是调用简单地用父类构造器地形式来为子类从父类继承下来的私有字段赋值。
dmhorse 2003-08-26
  • 打赏
  • 举报
回复
1. other中的name是private,则不行
2.在java中,所有subclass的create都必会先create super class
你可以在construtor中out.println出来证实

62,614

社区成员

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

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