1. 程式人生 > >Java連載33-物件的建立和使用、記憶體分析

Java連載33-物件的建立和使用、記憶體分析

一、建立一個學生類

每個學生都有學號資訊,但是每一個學生的學號都是不同的,所以要訪問這個學號必須先建立物件,通過物件去訪問學號資訊,學號資訊不能直接通過“類”去訪問,所以這種成員變數又被稱為“例項變數”

注意:

(1)物件又被稱為例項,例項變數又被稱為物件變數(物件級別的變數)

(2)不建立物件,這個Number的記憶體空間是不存在的,只有建立了物件,這個number變數記憶體才會被建立

(3)通過一個類可以例項化多個物件

(4)例項化物件的語法

 

new 類名();

 

 

(5)new是java語言中的一個運算子

(6)new運算子的作用:建立物件,在JVM堆記憶體中開闢新的二記憶體空間

(7)方法區記憶體:在類載入的時候,class位元組碼程式碼片段被載入在該記憶體空間之中

(8)棧記憶體(區域性變數):方法程式碼片段被執行的時候,會給該方法分配記憶體空間,在棧記憶體中,進行壓棧

(9)堆記憶體:new的物件在堆記憶體中被儲存;

(10)D32_student是一個引用資料型別,s是一個變數名,new D32_student()是一個學生物件,s是一個區域性變數(在棧記憶體中儲存)

(11)什麼是物件?new運算子在堆記憶體中開闢的記憶體空間稱為物件

(12)什麼是引用?引用是一個變數,只不過這個變數中儲存了另一個java物件的記憶體地址

(13)java語言中,不能直接操作堆記憶體,java中沒有指標,不想C語言

(14)java語言中,只能通過“引用”去訪問堆記憶體中的物件內部的例項變數

(15)訪問例項變數的語法格式:

 

讀取資料:引用.變數名

修改資料:引用.變數名 = 值

 
      

舉例:

 

public class D33_student2_test {

  public static void main(String[] args) {

    D32_student s = new D32_student();

    System.out.println("jfahsf ");

    s.no = 154;

    s.address = "jafalj ";

    System.out.println(s.no);

    D32_student s2 = new D32_student();

    System.out.println(s2.no);

    //以下程式報錯,因為no這個例項變數不能直接採用“類名”的方式訪問

    //因為no是例項變數,物件級別的變數,變數儲存在java物件的內部,必須先有物件,因為物件才能訪問no這個例項變數

    //不能直接通過“類名”來訪問

    //System.out.println(D32_student().no);

  }

}

class D32_student {

  //public static main(Sting[] args) {

  int no;//學號 

  String name;//姓名

  int age;//年齡

  boolean sex;//性別

  String address;//地址

  //方法是描述物件的動作資訊,當前例子就不描述方法了,只描述資訊屬性

  //} 

​

}

 

二、原始碼:

D33_student2_test.java

地址:

https://github.com/ruigege66/Java/blob/master/D33_student2_test.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.部落格園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公眾號:傅立葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大資料學習資料

 

&n