zoukankan      html  css  js  c++  java
  • 静态属性和非静态属性

    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技巧: 语义化你的代码
    css sprite
    Redis主从复制原理
    idea修改快捷键
    Ubuntu14.20 安装docker,创建centos6.7容器,并访问centos容器
    [转]SQL 中 with as 的用法
    ftp与sftp及sftp和scp的区别
    Linux top 命令
    Linux free 命令
    ubuntu 源方式 安装jdk
  • 原文地址:https://www.cnblogs.com/wangenxian/p/10843281.html
Copyright © 2011-2022 走看看