周總結:1.面向對象:把不同的功能封裝在不同的對象中,用到什麼功能就找相應的對象 首先要定義描述對象的類,類是用來創建對象的 new Person() >JVM使用的是Person.class來創建對象的,位元組碼中定義了說什麼,對象中就有什麼 2.成員變數:作用域是整個類,有預設值,在堆中開闢記憶體3 ...
周總結:
1.面向對象:把不同的功能封裝在不同的對象中,用到什麼功能就找相應的對象
首先要定義描述對象的類,類是用來創建對象的
new Person()----->JVM使用的是Person.class來創建對象的,位元組碼中定義了說什麼,對象中就有什麼
2.成員變數:作用域是整個類,有預設值,在堆中開闢記憶體
3.局部變數:作用域是所在大括弧,沒有預設值,在棧中開闢記憶體
4.JVM載入Person().class到方法區,(用誰就載入誰,載入到記憶體),main函數入棧,執行main函數中的代碼
在棧中開闢記憶體,給ren這個局部變數,在堆中開闢記憶體(記憶體的大小依據成員變數)
5.構造函數:專門用來創建對象的,一個類中如果沒有構造函數,那麼系統的會自動加一個構造函數:類名(){}
自己加入了構造函數,那麼系統就不會自動加入構造函數了
函數名和類名相同,不能有返回值類型
可以利用構造函數實現屬性的賦值
6.this:是一個引用,總是指向當前正在被使用的對象
是構造函數之間的調用,必須卸載第一行的位置
7.super
8.static:修飾符,可以修飾成員變數,成員方法,成員內部類
修飾成員變數:成員變數的值可以被所屬類的所有對象共用
修飾成員方法:該方法沒有用到所屬類的任何非靜態成員
被static修飾的,隨著類的載入就進入方法區的靜態區
靜態之呢個使用靜態,非靜態什麼都可以使用
9.應用:工具類 javadoc -d 目錄 XX.java
10靜態代碼塊:static{}
隨著類的載入而執行,只執行一次,優先於main的執行
構造代碼塊:
{}
對象一創建就執行,優先於構造函數的執行
11.單例設計模式:保證一個類只有一個對象
1 class YHW{ 2 private YHW(){}//不能new對象 3 private static final YHW y=new YHW(); 4 public static YHW getInstance() 5 { 6 return y; 7 } 8 }
12.繼承:多個對象共性的東西提取到一個類中。extends 單繼承,代碼的復用,父子關係
成員變數:同名:用的是子類自己的 如果使用父類的:super.num
成員方法:重寫:子類出現了和父類一樣的方法,只要創建的是子類的對象,使用的就是子類的
構造函數:創建子類對象時,總是先執行父類的構造函數,在執行子類的構造函數
系統自動在子類構造函數的第一行加入了super()------>調用父類的空參構造函數
13.為了利用父類中給屬性賦值的代碼,super(name,age,address);
註意:每個類都要定義空參的構造方法,防止子類出錯
14.final:可以修飾類,方法,成員變數,局部變數
15.抽象類:對多個對象提取父類的過程中出現的
16.介面:
1 interface inner 2 { 3 public static final int num=9;//常量,沒有變數 4 public abstract void show(); 5 } 6 class Demo implements inner 7 { 8 }
介面就是特殊的類
17.多態:Fu f=new Zi();
成員變數:能訪問的是父類的,結果看父類
成員方法:能訪問的是父類的,結果看子類
靜態:看父類
18內部類:成員內部類、靜態內部類、局部內部類、匿名內部類