標籤:getc try catch except obj 運行時 字串 system anim 地址
一、物件導向
物件導向的三大特徵: 1、封裝:將類的屬性私人化 並對外提供公用的 getset方法 2、繼承:用新類繼承已有類 可以直接使用 已有類的公用的方法和屬性 3、多態:同一個執行個體的多種形態 方法的重載、 方法的重寫、父類的引用指向子類的實體(繼承、實現)
關鍵字
this:1、指代當前對象
2、指代當前類
3、指代構造方法 只能放在首行
super:1、指代父類對象
2、指代構造方法 只能放在首行
final:1、被final修飾類 不能被繼承
2、被fianl修飾的變數 成為一個常量
3、被fianl修飾的方法 不能被重寫
static:1、static先出生 非static後出生
2、可以直接通過類名點出
instanceof: 判斷對象是哪個類的執行個體
二、抽象類別
定義抽象類別時使用 abstract 關鍵字
文法格式
abstract 類名{ }
public abstract class Animal {
}
抽象方法
抽象方法沒有具體的實現
文法格式
存取修飾詞 abstract 傳回值類型 方法名
public abstract class Animal {
protected abstract void eat();
}
抽象類別和抽象方法的關係
1、 抽象類別中可以沒有抽象方法
2、有抽象方法的類必然是抽象類別
3、用static或final修飾的方法不能聲明為抽象方法
一個抽象類別中沒有抽象方法,是為了限制其不能被執行個體化而只能被繼承
抽象類別的成員
成員變數
可以是變數,也可以是常量
成員方法
可以是抽象方法,也可以是普通方法
抽象類別的構造方法
抽象類別有構造方法但不能被執行個體化
由子類繼承該抽象類別,執行個體化子類
抽象類別的子類要麼實現父類的抽象方法,要麼該子類繼續抽象
三、介面
介面定義
使用 interface 關鍵字定義介面
文法
public interface Flyable {
}
interface 介面名{ }
介面使用
使用 implements 關鍵字實現介面
文法
public class Parrot implements Flyable{
}
class 類名 implements 介面名{ }
1、介面不能執行個體化,使用介面時需要子類實現介面
2、 介面的實現
一個實現介面的類,必須實現介面內所有的方法,否則該類就必須聲明為抽象類別
成員變數
介面中的成員變數只能是常量,預設的修
飾符 public static final
任何類都可以直接存取到介面中的常量
成員方法
介面中的方法只能是抽象方法,預設修飾
符 public abstract
成員特點
介面沒有構造方法
介面主要目的是擴充功能,沒有具體存在
介面的多實現
一個類可以實現多個介面
class 類名 implements 介面名1,介面名2,…{ }
關係
類和類 繼承關係,只能單繼承,可以多層繼承
類和介面 實現關係,類實現介面,可以多實現
介面和介面 繼承,可以單繼承,也可以多繼承
區別
抽象類別
成員變數 -----變數/常量
成員方法------ 抽象/非抽象方法
構造方法------ 有
關係------------ 繼承
介面
成員變數 ------ 常量
成員方法 -------抽象方法
構造方法 -------沒有
關係 ----------- 實現
四、String類介紹
String是引用資料類型
但是String實際上java給我們提供的是一個類
注意:String 全類被fianl所修飾 所以 String 又叫 字串常量
String 的值 一旦定義 不可以改變
String 的建立方式
1、直接賦值
String str = "coco";
2、通過new關鍵字
String str1 = new String("fdsfs");
String的比較方式:
1、equals() : 比較兩個String的值 是否一樣
2、 == : 比較兩個String 的地址
String的常用方法:
equals(): 判斷兩個String的值 是否相等
equalsIgnoreCase(): 判斷兩個String的值 是否相等 並且忽略大小寫
startsWith():以什麼開始
endsWith():以什麼結束
isEmpty():判斷字串的長度是否為0
length():計算字串的長度
getBytes():
str.substring():字串的截取
split():以某種規則進行拆分
replace():替換
toCharArray():轉成char型數組
charAt(): 根據下標取單一的字元
contains():是否包含
indexOf():返回下標
toLowerCase(): 轉小寫
toUpperCase(): 轉大寫
valueOf():將滿足條件的參數 轉換成 String類型
五、工具類
一:Object類
1、在Java中,Object類是所有其它類的父類,位於java.lang包 ?
2、所有類都直接或間接的繼承Object類,所以省略了extends Object ?
3、Object中提供了多個方法,方便子類重寫或直接調用
Object的toString方法:子類可以重寫toString(),自訂對象的字串輸出格式
getClass方法:可以通過Class類中的getName方法,擷取對象的真實類的全名稱
hashCode方法:同一個對象的hashCode()值肯定相同
equals( )方法:
二、System類
1、System類提供了系統級的很多屬性和控制方法,位於java.lang包
2、System類是final類不能被執行個體化,所有方法和屬性都是靜態
目前時間:
SimpleDateFormat sd = new SimpleDateFormat( "yyyy-MM-dd");
Date date = new Date( );
String time = sd.format( date);
system.out.println(time);
三、Random類
1、Random類用於產生偽隨機數,位於java.util包 ?
2、Random對象的產生
四、Math類
1、Math類提供了執行基本數學運算的方法,位於java.lang包
2、Math類是final類不能被執行個體化,所有方法和屬性都是靜態
五、Arrays類
Arrays類提供了一系列運算元組的方法,位於java.util包中
六、封裝類
Java語言是物件導向語言,但Java中的基礎資料型別 (Elementary Data Type)卻不是物件導向的, 這在實際使用時存在很多的不便
為瞭解決這個不足,在設計類時為每個基礎資料型別 (Elementary Data Type)設計了一個對應的類
八個基礎資料型別 (Elementary Data Type)對應的類統稱為封裝類(Wrapper Class)
六、異常
(Throwable類)
1、 Error 錯誤--無法挽救
2、Exception 異常 --程式中的小bug,可以修複
a)受檢異常--在程式中定義代碼的時候直接有紅線提示。
b)運行時異常--文法格式正確,運行時發生異常;
捕獲 (現場發現 現場處理)
try{
//可能發生異常的代碼
}catch(異常的類型 異常對象){
//列印異常資訊
//其他處理
}
注意:同一句代碼 可能出現多個異常 添加多個對應的catch塊
try……catch執行順序
注意:在定義多個catch塊的時候 需要注意他們的順序 (父類異常 只能定義在子類異常的下面)
多個catch塊不能定義相同的異常
1、如果try中的代碼 沒有出現異常 那麼會直接跳過catch塊
2、如果try中的代碼發生了異常 那麼會根據出現的異常依次向下匹配對應的異常 列印輸出
try……catch……finally
拋出異常
(一般來說不會直接在main方法拋出異常
拋出了異常 一定要處理掉)
公式:方法頭(方法的定義)throws 異常類型
public static void getReuslt() throw ArithmeticException
使用拋出的方式 並不是在處理異常 只是提示調用者 這個地方會出現異常
捕獲和拋出:
1、捕獲是在處理異常
拋出是提示異常
2、捕獲:try catch
拋出:throws
3、捕獲是針對的可能出異常的代碼 直接處理
拋出:是定義在方法頭上
throw和throws的區別:
throw:定義在方法體中
throws:定義在方法頭
java 基礎歸納總結(三)