Java(基礎)的類與變數,java基礎變數

來源:互聯網
上載者:User

Java(基礎)的類與變數,java基礎變數
  Java的類與成員變數

  在我們學習程式設計語言中,需要靈活自用,那麼怎麼來靈活的將所有的函數屬性來調用來實現完整的工程呢?

  所以我們需要認識到類和變數的定義

  1、類是什嗎?

    類是抽象的概念,而對象就是類的具體存在體現。列如:我們的類就像生活中的小汽車,那麼我們就可以將小汽車看作為一個類,我們稱之為小汽車類,每一台小汽車都有輪胎數、顏色等(可以定義為屬性,即成員變數),每一台車都可以跑(即車的行為,對應類總的成員函數),我們把小汽車執行個體一下,即產生一個對象,比如寶馬(BMW)。

  列:public class littlecar     #定義的小汽車類

  2、成員變數

    先看一個事物:

        屬性:外觀特徵;列如人的身高、體重、(顏值。。。。。 :)

        行為:能夠做什麼;列如:能跑、能跳、(能飛。。。。。我會飛! :)

    而在Java語言中,最基本單位的就是類,而類就是用來體現事物的。

    而class就是來描述事物:

        屬性:對應類的成員變數

        行為:對應成員的函數

    定義類其實就是在定義類的成員(成員變數和成員函數)

  來看一下一個執行個體:

  列1:

   public class LittleCar {

          private String color; // 定義汽車顏色,全域變數
          private int numLuntai; // 定義汽車輪胎數,全域變數
 
          public LittleCar(String color, int numLuntai){
                    super();
                    this.color =color;
                    this.numLuntai =numLuntai;
          }
          public void run() {
                   System.out.println(this.numLuntai+ "個輪子的" +this.color + "轎車在馬路上行駛著");
          }
  }

 

  public class ClassT {
          public static void main(String[] args){
                    LittleCar BMW= new LittleCar("黑色", 4);      // 建立一個轎車對象,名字為BMW
                    BMW.run();
        }
}

  運行結果:

  4個輪子的黑色轎車在馬路上行駛著

  其中color和numLuntai就稱為Car 類的成員變數,這個屬效能夠用來描述一個類的屬性,否則,它就應該定義為局部變數。

  3、局部變數

  例如一個for迴圈中的i即是局部變數。

                  for(int i = 0; i < args.length; i++) {
                         ......
                  }

  列2:

  publicclass LittleCar {

        private String color; // 定義汽車顏色,全域變數
        private int numLuntai; // 定義汽車輪胎數,全域變數
        public LittleCar(String color, int numLuntai){
                  super();
                  this.color =color;
                  this.numLuntai =numLuntai;
        }
  public void run() {
                  String carName=”平治牌”;    //這個就是局部變數
                 System.out.println(this.numLuntai+ "個輪子的" +this.color + carName+"轎車在馬路上行駛 著");
        }
}
  publicclass ClassTest {
          public static void main(String[] args){
                    LittleCar BMW= newCar("黑色", 4);      // 建立一個轎車對象,名字為BMW
                    BMW.run();
          }
  }

 

  結果:

  4個輪子的黑色平治牌轎車在馬路上行駛著

  4、成員變數和局部變數的區別

  

   成員變數:

 

          ①成員變數定義在類中,在整個類中都可以被訪問。

 

          ②成員變數隨著對象的建立而建立,隨著對象的消失而消失,存在於對象所在的堆記憶體中。

 

          ③成員變數有預設初始化值。

 

      局部變數:

 

          ①局部變數只定義在局部範圍內,如:函數內,語句內等,只在所屬的地區有效。

 

          ②局部變數存在於棧記憶體中,作用的範圍結束,變數空間會自動釋放。

 

          ③局部變數沒有預設初始化值 

 

      在使用變數時需要遵循的原則為:就近原則

  首先在局部範圍找,有就使用;接著在成員位置找。

   5、靜態變數

  由static修飾的變數稱為靜態變數,其實質上就是一個全域變數。如果某個內容是被所有對象所共用,那麼該內容就應該用靜態修飾;沒有被靜態修飾的內容,其實是屬於對象的特殊描述。

  列3:

  class Person{
      //成員變數,執行個體變數
      String name;
      //靜態變數,類變數
      //所有對象共用的屬性用static修飾
      static String country = "CN";
      public void show(){
            System. out.println(country +":" + name);
            //等效語句:System.out.println(Person.country+ ":"+ this.name);
      }
}

  class StaticDemo{
        public static void main(String[]args){
              Personp = new Person();
              System. out.println(p.country);
              //可以用類名直接調用
              System. out.println(Person.country);
        }
  }

結果:

CN

CN 

6、成員變數和靜態變數的區別

 

      1、兩個變數的生命週期不同

            成員變數隨著對象的建立而存在,隨著對象被回收而釋放。

            靜態變數隨著類的載入而存在,隨著類的消失而消失。

      2、調用方式不同

            成員變數只能被對象調用。

            靜態變數可以被對象調用,還可以被類名調用。

      3、別名不同

            成員變數也稱為執行個體變數。

            靜態變數也稱為類變數。

      4、資料存放區位置不同

            成員變數儲存在堆記憶體的對象中,所以也叫對象的特有資料。

            靜態變數資料存放區在方法區(共用資料區)的靜態區,所以也叫對象的共用資料。

 

7、成員變數、局部變數、靜態變數列表對比:

       成員變數、局部變數、靜態變數的區別 

 

成員變數

局部變數

靜態變數

定義位置

 在類中,方法外

方法中,或者方法的形式參數

在類中,方法外

初始化值

有預設初始化值

無,先定義,賦值後才能使用

有預設初始化值

調用方式

對象調用

---

對象調用,類名調用

儲存位置

堆中

棧中

方法區

生命週期

與對象共存亡

與方法共存亡

與類共存亡

別名

執行個體變數

---

類變數

結束語:(我也是再前輩那裡借鑒的!所以有些說的不是很好,請大家多多包涵!謝謝你們的預覽。還有:)這個符號很好玩的哈()上邊那裡是開玩笑的啦!加油吧程式猿!!!!)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.