static、final 关键字详解

0、static 关键字

  1. static 为关键字,可修饰变量、方法、代码块、内部类,且被修饰的信息都只会被加载一次
  2. 被 static 修饰表示静态的

a、static 修饰变量 : 静态变量

   ① 随着类的加载而加载到静态区,与类同级,也叫做类变量,可以通过 类名.(类名点)的方式来直接调用静态变量,也可以通过对象调用
   ② 静态区会给静态变量赋予默认初始值(详细系统默认初始值请查看 :系统默认初始值、方法以及方法重载
   ③ 类创建的所有对象都共享同一个静态变量
   ④ 属性是否需要被共享,如果需要被共享就可以加上 static 进行修饰

public class Test {
   
    /* 验证 ③类创建的所有对象都共享同一个静态变量 */
    public static void main(String[] args) {
   
        // 创建第一个 Student 对象,并赋值
        Student s1 = new Student();
        s1.name = "小明";
        s1.country = "中国";
        // 创建第二个 Student 对象,只对其名字进行赋值
        Student s2 = new Student();
        s2.name = "小红";
        //输出打印
        System.out.println(s1);
        System.out.println(s2);
        System.out.println("---------分隔符-----------");

        //改变小红中的 country 属性
        s2.country = "China";
        //再次输出打印
        System.out.println(s1);
        System.out.println(s2);
    }
}
class Student{
   
    //非静态属性
    public String name;
    //静态属性
    public static String country;
    //无参构造
    public Student (){
   }
    //toString 方法
    @Override
    public String toString() {
   
        return "Student{" +
                "name='" + name + '\'' +
                "country='" + country + '\'' +
                '}';
    }
}

  结果 :

Student{
   name='小明'country='中国'}
Student{
   name='小红'country='中国'}
---------分隔符-----------
Student{
   name='小明'country='China'}
Student{
   name='小红'country='China'}

   从上面案例中,
    创建 s1 时对其 name 和 country 属性都赋值;创建 s2 时只对其 name 赋值,但是打印时发现,s2 的 country 属性也同样被赋予值 “中国”;
    当只对对 s2 country 属性进行修改成 "China"时,s1 country 属性也同样被修改成了 “China”。说明:类创建的所有对象都共享同一个静态变量

b、static 修饰方法 :静态方法

   ① 随着类的加载而加载到静态区,与类同级,也叫类方法,可以通过 ==类名.==方式来调用,也可以通过对象调用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值