資料型別
分為兩大類:基本資料型別、參考資料型別
基本資料型別:
| 資料型別 | 特點 |
|---|---|
| byte | 8位 -128~127 |
| short | 16位 -32768~32767 |
| int | 32位 -2147483648~2147483647 |
| long | 64位 -263~263-1 |
| float | 32位 具體見IEEE 754標準 |
| double | 64位 具體見IEEE 754標準 |
| boolean | 1位 true/false |
| char | 16位 0~65535 |
參考資料型別:
類、介面、陣列……
資料型別轉換:
(1)自動型別轉換
byte→short(char)→int→long→float→double
(2)強制型別轉換
上述鏈接的逆向.
int a=123;
byte b=(byte) a;
常量和變數
常量定義:
private static final double pi= 3.14;
| 轉義字符 | 含義 |
|---|---|
| \ddd | 1~3位八進制所表示的字符 |
| \uxxxx | 1~4位十六進制數所表示的字符 |
| \’ | 單引號字符 |
| \" | 雙引號字符 |
| \\ | 反斜線字符 |
| \r | 回車 |
| \n | 換行 |
| \b | 退格 |
| \t | 制表符 |
變數:
分為成員變數和區域變數
成員變數:包括實體變數和類變數,用static修飾的是類變數,不用static修飾的是實體變數,所有類的成員變數可以通過this來參考.
(1)定義在方法外
(2)整個類中都可以使用
(3)有默認初始值,int默認為0,float默認為0.0f,double默認為0.0
(4)位于堆記憶體
(5)隨著物件的創建而創建,隨著物件的消失而消失(實體變數)隨著類的裝載而創建,隨著類的卸載而消失(類變數)
區域變數:1.方法引數(形參)2.方法區域變數(方法內定義)3.代碼塊區域變數(代碼塊中定義)
(1)定義在方法內部
(2)只適用于方法中
(3)沒有默認初始值,需要手動賦值才能使用
(4)位于堆疊記憶體
(5)在呼叫對應方法時,區域變數因為執行創建陳述句而存在,超出自己的作用域則立即消失
運算子和運算式
算術運算子:+,-,*,/,%,++,- -
關系運算子:==,!=,>,<,>=,<=
邏輯運算子:&&,||,!
賦值運算子:=,+=,-=,*=,/=,%=
位運算子:<<=,>>=,&=,^=,|=
流程控制陳述句
switch陳述句:
(1)變數型別可以是byte,short,int,char
(2)每個case后面要跟上比較的值和冒號
(3)當變數和case中的值相同時,case后的陳述句開始執行,直到break
(4)如果沒有break,程式會繼續執行下一條case,直到出現break
(5)可以包含default分支,它必須是最后一個分支,不需要break
面向物件的三大特性
1.封裝
將物件的屬性和行為進行包裝,不需要讓外界知道具體實作的細節,只能通過定義的介面進行訪問,
優點:減少耦合;可以自由修改內部結構;可以精確控制成員變數;隱藏資訊,實作細節,
2.繼承
通過繼承,可以更有效率地對原有類的功能進行擴展,增強代碼復用性,提高開發效率,為程式修改、補充提供便利,
Java中繼承要使用extends關鍵字,只允許單繼承,子類只能繼承父類中可以訪問的屬性和方法,
(1)能繼承父類public和protected的成員變數和方法,不能繼承父類private的成員變數和方法
(2)對于父類的包訪問權限成員變數和方法(default),如果子類和父類再同一個包下,則可以繼承,否則不能
(3)如果子類的成員變數(方法)覆寫了父類的,則需要呼叫super關鍵字來參考
3.多型
多型是同一個行為具有多個不同表現形式或形態的能力,
可以把子類看成父類的物件,因此父類可以是很多種型別,
特性:物件實體確定則不可改變;只能呼叫編譯時的型別所定義的方法;運行時會根據運行時的型別去呼叫相應型別中定義的方法,
類和物件
類是一個模板,描述一類物件的行為和狀態,
物件是類的一個實體,有狀態和行為,
1.類
類的宣告:
public class sd {
}
類的方法定義:
public int f(int k){
return k*k;
}
2.物件
物件的創建:
sd n=new sd();
構造方法:
(1)名稱與類的名稱完全相同
(2)不回傳任何型別,不需要用void修飾
(3)作用是創建一個物件并初始化成員變數
(4)創建物件時,系統會自動呼叫構造方法
(5)一般用public修飾
(6)如果不定義構造方法,系統將提供一個默認的不帶引數的方法體為空的構造方法
(7)構造方法可以多載,但是不能被繼承
(8)不能被static,final,synchronized,abstract,native修飾
抽象類和抽象方法
1.使用原則
(1)必須是public或者protected
(2)不能直接實體化
(3)必須有子類
(4)子類如果不是抽象類,則必須重寫全部抽象方法
(5)不能用final修飾,因為final不能有子類
(6)抽象類中不一定含有抽象方法,有抽象方法的類一定是抽象類
(7)抽象方法不能含有方法體
(8)構造方法,類方法不能是抽象方法
2.抽象方法的宣告
abstract int f(int k);
抽象類可以繼承物體類,前提是物體類必須要有明確的建構式,
抽象類可以實作介面,
介面
1.介面的宣告
public interface inter1 extends inter2,inter3{
}
2.介面的實作
public class sd implements inter1{
}
3.介面和抽象類的異同
相同點:
(1)都可以被繼承
(2)都不能被直接實體化
(3)都可以包含抽象方法
(4)派生類必須實作未實作的方法
不同點:
(1)介面支持多繼承,抽象類只能單繼承
(2)一個類只能繼承一個抽象類,卻可以實作多個介面
(3)介面中的成員變數只能是public、static、final型別的;抽象類中的成員變數可以是各種型別的
(4)介面只能定義抽象方法;抽象類都能定義
(5)介面中不能含有靜態代碼塊和靜態方法;抽象類中可以有
其他一些問題
Java中的訪問修飾符:
(1)public:可以跨類、跨包訪問
(2)private:只能被該類本身訪問
(3)protected:只能被本類及其子類訪問
(4)default:只能在同一個包中進行訪問
方法多載和方法覆寫:
多載:定義在同一個類中,方法名相同,引數個數、順序、型別不同
目的:解決引數個數、型別、順序不一致,但方法名一致的重命名問題
特點:
(1)發生在同一個類中
(2)方法名稱相同
(3)引數個數、順序、型別不同
(4)和回傳值型別、訪問修飾符、例外宣告沒有關系
(5)是多型的一種表現形式
覆寫:改寫父類繼承到子類的方法
目的:父類的功能實作無法滿足需求,需要重寫
特點:
(1)發生在具有父子關系的兩個類中
(2)方法名稱相同
(3)引數串列完全相同
(4)回傳值型別必須相同
(5)訪問修飾符不能嚴于父類
(6)覆寫是多型的必要條件
(7)拋出的例外不能比父類的例外大
(8)private的方法不能被覆寫
(9)構造方法不能被覆寫
值傳遞和參考傳遞:
值傳遞:將引數遞給函式時,函式只接受一份副本,
參考傳遞:函式接收原始值的記憶體地址,修改該引數的值會使原始值進行改變,
Java中只有值傳遞引數,
由于Java中沒有指標,所以沒有參考傳遞引數,
Java用參考傳遞物件不意味著用參考傳遞引數,引數可以是物件參考,
類的反射:
(1)得到一個物件所屬的類
(2)獲取一個類所有的變數和方法
(3)在運行時創建物件
(4)在運行時呼叫物件的方法
獲取Class類的三種方法:
Class class1 = Class.forName("User");
Class class2=User.class;
User user=new User();
Class class3=user.getClass();
獲取物件實體:
//構造方法沒有引數
User user1=(User)class1.newInstance();
//構造方法有引數
Constructor constructor=class2.getConstructor(String.class,Integer.class);
User user2=(User)constructor.newInstance("a",1);
Java創建物件方式:
(1)new陳述句
(2)反射機制的Class類的newInstance()方法
(3)通過clone()方法
(4)反序列化
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/255195.html
標籤:java
下一篇:Java 編程基礎語法篇
