目录
1. 修饰符(访问控制)
default: 是不写访问控制符
2. static关键字
2.1 用法
修饰属性、方法等
2.2 static方法
2.2.1 static方法特点
- 被声明为static的成员在内存中只保存了一份,存储在方法区中
- 被声明为static的成员会在类加载的时候加载进内存,而其他非静态成员是在创建对象的时候才会去分配内存
- 被static修饰的成员可以直接通过类名来访问,因为它们不依赖于对象。类名.方法、类名.属性
- 对于一些不常改变的对象可以声明成静态的成员,这样就可以共享这一份资源,而且不会浪费内存
- 一些工具方法适合声明成静态的,因为可以直接拿来调用,更方便,但是不是所有的方法都适合声明成静态的,因为静态成员的生命周期长
- 对于静态变量,可以通过类名和引用来访问,建议通过类名来访问,不建议通过引用来访问
- 静态方法,没有隐式this,所以在静态方法中无法方位实例中的变量,方法。实例方法传入了隐式this,可以访问实例的属性和变量
- 静态方法应用场景: 操作与参数有关于对象无关(对对象属性没有做操作)时,定义为静态方法,例如Arrays.sort()。也就是说static方法的作用在于提供一些”工具方法“和”工厂方法”
2.2.2 案例
package src.basic.language;
import java.util.HashSet;
import java.util.Iterator;
/*
* 这个类主要讲了Static关键字的用法
* */
public class StaticKeywords {
static int paramStatic = 0;
int paramClass;
public static void main(String [] args) {
HashSet<String> set = new HashSet<String>();
set.add(