zoukankan      html  css  js  c++  java
  • java之静态属性和静态方法

    前言

    静态属性和方法必须用static修饰符

    static 可以修饰属性、方法、代码块、内部类

    静态属性和非静态属性的区别:

    1、在内存中存放位置不同   所有带static修饰符的属性或者方法都存放在内存中的方法区  而非静态属性存放在内存中的堆区

    2、出现时机不同   静态属性或方法在没创建对象之前就已经存在  而非静态属性在创建对象之后才存在

    3、静态属性是在某个类中的所有对象是共享的

    4、生命周期不同  静态属性在类消失之后才销毁  而非晶态属性在对象销毁之后才销毁

    5、用法:

      a.静态属性可以直接通过类名直接访问  非静态属性不能通过类直接访问只能通过对象访问

      b.二者的相同点是都可以在创建完对象后使用下面看个静态属性是在某个类中的所有对象是共享的例子 最后结果都是20

    class Beauty
    {
    	int age1;
    	static int age2;
    }
    
    class TestPerson
    {
    	
    	public static void main(String[] args)
    	{	
    
    		Beauty b1 = new Beauty();
    		b1.age2 = 10;
    
    		Beauty b2 = new Beauty();
    		b2.age2 = 20;
    		
    		System.out.println(b1.age2);
    		System.out.println(b2.age2);
    
    		System.out.print("
    ");
    	}
    }
    

     静态属性在内存中的分布图:

    使用static的注意事项:

    1、带有静态修饰符的方法只能访问静态属性

    2、非静态方法即能访问静态属性也可以访问非静态属性

    3、非静态方法不能定义静态变量

    4、静态方法中不能使用this关键字

    5、静态方法不能调用非静态方法反之可以

  • 相关阅读:
    linux中公钥和私钥的区别以及关系
    PAM
    57 容器(十一)——Collections容器工具类
    56 容器(十)——Iterator迭代器遍历容器
    55 重载需要注意的地方
    54 容器(九)——HashSet
    53 容器(八)——TreeMap 红黑树
    52 权限修饰符
    51 方法重写需要注意的地方
    50 多态,为什么总是要用父类引用指向子类对象?
  • 原文地址:https://www.cnblogs.com/nianzhilian/p/8687277.html
Copyright © 2011-2022 走看看