• 静态属性和非静态属性


    java之静态属性和静态方法

     

    前言

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

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

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

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

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

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

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

    5、用法:

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    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、静态方法不能调用非静态方法反之可以

  • 相关阅读:
    HTML 介绍及标签
    MySQL 索引
    子网划分
    网络基础
    python爬虫之12306网站--车站信息查询
    python集合与字典的用法
    python列表与元组的用法
    python条件语句
    python字符串处理以及字符串格式化
    python数据类型分类以及运算类型
  • 原文地址:https://www.cnblogs.com/wangenxian/p/10843281.html
Copyright © 2020-2023  润新知