1. 程式人生 > 其它 >面向物件之建立物件記憶體分析及簡單小結

面向物件之建立物件記憶體分析及簡單小結

java面向物件

1.建立物件記憶體分析

  • 記憶體中有2個區域,一個是堆一個是棧,棧中儲存的是一些引用和main方法,堆中有個特殊的區叫方法區,存放具體建立物件的一些屬性值和方法。

    • 方法區中載入了類,存放了main方法,常量池中放了一些要賦予的常量
    • 方法區中有一塊地方是靜態方法區,static:和類一起載入
  • 棧中儲存的物件名是一個指向堆的記憶體地址,通過物件名.屬性值和物件.方法名來對屬性進行修改或者對方法進行呼叫

  • 靜態方法和變數隨著類一起載入。可以隨時呼叫


  • 建立物件記憶體圖

1.1 記憶體圖程式碼演示:

package oopdemo01;

import oopdemo01.demo03.Pet;

public class Application {
    public static void main(String[] args) {
        Pet dog = new Pet();
        dog.name="旺財";
        dog.age=5;
        dog.shot();


        Pet cat = new Pet();
        cat.name="咪咪";
        cat.age=3;

        cat.shot();


    }
}

package oopdemo01.demo03;

public class Pet {
    public static String name;
    public static int age;

    public void shot(){

        System.out.println(this.name+"它叫了");
    }

}

執行結果

旺財它叫了
咪咪它叫了


2.簡單小結類與物件

  • 1.類與物件:

    • 類是一個模板:抽象的。
    • 物件是一個具體的例項
  • 2.方法:

    • 方法定義、呼叫
  • 3.物件的引用

    • 引用型別、基本型別(8)

    • 物件是通過引用來操作的:棧---->堆

  • 4.屬性:欄位 Field (成員變數)

    • 預設初始化:
    • 數字: 0 0.0
    • char: u0000
    • boolean:false
    • 引用:null
    • 修飾符 屬性型別 屬性名=屬性值!
  • 5.象的建立和使用

    • 必須使用new關鍵字建立物件, 構造器 Person zaodian=new Person();
    • 物件的屬性 zaodian.name
    • 物件的方法 zaodian.sleep()
  • 6.類:

    • 靜態的屬性 屬性
    • 動態的行為 方法

————————————————————————————————————————————————————————————————————



4.更多參考

狂神說Java