A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我知道 现实中一般不会出现这样的事情哈.  但是  真出现了呢. ?  静态还能用类名.方法访问吗? private的私有还有用吗. ?

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 赞一个!

查看全部评分

16 个回复

倒序浏览
先抢个沙发!!{:soso_e113:}
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用,但是不能在其他类中通过类名来直接引用,这一点很重要!
private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
谁说不会出现...单例设计模式
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
关于后半部分,private肯定有用啊,既然私有了,别的类就不能访问了,更别说用类名.方法了
回复 使用道具 举报
liuzhming 来自手机 中级黑马 2013-7-23 22:54:18
报纸
static与private可以一起使用,此时,不能通过类名.方法来访问静态。比如我们在系统中定义某个常量(对象的值不可变)如下:
private static final String invariable = “This can’t be changed”;
该变量只能在当前这个类中被使用,并且是带有static修饰的静态函数中被调用。加final则该属性的值将不能被改变。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
嗯 被private修饰后 外部不能通过类名调用,即外部对其没有访问途径。而加static可以被类内部的静态成员调用。
回复 使用道具 举报
denghui1010 发表于 2013-7-23 22:48
谁说不会出现...单例设计模式

搜噶..   忘了单例了..    像 这句的话.   private static new对象的时候 其实开始的时候也不用static, 主要是因为getInstence是公共静态,需要被外界访问,然后又访问了s ,  为了让getInstence能够访问到 才在s上加的静态, 对吧.?
回复 使用道具 举报
private是访问权限是私有的,static表示不要实例化就可以使用,在一起是静态私有成员
回复 使用道具 举报
private 在定义成员变量或者成员方法时,只有在本类才能调用。
static 和 private 都是用来修饰的,是修饰符,不能叫变量。用static 修饰的变量可以用private 修饰。
回复 使用道具 举报
private 与static可以一块使用  。private的作用是将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。static修饰的成员变量随着类的加载而加载,优先于对象存在,存放在方法区中的静态区,被所有对象所共享,可以直接被类名调用。当在一起使用时,例如:private static String str="heimaluntan",只能在当前类中直接访问,且只能被静态函数所访问,不能通过其他类的类名.方法()的方式访问
回复 使用道具 举报
方法是private类型时,在别的类中是无法进行类名.方法的访问的
回复 使用道具 举报
  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:33 编辑

除了单例设计模式,还有全局常量public static final int PI=3.14,变成private后,就只能在该类或该类的其他静态中被调用

点评

你这个是 public 我说的是 private . .. . 一个天 一个地~~  发表于 2013-7-24 11:31
回复 使用道具 举报
本帖最后由 薛鹏鹏 于 2013-7-24 11:35 编辑
薛鹏鹏 发表于 2013-7-24 11:29
除了单例设计模式,还有全局常量public static final int PI=3.14,变成private后,就只能在该类或该类的其 ...

不好意思刚开始看错了。。。。。。已经改了过来

点评

哈哈.. . 没事. . 不过 说实在的. 你回复的内容太少了. 回复多一点 全一点 . 有可能就给你 技术分呢..  发表于 2013-7-24 11:53
回复 使用道具 举报
薛鹏鹏 发表于 2013-7-24 11:34
不好意思刚开始看错了。。。。。。已经改了过来

这个。。。楼上的都已经说完了,来晚了:'(:'(
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马