zoukankan      html  css  js  c++  java
  • static关键字

    static关键字

    • 在类中,用static声明的成员变量为静态成员变量,它作为该类里的公用变量,在第一次使用时被初始化,对于该类的所有变量来说,static成员变量只有一份。

    • 用static声明的方法称为静态方法(静态方法不再是针对于某个对象调用,所以不能访问非静态成员)。

    • 注(大白话):在一个类里,每new一个对象,就有一份属于自己的成员变量(非静态成员变量),对于静态成员变量来说,只有 一份,但是大家共享。

      比如:复制代码

       1 package cn.galc.test;
       2 
       3 public class Cat {
       4 
       5     /**
       6      * 这里面的sid不再是静态成员变量了,因为没有static修饰符,
       7      * 此时它就是类里面一个普通的非静态成员变量,和id,name一样,
       8      * 成为每一个new出来的对象都具有的属性。
       9      */
      10     private  int sid = 0;
      11 
      12     private String name;
      13 
      14     int id;
      15 
      16     Cat(String name) {
      17         this.name = name;
      18         id = sid++;
      19     }
      20 
      21     public void info() {
      22         System.out.println("My Name is " + name + ",NO." + id);
      23     }
      24 
      25     public static void main(String[] args) {
      26         //Cat.sid = 100;这里不能再使用“类.静态成员变量”的格式来访问sid了,因为sid现在变成了非静态的成员变量了。所以必须要把这句话注释掉,否则无法编译通过。
      27         Cat mimi = new Cat("mimi");
      28         Cat pipi = new Cat("pipi");
      29         mimi.info();
      30         pipi.info();
      31     }
      32 }
    • 这里new了两只猫出来,每只猫都有name,id两个属性,即非静态成员变量id和name是每个对象都单独有一份的,但对于静态成员变量来说,只有一份,不管new了多少个对象,哪怕不new对象,静态成员变量也只有一份。

      静态成员变量是属于整个类的,它不属于专门的某个对象。任何一个对象都可以访问这个静态的值,访问的时候访问的都是同一块内存。即便是没有对象也可以访问这个静态的值,通过“类名.静态成员变量名”来访问这个静态的值。

    • 在一个静态的方法里,不能直接访问一个非静态的成员变量,必须在静态的方法里new一个对象才能访问。

    • 静态的变量可以通过对象名去访问,也可以通过类名去访问,大家访问的都是同一块内存。

    • 非静态成员专属于某一个对象,想访问非静态成员必须new一个对象出来才能访问。

    • 访问静态成员变量:类.静态成员变量
  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/bzbz/p/11495388.html
Copyright © 2011-2022 走看看