1.修饰变量;
/** * 修饰变量; * 如果一个成员变量使用了static关键字,那么这个变量对象不在属于对象自己,而是属于所有的类,多个对象共享一份数据; */ public class static001 { public static void main(String[] args){ Student sc = new Student("黄鱼",20); Student.room = "01教室"; System.out.println(sc.getName()+","+sc.getAge()+","+sc.room); Student sc2 = new Student("贱贱",21); System.out.println(sc2.getName()+","+sc2.getAge()+","+sc.room); } } class Student{ private String name; private int age; static String room;//共有的变量; public Student(){ } public Student(String name,int age){ this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
2:修饰方法:
/** * 修饰方法: * 一旦使用static修饰成员方法,那么就成为了静态方法,静态不属于对象,而是属于类的。 *1:如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它。 * 2:如果有static关键字,那么不需要创建对象,就可以通过类名称进行调用。 * 3:静态变量:类名称.静态变量; * 静态方法:类名称.静态方法(); * 4:静态只能访问静态,静态不能直接访问非静态,静态方法中不能使用this关键字; */ public class static002 { public static void main(String[] args){ StaticMc01 a = new StaticMc01();//先创建对象; a.method();//然后才能使用没有static关键字的内容; /** * 对于静态方法来说,可以通过对象名进行调用,也可以通过类名称进行调用。 */ a.methodStatic();//通过对项目进行调用。 不推荐。 StaticMc01.methodStatic();//直接通过类名称调用。 推荐。 method01();//对于本类的静态方法来说,可以省略类名称; } public static void method01(){ System.out.println("这是一个本类的静态方法"); } } class StaticMc01{ public void method(){ System.out.println("这是一个成员方法"); } public static void methodStatic(){ System.out.println("这是一个静态方法"); } }
3:修饰静态代码块;
/** * 修饰静态代码块; * 1:静态代码块特点(当第一次用到本类时,静态代码块执行唯一的一次); * 2:静态代码块用来一次性的对静态成员变量进行赋值; */ public class static003 { public static void main(String[] args) { person one = new person(); } } class person{ static { System.out.println("静态代码块"); } public person(){ System.out.println("构造方法"); } }