大家可以关注作者的账号,关注从零开始学Java笔记文集。也可以根据目录前往作者的博客园博客进行学习。本片文件将基于黑马程序员就业班视频进行学习以及资料的分享,并记录笔记和自己的看法。欢迎大家一起学习和讨论。
【从零开始学Java笔记】目录
什么是静态?
关键字:static
实例
public class StaticTest {
public static void main(String[] args) {
Shu s1 = new Shu();
s1.name = "刘备";
s1.address = "蜀国";
Shu s2 = new Shu();
s2. name = "诸葛亮";
s2.address = "蜀国";
System.out.println(s1.name+s1.address);
System.out.println(s2.name+s2.address);
}
}
class Shu{
String name;
String address;
}
输出结果
刘备蜀国
诸葛亮蜀国
使用static关键字
public class StaticTest {
public static void main(String[] args) {
Shu.address = "蜀国";
Shu s1 = new Shu();
s1.name = "刘备";
// s1.address = "蜀国";
Shu s2 = new Shu();
s2. name = "诸葛亮";
// s2.address = "蜀国";
System.out.println(s1.name+s1.address);
System.out.println(s2.name+s2.address);
}
}
class Shu{
String name;
static String address;
}
输出结果
刘备蜀国
诸葛亮蜀国
被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享。可以通过类名调用,就像示例中的address
一样,一旦被某个对象赋值,所有对象都拥有这个值。同时静态的加载优先于对象,是和类一起加载的。
static的注意事项
静态方法只能访问静态成员
非静态方法既可以访问静态也可以访问非静态
非静态方法中不可以定义静态变量
静态方法中不可以定义this,super关键字
static的优缺点
优点
- 对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份
- 可以直接被类名调用,不用在堆内存创建对象
缺点
- 访问出现局限性。(静态虽好,但只能访问静态)
static的应用场景
实例:Math类
在使用java提供的Math类的方法时,不需要实例化,直接使用即可。他和调用的成员没有关系,不管谁调用,数学的运算方法都是一样的,这个也称为工具类。