学习笔记——关键字static
来源:互联网 发布:公主软件游戏 编辑:程序博客网 时间:2024/06/05 20:43
static 关键字
作用:是一个修饰符,用于修饰成员(成员变量,成员方法)
被static修饰后的成员变量只有一份
当成员被static修饰后多了一种访问方式,除了可以对象调用之外,还可以被类直接调用(类名.静态成员);static 的特点:
1,.随着类的加载而被加载
2,优先于对象的存在
3,.被所有的对象所共享
4,可以直接被类名所调用
静态成员变量(类变量)和非静态变量(实例变量)的区别:
1,存放位置
类变量随着类的加载而存在于data内存区
实例变量随着对象的建立而存在于堆内存区
2,生命周期
类变量生命周期最长,随着类的消失而消失
实例变量生命周期比类变量短,它是随着对象的消失而消失
方法注意事项:
1,静态的方法只能访问静态的成员(成员变量,成员方法)
2,非静态的方法既能访问静态的成员(成员变量,成员方法),也能访问非静态的成员
3,静态的方法中不可以定义this super 关键字
因为静态优先于对象存在,所以静态方法不可以出现this
什么时候使用静态?
因为static 所修饰的内容是成员(成员变量,成员方法),所以可以从两个方面入手
1,什么时候使用静态的成员变量?
当属于同一个类的所有对象出现共享数据时,需要将存储这个共享数据的成员变量用static修饰
2,什么时候使用静态方法?
当功能内部没有访问到非静态的成员时(对象特有的数据),那么该功能可以定义成静态的
如:
public class A_6_37 {
public static void main(String[] args){
Person A=new Person();
A.name="kkl";
A.country="China";
System.out.println(A.name+A.country);
Person.print();
Person B=new Person37();
B.name="ddf";
System.out.println(B.name+B.country);//因为country是静态成员变量,B无需重新赋值,直接共享使用
Person.print();
}
}
class Person{
String name;
static String country;//country可以看成是共享数据,因此用static修饰,变成静态成员变量
static void print(){ //没有访问到对象特有数据,因此可以定义成静态方法
System.out.println("你好");
}
}
- 学习笔记——关键字static
- java学习笔记——static关键字
- C++学习笔记——static关键字
- static关键字学习笔记
- stm32f103学习笔记——关键字extern、static、const
- java学习笔记7——static和final关键字
- 学习笔记之关键字static
- Java学习笔记----static关键字
- JavaSE学习笔记-static关键字
- Java学习笔记--static关键字
- Java学习——static关键字
- java学习日记——static关键字
- java学习基础——关键字static
- JavaSE基础知识学习—Static关键字
- java学习笔记 static,final关键字学习
- (08)Java学习笔记——面向对象02——关键字this static
- Java学习笔记——关于System.out.println()的小思考,static关键字
- static关键字用法学习笔记(C++)
- hibernate 缓存机制
- BZOJ 1708: [Usaco2007 Oct]Money奶牛的硬币
- 【Trie树】Hiho2_Hihocoder
- linux 出错处理函数
- error C4996: 'sprintf': This function or variable may be unsafe.
- 学习笔记——关键字static
- centos上安装drush
- 夜半随笔
- activex控件的开发及测试过程,具体的开发步骤
- Java基础知识2:面向对象
- python对象类型
- 自动矢量化编译优化技术(Automatic Vectorization)
- 【google apec 20151a, 1b, 1c】 七段码,找奇路径或环,切割矩形; n数填m空组合数,倒酒杯,三连扑克消除,第k括号序列;挖矿、+*计算器、俄罗斯方块
- 【机器学习】迭代决策树GBRT(渐进梯度回归树)