1. 程式人生 > >第45節:Java當中的變數,面向物件

第45節:Java當中的變數,面向物件

標題圖

Java當中的變數

01

Java當中的例項變數和類變數

什麼是例項變數和類變數呢?

例項變數為沒有用static修飾符修飾的變數,而類變數為用static修飾符修飾的變數。

public class Hello{
 // 私有的靜態變數 name
 private static name = "dashu";
 // 私有變數 age
 private int age = 17;
 // 無參構造方法
 public Hello(){
  this.age = 18;
 }
 public static void main(String[] args){
  // 例項化物件 在堆記憶體中
  new Hello();
 }
}

程式執行過程:Hello.java變成Hello.class,通過類載入器,載入到Java虛擬機器中的方法區中,在方法區中,進行載入,驗證,準備,解析,初始化。

驗證,class檔案的版本是否能相容當前的Java虛擬機器版本,然後class檔案要滿足虛擬機器的規範。

準備,需要準備什麼呢?就是要進行類成員的初始化為初始值,其中為final修飾的類變數除外,final變數就直接初始化為變數值,而類成員不一樣。

解析,什麼是解析呢?就是把符號引用解析為直接引用,就是我們變數xxx,這種代表變為直接引用,什麼是直接引用呢?就是記憶體地址,如我們常見的xxx0203r0e,這種。

初始化(將類變數的值設定為初始值),把關於static

修飾的變數或者是static靜態程式碼塊按照順序組成構造器進行初始化變數。static修飾的方法無法訪問非static的例項哦~

初始值為要進行類成員的初始化為初始值為準備階段,初始值為jvm中預設的值。

變數為成員變數和區域性變數

成員變數在類中定義,有例項變數和類變數,例項變數是沒有static修飾的(屬於例項),而類變數是有static的(屬於類本身)。

區域性變數有在方法裡的區域性變數,作用域在該方法內有效;程式碼塊中的區域性變數,就只是在程式碼塊中有效;還有形參,參可別不記得了,也是變數,在整個方法內有效。

例項變數,是在建立例項時,例項變數就存在,被銷燬就不存在,類變數是,有類,類變數就存在,類變數在jvm

中只加載一次。

在系統中會為成員變數進行預設的初始化,初始化兩種,一種為基本型別,一種為引用型別。

基本型別: 0 / 0.0 / \u0000 / false
引用型別: null

區域性變數是在方法棧中。區域性變數是由程式設計師賦值,系統不會預設給區域性變數進行初始化的。

成員變數,是系統有給予預設的初始化值,在類方法外,在堆記憶體中,是隨著物件的建立而存在,隨著物件的消失而消失的。

區域性變數,是沒有初始化的值,在定義的時候必須要賦予初始值的,在方法中,在堆記憶體中。

面向物件

02

OOA, OOD, OOP

OOA為面向物件分析
OOD為面向物件設計
OOP為面向物件程式設計

面向物件是物件之間的互動
面向過程是注重資料的流向

Java中的三大特性為封裝,繼承,多型

面向物件,首先要進行面向物件分析,分析有多少個物件,然後進行面向物件設計,設計出物件含有的函式和屬性等。

往後餘生,唯獨有你
簡書作者:達叔小生
90後帥氣小夥,良好的開發習慣;獨立思考的能力;主動並且善於溝通
簡書部落格: https://www.jianshu.com/u/c785ece603d1

結語

  • 下面我將繼續對 其他知識 深入講解 ,有興趣可以繼續關注
  • 小禮物走一走 or 點贊