黑马程序员技术交流社区

标题: 当private和static一起出现在一句语句当中会什么结果. ? [打印本页]

作者: 王峰230321    时间: 2013-7-23 22:33
标题: 当private和static一起出现在一句语句当中会什么结果. ?
我知道 现实中一般不会出现这样的事情哈.  但是  真出现了呢. ?  静态还能用类名.方法访问吗? private的私有还有用吗. ?

作者: Joesph    时间: 2013-7-23 22:45
先抢个沙发!!{:soso_e113:}
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用,但是不能在其他类中通过类名来直接引用,这一点很重要!
private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了
作者: denghui1010    时间: 2013-7-23 22:48
谁说不会出现...单例设计模式
  1. class Single
  2. {
  3.         private Single(){}
  4.         private static final Single s = new Single();
  5.         public static Single getInstance()
  6.         {
  7.                 return s;
  8.         }
  9. }
复制代码

作者: denghui1010    时间: 2013-7-23 22:53
关于后半部分,private肯定有用啊,既然私有了,别的类就不能访问了,更别说用类名.方法了
作者: liuzhming    时间: 2013-7-23 22:54
static与private可以一起使用,此时,不能通过类名.方法来访问静态。比如我们在系统中定义某个常量(对象的值不可变)如下:
private static final String invariable = “This can’t be changed”;
该变量只能在当前这个类中被使用,并且是带有static修饰的静态函数中被调用。加final则该属性的值将不能被改变。
作者: wodenhaowzg    时间: 2013-7-23 22:54
嗯 被private修饰后 外部不能通过类名调用,即外部对其没有访问途径。而加static可以被类内部的静态成员调用。
作者: 王峰230321    时间: 2013-7-23 23:18
denghui1010 发表于 2013-7-23 22:48
谁说不会出现...单例设计模式

搜噶..   忘了单例了..    像 这句的话.   private static new对象的时候 其实开始的时候也不用static, 主要是因为getInstence是公共静态,需要被外界访问,然后又访问了s ,  为了让getInstence能够访问到 才在s上加的静态, 对吧.?
作者: 张强1    时间: 2013-7-23 23:27
private是访问权限是私有的,static表示不要实例化就可以使用,在一起是静态私有成员
作者: jialihong    时间: 2013-7-24 10:06
private 在定义成员变量或者成员方法时,只有在本类才能调用。
static 和 private 都是用来修饰的,是修饰符,不能叫变量。用static 修饰的变量可以用private 修饰。
作者: 张亚军    时间: 2013-7-24 10:12
private 与static可以一块使用  。private的作用是将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。static修饰的成员变量随着类的加载而加载,优先于对象存在,存放在方法区中的静态区,被所有对象所共享,可以直接被类名调用。当在一起使用时,例如:private static String str="heimaluntan",只能在当前类中直接访问,且只能被静态函数所访问,不能通过其他类的类名.方法()的方式访问
作者: 何武    时间: 2013-7-24 10:23
方法是private类型时,在别的类中是无法进行类名.方法的访问的
作者: 董凯    时间: 2013-7-24 11:20
  1. /*
  2. 单例模式示例,你悄悄吧
  3. */
  4. class  Demo
  5. {
  6.         private Demo(){}//私有构造方法
  7.         private static Demo s = new Demo();//建立对象,s指向single对象
  8.         public static Demo getInstance()
  9.         {
  10.                 return s;
  11.         }
  12.        
  13. }
  14. class SingleDemo
  15. {
  16.         public static void main(String[] args)
  17.         {
  18.         Demo s1 = Demo.getInstance();
  19.         System.out.println(s1);
  20.         }
  21. }
复制代码

作者: 薛鹏鹏    时间: 2013-7-24 11:29
本帖最后由 薛鹏鹏 于 2013-7-24 11:33 编辑

除了单例设计模式,还有全局常量public static final int PI=3.14,变成private后,就只能在该类或该类的其他静态中被调用
作者: 薛鹏鹏    时间: 2013-7-24 11:34
本帖最后由 薛鹏鹏 于 2013-7-24 11:35 编辑
薛鹏鹏 发表于 2013-7-24 11:29
除了单例设计模式,还有全局常量public static final int PI=3.14,变成private后,就只能在该类或该类的其 ...

不好意思刚开始看错了。。。。。。已经改了过来
作者: 薛鹏鹏    时间: 2013-7-24 15:25
薛鹏鹏 发表于 2013-7-24 11:34
不好意思刚开始看错了。。。。。。已经改了过来

这个。。。楼上的都已经说完了,来晚了:'(:'(




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2