Object is everything.

一個簡單的類的UML表示.png
面向?qū)ο髱状蟾拍?(封裝,繼承,多態(tài)) (類,對象,屬性,方法)
封裝
繼承
多態(tài)
類
class className{
[class body]
}
/**
* 實(shí)體類 Book
*
* @author Panda
*/
public class Book {
//定義屬性
private Integer bookId;
private String bookName;
private String bookAuthor;
private Integer bookPrice;
//定義方法,方法是類的行為,當(dāng)前這個方法的行為就是將類中的屬性打印到屏幕
@Override
public String toString() {
return "Book{" +
"bookId=" + bookId +
", bookName='" + bookName + '\'' +
", bookAuthor='" + bookAuthor + '\'' +
", bookPrice=" + bookPrice +
'}';
}
}
- 類是創(chuàng)建同類型對象的藍(lán)圖或者模板
- 類是使程序員可以創(chuàng)建問題抽象的一個oop工具
- 因此,類決定對象
- 類是Java程序最基本的構(gòu)建塊,Java中的所有程序必須屬于類
- 使用new關(guān)鍵字來創(chuàng)建一個類的實(shí)例
對象
- 用oop語言開發(fā)應(yīng)用程序時(shí),可以創(chuàng)建一個和真實(shí)情況類似的模型來解決問題,這個模型就是對象
屬性
- 屬性就是變量,可以是基本類型也可以是引用類型
- 屬性用來決定相同模板生產(chǎn)的對象的不同之處
- 屬性是對象的特征
方法
returnType methodName(listOfArguments){
[method body]
}
- 方法定義了類的對象可以做的動作(方法是對象的行為)
其余部分
構(gòu)造器
constructorName(listOfArguements){
[constructorBody]
}
- 每個類必須有一個構(gòu)造器,否則無法從這個類創(chuàng)建對象
- 如果沒有自定義構(gòu)造器,編譯器會默認(rèn)添加一個無參的構(gòu)造器(自定義了構(gòu)造器就把默認(rèn)的給干掉了)
- 構(gòu)造器可以沒有參數(shù)
- 構(gòu)造器參數(shù)可以用來初始化變量中的屬性
默認(rèn)值
- 類的屬性不賦值會有默認(rèn)值,同樣的還有數(shù)組
- 默認(rèn)值:整型為0,浮點(diǎn)為0.0,布爾為false,String 為null
實(shí)例變量和局部變量
- 如果局部變量和實(shí)例變量重名,方法使用變量會依據(jù)就近原則
this關(guān)鍵字
- 可以使用關(guān)鍵字 this 從任何方法或者構(gòu)造器引用當(dāng)前的對象
- 例如:如果有一個實(shí)例變量和局部變量重名,可以使用this關(guān)鍵字引用前者
- this 關(guān)鍵字常見于 接受初始化屬性的值的構(gòu)造器中.
/**
* JavaBean
* @author Panda
*/
public class Box {
int length;
int width;
int height;
/**
* 構(gòu)造方法
* @param length 參數(shù)
* @param width 參數(shù)
* @param height 參數(shù)
*/
public Box(int length, int width, int height) {
//使用this.length 表示引用的是類的實(shí)例變量
//參數(shù)length和表達(dá)式右側(cè)的length是同一變量
this.length = length;
this.width = width;
this.height = height;
}
}