zoukankan      html  css  js  c++  java
  • Java-static

    Java-static

    一 static
    static是一个修饰符,仅仅能修饰成员变量和方法
    除了对象调用的方式。还多了一种调用方式
    即能够使用 类名.静态成员 来调用,简称为类变量,

    2,static在数据区:类的方法和静态方法

    3。static特点:
    随着类的载入而载入,随着类的消失而消失
    生命周期最长
    优先于对象存在,静态变量在对象不存在的时候也存在
    被全部对象所共享
    直接被类名调用

    4,使用的原因
    尽管能够通过建立类的对象来使用类的方法。对类进行操作,
    可是假设出现了:
    1,定义了类的对象。却没有使用类的非静态变量
    2,类没有封装静态变量
    这两种情况的话。就能够考虑将类中的方法都定义为static,使得能够
    直接通过类名.静态方法名来调用方法

    将方法都静态后,能够方便与使用。可是该类还是能够被其它的程序建立变量
    为了更加严谨。强制不能建立对象,能够通过将构造函数私有化来完毕

    二 实例变量(非静态变量)和静态变量(类变量)的差别
    1,存放位置
    类变量随着类的载入而存在于数据区中
    非静态变量随着对象的建立而存在于堆内存中

    2,生命周期
    类变量生命周期最长。随着类的消失而消失
    非静态变量生命周期随着对象的消失而消失

    三 什么时候使用静态
    什么时候定义静态变量:
    当对象中出现共享数据时。该数据被静态修饰
    对象中的特有数据定义成非静态存在堆内存

    什么时候定义静态函数:
    当函数内部没有訪问到非静态成员的时候。能够定义为静态函数

    非静态变量定义在对象中,当不须要使用非静态变量的时候,
    就不须要对象去调用。所以能够定义为静态函数,用类名直接调用

    注意事项
    1,静态方法仅仅能訪问静态成员
    非静态方法能够訪问静态和非静态

    2,静态方法不能够定义this,superkeyword
    由于静态优先于对象存在。所以静态方法不能够有this

    3,主函数静态
    长处:
    对对象的共享数据进行单独空间存储,节省空间,没有必要每一个对象都春一份
    能够被类名调用

    缺点:
    生命周期过长
    訪问出现局限性,(静态仅仅能訪问静态)

  • 相关阅读:
    10月15日模拟赛题解
    NOIp初赛题目整理
    【meet in the mid】【qbxt2019csp刷题班day1C】birthday
    【字符串】 manacher算法
    【border树】【P2375】动物园
    【border相关】【P3426】 [POI2005]SZA-Template
    【字符串】 Z-algorithm
    【字符串】KMP
    【神奇性质】【P5523】D [yLOI2019] 珍珠
    【线段树】【P5522】[yLOI2019] 棠梨煎雪
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7358493.html
Copyright © 2011-2022 走看看