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. 独立于类

  2. 在类加载的时候执行,只执行一次

  3. 修饰的方法只在调用时执行

   

成员方法的分类与调用

      1.静态成员方法(用static修饰,类与对象共用)调用

                       类名.静态成员方法

                       对象名,静态成员方法(不推荐)

        2.非静态成员方法(只能对象使用)调用

                        对象名.实例成员方法

 

 

static访问注意事项

1.静态方法只能访问静态的成员,不能直接访问实例成员

2.实例方法可以访问静态的成员,也可以访问实例成员

3.静态方法中是不可以出现this关键字的

 

posted @ 2022-09-26 19:01  伽澄  阅读(121)  评论(0)    收藏  举报