黑马程序员技术交流社区
标题:
静态和非静态究竟是怎么回事?有的时候不能理解。纠结...
[打印本页]
作者:
say_NO!
时间:
2013-8-26 18:44
标题:
静态和非静态究竟是怎么回事?有的时候不能理解。纠结...
本帖最后由 say_NO! 于 2013-8-26 21:52 编辑
现在学的东西多了,用到静态和非静态的时候脑袋反应不过来了,究竟怎么回事?静态是不是不能变?
作者:
冯安宇
时间:
2013-8-26 18:50
1·、static应用范围:可用于内部类、方法和变量。
2、标记一个方法为static,意味着这个方法,被所在类的所有实例公用,在类装载时被首先执行,执行一次即被所有改类的实例共享,同时意味着:
A、static方法内部不能引用非static变量。
B、static方法不能被子类重写为非static方法。
C、父类的非static方法不能被子类重写为static方法。
D、static代码块可以用static {}来完成,在类被第一次装载时执行初始化,先于静态方法和其他方法的执行。
3、标记一个变量为static,则该变量在内存中有不变的位置,相当于全局变量,所有类的实例都访问同一个存储变量区域。对其修改对于所有类的实例来说都是可见和一致的。
作者:
べPNヤ
时间:
2013-8-26 18:55
加了 static 就是类变量或类方法,类加载的时候就加载到了栈内存,并且拥有唯一的地址,多以不用创建对象可以直接被类名调用,静态也表示是共有的属性,假设大家都是黑马的学生 黑马这个名字对大家来说就是个静态,黑马如果改成白马,那么大家就都是白马的学生了,就是大家共享的 ,如果改变 大家都跟着改变, 非静态的就相当于是对象的属性了 必须建立对象才能调用
作者:
代文娟
时间:
2013-8-26 18:58
静态就相当于共享数据,当你想要把这些数据让其他都可以用的话,你就把他标注为静态,举个例子:比如我们都是中国国籍的,
作者:
代文娟
时间:
2013-8-26 19:02
静态就相当于共享数据,当你想要把这些数据让其他都可以用的话,你就把他标注为静态,举个例子:比如我们都是中国国籍的,你就可以把china这个变量设为静态的,你自己也有名字,年龄,把这些变量设为非静态的,因为你的名字和别人的不一样,实际上static就相当于共享数据
作者:
杨增坤
时间:
2013-8-26 21:10
static 修饰的变量或者是方法是和类一起加载的,也也会随着类的消失而消失,是通过类名直接调用的,一般情况下,是共享的信息定义为静态的,但是他是可以改变的,但是如果是用final修饰的是基本基本类型的话,是不可以改变的,如果是final修饰的引用类型,其内容是可以改变的,(可以查看final修饰成员知识点)
非static 修饰成员变量,是和类的对象一起加载和生成的,也会随着对象的消失而消失,调用的话,也是用对象来调用,它是专属于表示对象的特征的,
希望对你有帮助!
作者:
泡沫之夏
时间:
2013-8-26 21:14
静态随着类的加载而加载,非静态成员变量在new
作者:
say_NO!
时间:
2013-8-26 21:51
べPNヤ 发表于 2013-8-26 18:55
加了 static 就是类变量或类方法,类加载的时候就加载到了栈内存,并且拥有唯一的地址,多以不用创建对象可 ...
谢谢o,有那么点意思了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2