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限定符没起作用?

解决方案 »

  1.   

    private表示在当前类中可以访问,如果main写在其他类中,就会编译出错。
      

  2.   

    private构造函数可以用于单态模式
      

  3.   

    private私有,本类里可以直接调用
      

  4.   

    up
    被private修饰的方法,属性,构造方法,表示在当前类中可以访问。出去这个类会受到限制
      

  5.   

    你的main是private修饰的构造方法的类的主方法,是可以在本类的方法中使用的。private修饰符就是为了修饰只限于本类用于的属性或方法。所以你这个类就不能在其它类中实例化了,但是把构造方法私有化可以使用单例模式的。
      

  6.   

    你在别的类中用 SquareTool square = new SquareTool();就不行了
      

  7.   

    [Quote=引用 1 楼 xyz20003 的回复:
    private表示在当前类中可以访问,如果main写在其他类中,就会编译出错。
    [/Quote]是这样的
      

  8.   

    构造方法被private就无法new出这个对象实例了
      

  9.   

    但是 如果内部类 的 构造器 是 private的外部类 依然可以new 出它来外部类可以访问 内部类 private 修饰的方法或字段