標籤:靜態變數 靜態函數 java
Java中的靜態變數和靜態函數(方法)和C++中也類似。有幾點需要重新複習一下:
1)如果想讓一個類的所有對象共用資料,可以使用靜態變數;如果想共用函數,可以使用靜態函數。
2)如果某個對象修改了靜態變數的值,那麼該類的所有對象都會受到影響。
3)靜態變數和靜態函數在類建立對象之前就可以調用,這點和普通的變數函數很不一樣。
4)常量可以聲明為final static,所有對象都共用。
5)訪問一個類的靜態變數和靜態函數,一般都使用“類名.靜態變數”或者"類名.靜態函數"的方式,不適用對象名調用,因為這樣可以直接看出是調用的靜態變數和函數。
一個簡單的基礎代碼協助理解Java中的靜態變數和靜態函數的使用。
/*** * * @author Administrator * */class Circle2 {/** * CLASS CIRCLE2 * * Data: radius, numberOfObjects * * Functions: getNumberOfObjects2 */double radius; static int numberOfObjects; Circle2() {radius = 1.0 ; numberOfObjects++; }Circle2(double newRadius) {radius = newRadius; numberOfObjects++; }static int getNumberOfObjects2() {numberOfObjects++; return numberOfObjects; }}public class TestingStaticVariable {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("The numebr of Objects is " + Circle2.numberOfObjects + " and " + Circle2.getNumberOfObjects2()); Circle c1 = new Circle(); System.out.println("The numebr of Objects is " + Circle2.numberOfObjects + " and " + Circle2.getNumberOfObjects2());Circle c2= new Circle(10.0); System.out.println("The numebr of Objects is " + Circle2.numberOfObjects + " and " + Circle2.getNumberOfObjects2());}}
結果:
The numebr of Objects is 0 and 1The numebr of Objects is 1 and 2The numebr of Objects is 2 and 3
Java中的靜態變數和靜態函數