数据结构算法——Static关键字的使用

static 修饰属性(类变量):

1.由类创对象建的所有对象,都共有这个属性
2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的调用
3.类变量随着类的加载而加载,而且独一份
4.类变量的加载是早于对象
5.静态的变量可以直接通过“类.类变量”的形式来调用(例如:person.nation),但是“类.实例变量是不可以的”
6.静态变量存在于静态域中

类的初始化顺序:静态变量 静态块 成员变量 实例块 构造方法

接下来我们举例说明一下:
我们将Person的nation属性用static来修饰,程序运行结果如下:

public class Test2 {
    public static void main(String[] args) {
        Person p1 = new Person("小花",18);
        Person p2 = new Person("小草",19);
        //p1.nation="china";
        System.out.println(p1);
        System.out.println(p2);
    }
     static class Person {
        //实例变量
        String name;
        int age;
        //静态变量
        static String nation;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
         @Override
         public String toString() {
             return "Person{" +
                     "name='" + name + '\'' +
                     ", age=" + age +
                     ", nation='" + nation + '\'' +
                     '}';
         }
     }
}

此时默认p1、p2的属性为null
在这里插入图片描述
当我们在测试函数中对p1的nation属性改为china时,即 p1.nation=“china”;运行结果如下:
在这里插入图片描述

static修饰方法(类方法):

1.随着类的加载而加载,在内存中独一份
2.可以直接通过“类.类方法”的方式调用
3.在内部可以调用静态的属性或者静态的方法,而不能调用非静态的属性或方法。反之非静态的方法是可以调用静态的属性或者方法
4.静态的方法中不可以有this或者super关键字
注:静态的结构(static的属性、方法、代码块、内部类的声明周期早于非静态的,同时被回收也晚于非静态的)

 public void show(){
            System.out.println("age"+this.age);
             System.out.println("nation"+nation);//可以调用,此时,静态方法及属性已经初始化完成
         }
 public static void show1(){
            System.out.println("nation"+nation);
            // System.out.println("age"+this.age); 错误 ,静态方法先初始话,此时实例方法还没有进行初始化
            //this.show();不可以,this表示当前对象,此时还没有对象

         }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值