Java学习第二十四天
一、今天干了什么
static关键字
可以用来修饰:属性、方法、代码块、内部类、
(1)使用static修饰变量:静态变量
静态变量与实例变量的对比
实例变量:我们创建了多个对象,每个对象都独立有一套类中的非静态属性。当修改其中一个对象中的非静态属性的时候,不会导致其他对象中同样的属性值发生改变。
静态变量:我们创建了类的多个对象,多个对象共享一个静态变量,当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时是被修改过的。
说明:
①静态变量随着类的增加而增加,可以通过“类.静态变量”的方法进行调用;
②静态变量的加载要早于对象的创建;
③由于类只会加载一次,静态变量在内存中只会存在一份,存在方法区的静态域中;
④是否可以通过类/对象调用变量
静态变量 实例变量
类 可以 不可以
对象 可以 可以
(2)使用static修饰方法:静态方法
说明:
①静态变量随着类的增加而增加,可以通过“类.静态方法”的方法进行调用;
②是否可以通过类/对象调用方法
静态方法 实例方法
类 可以 不可以
对象 可以 可以
③静态方法中,只能调用静态方法和静态属性;
非静态方法中,既可以调用非静态方法和属性,也可以调用静态的方法和属性。
(3)开发中,一般什么样的属性或方法要加static:
①属性是可以被多个对象所共享的,不会随着对象不同而不同;
②操作静态属性的方法,通常设置为static;
③工具类中的方法习惯上声明为静态方法(可以避免去构造对象)。
(4)提醒:
①与C/C++中的static不同,Java中的static关键字不会影响到变量或者方法的作用域。
②在C/C++中static是可以作用域局部变量的,但是在Java中切记:static是不允许用来修饰局部变量。
二、明天干什么
学习单例设计模式、理解main()方法中的语法