static关键字

static用于当我们希望无论对象是否产生或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如每个人虽然属性不尽相同,但是国籍和性别基本固定,所以可以将国籍和性别定义为静态,拥有共同属性的公用一份属性,不需要每个对象均占用一个内存

static :静态的

  • 1:static 修饰属性、方法、代码块、内部类

        注意:static 不能修饰构造器
    
  • 2、static修饰属性:

     	2.1 静态属性(类变量) vs 非静态属性(实例变量);
    

实例变量:每个对象拥有独立的一套非静态属性,修改一个对象的属性对其他对象无影响。
静态属性:创建多个对象后,多个对象共享一个静态变量。当通过一个对象修改静态变量时,其他对象调用也是修改过的

  		2.2 修饰形式:static 数据类型 变量名;
  		2.3 其他说明:

①静态变量随着类的加载而加载,早于对象的加载,因此不需要实例化,可直接通过 类.静态属性使用。
②由于类❤只会加载一次❤,因此类的静态属性❤存在于方法区的静态域❤(String类型也是)

                  静态属性        非静态属性
      类               √             ×
      对象             √             √
 3、static修饰方法:
  		3.1 随着类的加载而加载,可通过“类.静态方法”使用
  	           静态方法       非静态方法
  	    类         √              ×
 	    对象       √              √
  	    3.2 静态方法中只能调用静态属性和方法,非静态方法既可以调用静态的方法和属性,又可以非静态的方法和属性
4、static注意点
 	    4.1、静态方法内不能使用this关键字、super关键字
 	    4.2、关于静态属性和非静态属性可以从生命周期角度去理解

5、工具类通常使用static 修饰,eg:Math、Arrays、Collections
class Chinese {
    int age;// 年龄
    String name;// 姓名
    static String nation;// 国籍

    public void eat() {
        //非静态方法内可调用静态和非静态属性
        System.out.println("name="+name+",age="+age+",nation="+nation);
        //非静态方法内可调用静态和非静态方法
        show();
        test1();
        System.out.println("我吃中餐!");
    }
    public void test1() {
        System.out.println("我是一个非静态测试方法!");
    }

    public static void show() {
//		eat();	静态方法中不可调用非静态方法
        System.out.println("我是一个中国人!");
    }
    public static void info() {
//		System.out.println("name="+name);	静态方法中不可调用非静态属性
        show();	//静态方法中可调用静态方法
        System.out.println("nation="+nation);
    }
}
public class Static {
    public static void main(String[] args) {
        Chinese c1 = new Chinese();
        c1.age = 40;
        c1.name = "Yao";
        c1.nation = "CHN";

        Chinese c2 = new Chinese();
        c2.age = 30;
        c2.name = "Jike";
        c2.nation = "UK";
        System.out.println(c1.nation);
        c1.show();
        c1.eat();
        System.out.println(Chinese.nation);// 未实例化
        Chinese.show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再做两道题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值