黑马程序员技术交流社区

标题: 关于static,private分别什么情况下应该使用的问题 [打印本页]

作者: 郑文博    时间: 2012-6-25 11:20
标题: 关于static,private分别什么情况下应该使用的问题
本帖最后由 郑文博 于 2012-6-25 14:17 编辑

希望大家能不吝说说这静态,私有修饰符都是在什么种情况下应该使用,一直跟毕老师视频走过了多线程,编程的一些思想还是能跟上的。就是对这些细节比较懵。
希望有人能帮助总结一下,全当复习巩固一下吧。并帮助我能够找到一个好的方法去理解记忆。谢谢。


--------------------------------编辑后分隔------------------------------
在此非常非常感谢大家给出的总结,现在我知道为什么用,怎么用了。
在以后的编程中会留意这些,三楼给出的例子正是解答我疑惑的关键。
再次谢谢大家。
作者: 陆强强    时间: 2012-6-25 11:31
本帖最后由 陆强强 于 2012-6-25 11:48 编辑

静态是为了所有对象可以共享,一般不常用,像国籍这种不怎么需要改变的成员变量会加个静态,另外一个类里,主函数调用其他函数,这些函数都需要静态,因为主函数是静态;
私有用的很广,尤其是成员变量,一般都加私有,然后通过构造函数或SET方法初始化
举个例子静态就像博物馆,你可以进去观赏,但不能拿回家,能调用它的都是有关部门;
私有好比门锁,只要你有钥匙就可以进去拿东西,如果没有门锁大家谁都可以拿。
所以不是私有什么时候可以用,而是你想不想让里面的东西给别人拿来用。

作者: 王明明    时间: 2012-6-25 11:38
首先你要了解他们的作用,能干啥用
这样你在编程的时候才会想到它 用到它
static 使用非常的简单,如果要修饰一个静态块只需:staic {……..}即可(常用静态块来初始化一些变量); 静态方法就参照main()的形式:访问标 识 static returnType method(…) {};静态变量就是:static type fields;
     在使用静态的方法时,可以直接用类名来引用,不需要创建实例(当然创建实例也是可以的)
java中private 是访问权限符。私有的意思。
JAVA是面向对象的一门语言,每个对象都有各自的属性和方法.但是有的属性涉及安全因素或秘密因素不能让外面的程序调用,所以就用到了private,
经过它定义的变量只能在此对象内部调用,外部程序就无法调用,也就是说只能供其自身调用
class Sundae {
  private Sundae() {}
  static Sundae makeASundae() {
    return new Sundae();
  }
}

public class IceCream {
  public static void main(String[] args) {
    //! Sundae x = new Sundae(); //私有的是不行的
    Sundae x = Sundae.makeASundae();//静态可以直接调用
  }
}
作者: 游洪波    时间: 2012-6-25 12:29
静态变量是全局变量,让每个函数都可以使用。比如你定义一个 static int x=0;
那么接下来不管你在什么地方都可以轻松的使用到他。static 一般作用与不经常改变的变量。
要注意到就是static修饰的变量可以作用与任何方法,但是static修饰的方法只能使用static修饰的变量和方法。所以 如果定义一个变量要在main中使用 的话这个变量就必须是static的。
私有变量使用private 修饰 一般是在定义成员变量的时候使用的,这种修饰符很常用,一般用于限制外部外部的访问,这种private的变量在使用的时候一般都会有相应的setter和getter方法或者构造函数去初始化或者取出对应的值,这样一来就相当于把这些变量进行了封装,你没有这个权限是无法进行访问的。
作者: 李东升    时间: 2012-6-25 13:34
我给你说说我编程怎么用这两个修饰符的吧、
先说static,比如一个系统,需要登录后保存用户信息,你可以在登录的时候把用户信息用static定义成全局的,要用到用户信息的时候,直接保存的类名点信息就可以了,这个在不同类中传值很方便。
private经常使用在类的属性。比如取款机保存用户的金额,用private修饰,只写get方法来获取值,也就是只能让用户也能看到金额,不能修改。
这两个修饰符还有更多的用处,






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