friendly类中含有public成员有什么意义?

suanleba2 2013-10-09 10:32:12

例如:

package im.Fuck;
public class Fuck {

...
}

class Shit {
public void f() { ... }
Shit() { return new Shit(); }
}
  
  


在一个package内,shit类是friendly权限,其内部方法f()是public权限, 这有什么意义?

《Thinking Java》里这样的用法随处可见,比如在p128页(中文4版)左下角就说“Cleanser中所有方法都必须是public的,这一点非常重要”

附p128页部分代码:
class Cleanser {
private String s = "Cleanser";

public void append ( String a ) { s += a; }
...
public void scrub() {("scrub()"); }
...
}

public class Detergent extends Cleanser {
public static void main( String [] args ) {
Detergent x = new Detergent();
x.scrub();
...
}
}


求大神解答!
...全文
269 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yktd26 2013-10-10
  • 打赏
  • 举报
回复
你给的例子和他的例子不一样,你的声明成public暂时没有意义,包外看不到这个类 但是书上的例子是有意义的,因为
Detergent extends Cleanser
,即如果一个类不是final类,是可能或是预计一定会被继承,那他的成员声明成public可能取决于是否允许子类为公共类时是否暴露这些成员啊 他书上把main函数写在了同一个类里,显示不出效果,比如你将main放到另一个包的某个类里可以看到区别
马达马达达 2013-10-09
  • 打赏
  • 举报
回复
friendly是只能在同一个包下访问
一个java文件里只能有一个public类
失落夏天 2013-10-09
  • 打赏
  • 举报
回复
成员声明为public则可以在其他类中调用该成员 至于类声明为public 那是和类文件名相对应的那个。。
suanleba2 2013-10-09
  • 打赏
  • 举报
回复
引用 1 楼 e274794140 的回复:
friendly是只能在同一个包下访问 一个java文件里只能有一个public类
我问的是 一个包里的类不是public, 但是它的成员是public, “这 样 做 有 什 么 意 义 ”?

62,620

社区成员

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

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