1. 程式人生 > >java遺珠之類成員

java遺珠之類成員

類成員包括類變數和類方法,相對於例項變數和例項方法來說,區別是加了static關鍵字,所有物件使用同一份記憶體,訪問規則如下

package com.sweetop.studycore.classes;

/**
 * Created with IntelliJ IDEA.
 * User: lastsweetop
 * Date: 2018/9/9
 * Time: 下午10:37
 * To change this template use File | Settings | File Templates.
 */
public class Bicycle {
    // the Bicycle class has
// three fields private int cadence; private int gear; private int speed; private int id; private static int numberOfBicycle = 0; // the Bicycle class has // one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; id = ++numberOfBicycle; } public
static int getNumberOfBicycle() { return numberOfBicycle; } public int getId() { return id; } // the Bicycle class has // four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public
void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } public int getCadence() { return cadence; } public int getGear() { return gear; } public int getSpeed() { return speed; } public Bicycle newBike() { return new Bicycle(1, 1, 1); } }
  1. 例項方法能直接訪問例項變數和例項方法
  2. 例項方法能直接訪問類變數和類方法
  3. 類方法能直接訪問類變數和類方法
  4. 類方法不能直接訪問例項變數和例項方法,必須使用一個物件的引用才可以,同樣類方法也不能使用this關鍵字,因為沒有例項給this引用

雖然例項也可以指向類變數或類方法,但是一般不要這麼用,這樣會在是否是類變數或者類方法上產生混淆,

static有時候會和final一起使用來定義常量。

static final double PI = 3.141592653589793;

如果型別是基本型別或者字串的話,在編譯的時候,編譯器就會把程式碼中的常量直接替換成對應的值,這種常量叫做編譯時常量。因此但常量更改的話並不是只編譯常量所在的類就可以了,所有使用到的地方都要重新編譯,