private的构造函数能直接使用?

craigyang 2009-10-16 11:46:30
public class SquareTool {

private String str;
private SquareTool() { //private
str = "nothing";
}

private class Contents{ //private

private void f(){ //private
System.out.println("In Class First's inner Class Contents method f()");
}

private void getStr(){
System.out.println("First.str="+str);

}
}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

SquareTool square = new SquareTool();

SquareTool.Contents contents = square.new Contents();

contents.f();

contents.getStr();

}
}

这个代码能跑过,里面的private限定符没起作用?
...全文
296 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjhui 2009-10-17
  • 打赏
  • 举报
回复
用private相当是屏蔽了构造器
blliy117 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xyz20003 的回复:
private表示在当前类中可以访问,如果main写在其他类中,就会编译出错。
[/Quote]

是这样的
amdgaming 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cjhui 的回复:]
用private相当是屏蔽了构造器
[/Quote]
对的 其他 类 不可以 直接 访问了 加锁了。。
zhongcheng60 2009-10-17
  • 打赏
  • 举报
回复
但是 如果内部类 的 构造器 是 private的

外部类 依然可以new 出它来

外部类可以访问 内部类 private 修饰的方法或字段
猿敲月下码 2009-10-17
  • 打赏
  • 举报
回复
构造方法被private就无法new出这个对象实例了
cweijiaweil 2009-10-16
  • 打赏
  • 举报
回复
up
被private修饰的方法,属性,构造方法,表示在当前类中可以访问。出去这个类会受到限制
东方明珠2017 2009-10-16
  • 打赏
  • 举报
回复
private私有,本类里可以直接调用
qq366727679 2009-10-16
  • 打赏
  • 举报
回复
private构造函数可以用于单态模式
临远 2009-10-16
  • 打赏
  • 举报
回复
private表示在当前类中可以访问,如果main写在其他类中,就会编译出错。
yjfeng1986 2009-10-16
  • 打赏
  • 举报
回复
你在别的类中用 SquareTool square = new SquareTool();就不行了
bigbro001 2009-10-16
  • 打赏
  • 举报
回复
构造方法私有化 = 单例模式
Henry..D 2009-10-16
  • 打赏
  • 举报
回复
你的main是private修饰的构造方法的类的主方法,是可以在本类的方法中使用的。private修饰符就是为了修饰只限于本类用于的属性或方法。所以你这个类就不能在其它类中实例化了,但是把构造方法私有化可以使用单例模式的。

62,615

社区成员

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

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