類是用於描述同一型別的物件的乙個抽象。類中定義了這一類物件所具有的靜態和動態屬性
靜態屬性:成員變數
動態屬性:方法
1 類可以看成是一類物件的模板,物件可以看成該類的乙個具體例項
2 首先必須定義類才能有物件
說到類,就不得不說構造其構造方法了
在new乙個物件是,呼叫的就是類中的構造方法
列如public class person
}class son extends father
}class tt
}class test
} 列印出的son
說明程式執行過程中,是根據其實際型別來確定呼叫的哪個類的方法
該機制使程式擴充套件達到了極致,若新增類,只需繼承父類,重寫父類中的相關方法,而不用特別大的改動,(相對面向過程語言)
抽象類
用關鍵字abstract修飾的方法和類叫做抽象方法和抽象類
抽象類不一定有抽象方法,但含有抽象方法的類必須宣告為抽象類
1抽象類只含有方法頭,即只需要宣告。 public abstract void print();
2抽象類不能例項化物件
注意點:
1abstract不能修飾構造方法
2static,private,final不能與abstract組合使用
static在類例項化前會先被例項化,而abstract不能用於例項化物件,矛盾
private為私有,子類繼承父類是無法重寫私有方法,而abstract需要子類繼承,通過重寫才能使用,兩者在一起就是無法繼承的抽象方法,即使存在也無實際意義(個人見解)
final和abstract不
能修飾同乙個類,
abstract
不能例項化,只能在派生的子類的獲得應用,而
final
修飾的類不能擁有子類,兩者同時修飾的類無法使用。
final關鍵字
final可用於修飾類,方法,變數
1 final修飾類時,無法派生子類
2 final修飾的變數一旦賦值則無法改變其值,即使是相同的值
3 final修飾的方法無法重寫
可以認為final修飾的一經賦值,就是唯讀的
在用final做實驗時,也發現了幾個原來未曾注意的問題
final變數作為成員變數時,一定要顯示初始化,要麼為其賦初值,要麼在構造方法中定義final變數
還可以在初始化塊中初始化
final
變數作為區域性變數時.可以只定義不初始化
class t
class t
class t
}//正確
我的理解:在類中可以定義final變數,並在構造方法中對其賦值
因為每個物件對應乙個不同的final變數
但是,一經賦值後,無法改變
靜態初始化
class t {
final static int i;
static {
i = 0;
java之物件導向2
作用 對物件的屬性 成員變數 進行初始化的 寫法 1.構造方法名與類名完全相同相同 大小寫必須一樣 2.沒有返回值型別 連void都不寫 3.沒有返回值 沒有 return public class demo01 class person 需求 寫乙個有引數的構造方法 public person s...
Java基礎之物件導向
注重點重點不同,面向過程注重的是過程,我是事務的執行者 物件導向注重物件,我是事務的指揮者。1.將複雜問題簡單化 2.從事物的執行者轉化為事物的指揮者 3.跟貼近人的思維,懶人思想 類 一類抽象事物的描述 模板 物件 用類建立出來的就是物件 具體的事物 區別 成員變數和區域性變數 區別 1.書寫位置...
Java基礎之物件導向(五)
一 介面 inte ce 1 概念 指用inte ce關鍵字修飾的一種型別 介面型別。他用於描述一系列功能性的方法,並讓子類實現。2 內容 1 介面不能有屬性,只能有被static final修飾的屬性及靜態常量。2 介面只能有抽象方法,不能有具體的方法。3 介面沒有構造器,所以不能建立物件,只能通...