@小煥哥
面向?qū)ο蟮幕咎匦?/h2>
- 萬物皆為對(duì)象宵凌。
將對(duì)象視為奇特的變量,它可以儲(chǔ)存數(shù)據(jù)甸陌,除此之外你還可以要求它在自身上執(zhí)行操作。理論上將盐股,你可以抽取待求解問題的任何概念化為構(gòu)件钱豁,將其表示為程序中的對(duì)象。
- 程序是對(duì)象的集合疯汁,它們通過發(fā)送信息來告知彼此要做的牲尺。
想要請(qǐng)求一個(gè)對(duì)象就必須對(duì)該對(duì)象發(fā)送一條信息。更具體的說幌蚊“迹可以把消息想象為對(duì)某個(gè)特定對(duì)象的調(diào)用請(qǐng)求。
- 每個(gè)對(duì)象都有自己的由其他對(duì)象所構(gòu)成的儲(chǔ)存溢豆。
可以通過創(chuàng)建包含現(xiàn)有對(duì)象的包的方式來創(chuàng)建新類型的對(duì)象蜒简。
- 每個(gè)對(duì)象都擁有其類型。
每個(gè)對(duì)象都是某個(gè)“類”的一個(gè)實(shí)例漩仙,每個(gè)類最重要的區(qū)別于其它類的特性就是“可以發(fā)送什么樣的數(shù)據(jù)給它”搓茬。
- 某一特定類型的所有對(duì)象都可以接收同樣的消息。
方法的重載
在日常生活中队他,相同的詞可以表達(dá)不同的含義————它們被“重載”了卷仑。
- 方法的重載發(fā)生在一個(gè)類中,方法名稱相同麸折,參數(shù)列表不同锡凝。
class Bird {//編譯器會(huì)根據(jù)傳入的參數(shù)自動(dòng)選擇合適的方法
Bird(int i){}
Bird(double b){}
}
//注意:當(dāng)重載涉及到數(shù)據(jù)類型大小轉(zhuǎn)換時(shí),會(huì)自動(dòng)由小到大提升磕谅,而由大到小必須事先強(qiáng)轉(zhuǎn)
- 當(dāng)沒有構(gòu)造器時(shí)編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)的構(gòu)造器私爷,但當(dāng)類中已經(jīng)定義了一個(gè)構(gòu)造器雾棺,則編譯器不會(huì)自動(dòng)創(chuàng)建默認(rèn)構(gòu)造器。
class Bird2{
Bird2(int i){}
Bird2(double b){}
}
public class Tree{
public static void main(String[] args){
Bird2 p=new Bird2();//報(bào)錯(cuò),構(gòu)造函數(shù)未定義
Bird2 p1=new Bird2();
Bird2 p2=new Bird2();
}
}
構(gòu)造方法
- 構(gòu)造方法的方法名必須與類名一致衬浑。
- 構(gòu)造方法沒有返回類型捌浩,也不能定義為void,在方法名前面不聲明方法類型工秩。
- 構(gòu)造方法的作用是完成對(duì)象的初始化工作尸饺,他能夠把定義對(duì)象時(shí)的參數(shù)傳遞給對(duì)象的域。
- 構(gòu)造方法不能由編程人員調(diào)用助币,而要系統(tǒng)調(diào)用浪听。
- 構(gòu)造方法可以重載,以參數(shù)的個(gè)數(shù)眉菱,類型迹栓,或排序順序區(qū)分。
public class Car{
String color;
String brand;
public Car(){//構(gòu)造
brand="奧迪";
color="黑色";
}
}
構(gòu)造函數(shù)的重載參見上個(gè)知識(shí)點(diǎn)
this的用法
- this關(guān)鍵字只能在方法內(nèi)部使用俭缓,表示對(duì)“調(diào)用方法的那個(gè)對(duì)象”的引用克伊。this 的使用方法與其他對(duì)象引用一樣,但要注意在方法內(nèi)部調(diào)用同一個(gè)類的另一個(gè)方法就不必使用this
public class Apricot{
void pick(){}
void pit(){
pick();//這里不用使用this
}
}
- 只有當(dāng)需要明確指出對(duì)當(dāng)前對(duì)象的引用時(shí)华坦,才需要使用this關(guān)鍵字
- 區(qū)分類中參數(shù)名稱相同時(shí)使用的變量
public class Book {
private String title;
private String author;
private double price;
public Book(String title,String author,double price) {
this.title=title;
this.author=author;
this.price=price;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPrice() {
return price;
}
}
將對(duì)象視為奇特的變量,它可以儲(chǔ)存數(shù)據(jù)甸陌,除此之外你還可以要求它在自身上執(zhí)行操作。理論上將盐股,你可以抽取待求解問題的任何概念化為構(gòu)件钱豁,將其表示為程序中的對(duì)象。
想要請(qǐng)求一個(gè)對(duì)象就必須對(duì)該對(duì)象發(fā)送一條信息。更具體的說幌蚊“迹可以把消息想象為對(duì)某個(gè)特定對(duì)象的調(diào)用請(qǐng)求。
可以通過創(chuàng)建包含現(xiàn)有對(duì)象的包的方式來創(chuàng)建新類型的對(duì)象蜒简。
每個(gè)對(duì)象都是某個(gè)“類”的一個(gè)實(shí)例漩仙,每個(gè)類最重要的區(qū)別于其它類的特性就是“可以發(fā)送什么樣的數(shù)據(jù)給它”搓茬。
在日常生活中队他,相同的詞可以表達(dá)不同的含義————它們被“重載”了卷仑。
class Bird {//編譯器會(huì)根據(jù)傳入的參數(shù)自動(dòng)選擇合適的方法
Bird(int i){}
Bird(double b){}
}
//注意:當(dāng)重載涉及到數(shù)據(jù)類型大小轉(zhuǎn)換時(shí),會(huì)自動(dòng)由小到大提升磕谅,而由大到小必須事先強(qiáng)轉(zhuǎn)
class Bird2{
Bird2(int i){}
Bird2(double b){}
}
public class Tree{
public static void main(String[] args){
Bird2 p=new Bird2();//報(bào)錯(cuò),構(gòu)造函數(shù)未定義
Bird2 p1=new Bird2();
Bird2 p2=new Bird2();
}
}
public class Car{
String color;
String brand;
public Car(){//構(gòu)造
brand="奧迪";
color="黑色";
}
}
構(gòu)造函數(shù)的重載參見上個(gè)知識(shí)點(diǎn)
public class Apricot{
void pick(){}
void pit(){
pick();//這里不用使用this
}
}
public class Book {
private String title;
private String author;
private double price;
public Book(String title,String author,double price) {
this.title=title;
this.author=author;
this.price=price;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPrice() {
return price;
}
}
未完待續(xù).............