標籤:做什麼 使用 family boolean 事物 中括弧 特徵 索引 下標越界
java基礎05:物件導向
一、數組
數組的記憶體管理 : 一塊連續的空間來儲存元素。
Int [ ] arr = new int[ ];
建立一個int類型的數組,arr只是一個變數,只是數組的一個引用地址,局部變數存在一個棧中,java中沒有全域變數,只有成員變數,在堆區中存放
數組中常見錯誤:
1.NullPointerExcepation:null 指標異常
原因:引用的類型變數沒有指向任何的對象,在這種情況下還訪問了它的屬性,一個對象如果使用完了不會馬上釋放,只是將這個對象變為一個垃圾對象,由記憶體回收機制自己來釋放。程式員沒有辦法操作釋放時間
2.ArrayIndexOutOfBoundsExcepation:數組下標越界
尋找數組中是否有這個元素:binarySearch(尋找的數組,要找的數);返回的是一個int類型的數(索引)。
Java中數組中存在多維:二維數組,三維。。。
二維數組定義格式:
資料類型[ ] [ ] 數組名 = new 資料類型 [ ] [ ];
動態初始化:
資料類型[ ] [ ] 數組名 = new 資料類型 [ ] [ ];
注意:前面中括弧數值指的是二維數組元素的個數,後面一個是指二維數組中一維數組的元素個數
靜態初始化:
資料類型[ 行 ] [列 ] 數組名稱 = { { 元素1 ...}, { 元素1 ...}, { 元素1 ...}};
Int[ ] [ ] arr = { { 1, 2, 3}, { 4, 5 }, { 6, 7}}; Int num = arr [2] [1] ; // 7 |
二維數組中的元素一定是一維數組
想要接收二維數組中的元素,先要有一個一維數組來接收
總結:數組的特點
1.數組中只能存同一種資料類型的資料
2.數組會給存入的元素預設分配一個索引值,索引從0開始
3.數組一旦初始化,長度就固定了
4.數組中的元素的記憶體位址是連續的
二、Java也是屬於
物件導向
的編程:
物件導向的三大特徵:封裝、繼承、多態
對象:真實存在的唯一的事物
(物件導向編程:oop)思想:力圖使電腦語言中的事物描述和自然中的事物儘可能保持一致
物件導向的核心:找到合適的對象做合適的事情
Java中如何來找合適的對象:
1.sun已經指定好的類,通過訂製好的類建立對象,需要認識這些類
2.自訂類,通過自訂類來建立對象
類中包含:
屬性和方法
類的定義格式:
Class 類名{
屬性(成員變數):描述事物的公用特點
格式:資料類型 變數名
String name;
方法:描述事物的行為(做什麼事情)
修飾符 傳回值類型 方法名 (參數列表){ 具體的實現}
Public :公開的方法,任何人都可以訪問
Private :私人的,只能自己使用
例: Public void run(){ System.out.println( “ 老師講課啦,趕快回教室!”); } } |
訪問屬性:
對象.屬性名稱
設定屬性:
對象.屬性名稱 = 設定的值;
對象的引用變數是存在棧區的,但是對象本身是存在堆區的,成員也是隨著對象存在堆區
成員變數和局部變數的區別:
A)定義的位置:
1.成員變數定義在類中,方法外
2.局部變數是定義在方法中
B)範圍上:
1.成員變數在當前類中都可以使用
2.局部變數只能在方法中使用
C)生命週期上:
1.成員變數:隨著對象的建立而建立,隨著對象的消失而消失
2.局部變數:隨著方法的調用而建立,出了方法的範圍就銷毀
D)初始值來區分:
1.成員變數,如果沒有賦值,它是有預設值的
int 預設是0
Float 預設是0.0f
Double 預設是0.0
Boolean 預設是false
Char 預設‘ ’
String (參考型別)null;
2.局部變數:
局部變數預設是沒有初始值的,必須先初始化(聲明變數並賦值)才能使用
成員變數在當前類中是可以直接使用的,如果變數需要在其他類中使用,就需要建立對象(目前是這個樣子)
三、類和對象的關係
類是對同一類事物(對象)的抽象,對象是實際存在的該類的各個實體
java基礎05