static 用法总结
static可以修饰静态成员
1.静态变量:
class Student{ static String Id; } public class Demo{ public static void main(String[] args){ Student.Id="2000";//不创建对象就可以访问变量 Student stu1=new Student();//创建学生对象 Student stu2=new Student(); System.out.println("我的号码:"+stu1.Id);//两个对象可以共享静态变量 System.out.println("我的号码:"+stu2.Id); /*如果没有static修饰的变量,则应该给每一个对象都要进行赋值操作: stu1.Id="2000"; stu2.Id="2000"; System.out.println("我的学校:"+stu.Id); System.out.println("我的学校:"+stu.Id); */`
某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。
可以使用类名.变量名的形式来访问。当然也可以先实例化对象在用对象.变量名访问
static关键字只用于修饰 成员变量,不能用于修饰局部变量
静态成员变量可以通过类直接访问
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响
非静态成员变量必须要创建实例后才能访问
2.静态方法
class Person{ public static void hello(){ System.out.println("Hello"); } } public class Demo{ public static void main(String[] args){ Person.hello();//直接用类名调用 Person person=new Person();//也可以通过实例化对象调用 person.hello(); } }
调用静态方法时可以不用创建对象,用类名.方法名() 来调用方法
在静态方法中只能访问静态成员(静态变量或者静态方法),不能访问非静态成员
3.静态代码块:用于初始化静态资源
static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
注意事项
-
独立于类
-
在类加载的时候执行,只执行一次
-
修饰的方法只在调用时执行
成员方法的分类与调用
1.静态成员方法(用static修饰,类与对象共用)调用
类名.静态成员方法
对象名,静态成员方法(不推荐)
2.非静态成员方法(只能对象使用)调用
对象名.实例成员方法
static访问注意事项
1.静态方法只能访问静态的成员,不能直接访问实例成员
2.实例方法可以访问静态的成员,也可以访问实例成员
3.静态方法中是不可以出现this关键字的

浙公网安备 33010602011771号