java編程思想--第二章(一切皆對象)

一、面向對象和麪向過程:

  面向過程:面向的是功能行爲,

 面向對象: 面向的是對象的所有動作。

 

二、java語言的基本元素:類和對象

類是對一類事物描述,是抽象的、概念上的定義

對象是實際存在的該類事物的每個個體,因而也稱實例(instance)。

三、類的成員

  1. 屬 性:對應類中的成員變量
  2. 行 爲:對應類中的成員方法

在方法體外,類體內聲明的變量稱爲成員變量。 在方法體內部聲明的變量稱爲局部變量。

注意:二者在初始化值方面的異同:          同:都有生命週期                異:局部變量除形參外,需顯式初始化。

  1. 成員變量:

成員變量定義在類中,在整個類中都可以被訪問。 成員變量分爲類成員變量和實例成員變量,實例變量存在於對象所在的堆內存中。 成員變量有默認初始化值。 成員變量的權限修飾符可以根據需要,選擇任意一個

  1. 局部變量:

局部變量只定義在局部範圍內,如:方法內,代碼塊內等。 局部變量存在於棧內存中。 作用的範圍結束,變量空間會自動釋放。 局部變量沒有默認初始化值,每次必須顯式初始化。 局部變量聲明時不指定權限修飾符

  1. 方法

修飾符  返回值類型  方法名 ( 參數列表) {        方法體語句; } 說明: 修飾符:public, private, protected等。     返回值類型:return語句傳遞返回值。沒有返回值:void。 舉例:

四、對象的創建和引用

  1. 使用new +構造器創建一個新的對象;
  2. 使用“對象名.對象成員”的方式訪問對象成員(包括屬性和方法);

1、用引用操作對象。 (string st= “”absc“”) 就是說你操作st 就行了。--------值傳遞和引用傳遞@1

2、對象存儲位置:

  寄存器:訪問速度最快,處理器內部,數量有限,不可控(不知啥意思,後期補)

  棧 :通過棧針移動操作內存大小,棧針上移釋放內存,下移 分配內存,生命週期明確

  堆:編譯器動態分配內存,new的時候分配

  常量存儲:rom中,不變的數據

(上面的在程序中放,下面的是在介質或者媒介中放着)

  非ram存儲:流和持久化對象

  • 類的訪問機制: 在一個類中的訪問機制:類中的方法可以直接訪問類中的成員變量。(例外:static方法訪問非static,編譯不通過。) 在不同類中的訪問機制:先創建要訪問類的對象,再用對象訪問類中定義的成員

3、java基本類型

boolean char byte short int long float double 

               16     8      16    32   64   32      64  

高精度BigInteger和BigDecimal  任意整數和任意定點數 

 

 4、對象作用域,由你創建的花括號位置決定,new的對象不算在內

 

5、類,字段,方法。

訪問權限+class+命名   

 

類的兩種類型元素:數據成員(有時也叫“字段”)以及成員函數(通常叫“方法”)

方法,參數和返回值。

先看看方法的基本組成部分:名稱,參數,返回值,方法體

ReturnType methodName( Argument list){

Method body

}

 

@1 來解釋下值傳遞和引用傳遞:

值傳遞:

方法調用時,實際參數把它的值傳遞給對應的形式參數,函數接收的是原始值的一個copy,此時內存中存在兩個相等的基本類型,即實際參數和形式參數,後面方法中的操作都是對形參這個值的修改,不影響實際參數的值。


引用傳遞:

也稱爲傳地址。方法調用時,實際參數的引用(地址,而不是參數的值)被傳遞給方法中相對應的形式參數,函數接收的是原始值的內存地址;
在方法執行中,形參和實參內容相同,指向同一塊內存地址,方法執行中對引用的操作將會影響到實際對象

@2 基本類型在哪放着:

基本類型的數據,是引用數據類型,則存儲在堆中,若是基本類型,則在棧中


注意:一:在方法中聲明的變量,即該變量是局部變量,每當程序調用方法時,系統都會爲該方法建立一個方法棧,其所在方法中聲明的變量就放在方法棧中,當方法結束系統會釋放方法棧,其對應在該方法中聲明的變量隨着棧的銷燬而結束,這就局部變量只能在方法中有效的原因
      在方法中聲明的變量可以是基本類型的變量,也可以是引用類型的變量。
         (1)當聲明是基本類型的變量的時,其變量名及值(變量名及值是兩個概念)是放在JAVA虛擬機
         (2)當聲明的是引用變量時,所聲明的變量(該變量實際上是在方法中存儲的是內存地址值)是放在JAVA虛擬機的棧中,該變量所指向的對象是放在類存中的。
   二:在類中聲明的變量是成員變量,也叫全局變量,放在堆中的(因爲全局變量不會隨着某個方法執行結束而銷燬)。
       同樣在類中聲明的變量即可是基本類型的變量 也可是引用類型的變量
       (1)當聲明的是基本類型的變量其變量名及其值放在內存中的
       (2)引用類型時,其聲明的變量仍然會存儲一個內存地址值,該內存地址值指向所引用的對象。引用變量名和對應的對象仍然存儲在相應的

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章