??? 從今天開始從零學習JAVA,希望可以認識到更多的朋友,可以讓自己的JAVA之路走得更為順利一些!買了幾本書來看也聽了幾接課,覺得JAVA很吸引我,我想我可以走得更遠的.自信是最重要的.
??? OOP(Object Oriented Programming)描述的是對象與對象之間的相互作用.聽老師將面向過程與面向?qū)ο蟮淖畲髤^(qū)別是: 過程化程序設計先確定算法,再確定數(shù)據(jù)結(jié)構(gòu),再確定運算.面向過程編程,習慣于先建立數(shù)據(jù)結(jié)構(gòu)存放數(shù)據(jù)并定義方法(函數(shù))來操作數(shù)據(jù);而面向?qū)ο蟮膭t是構(gòu)建一個模型,將數(shù)據(jù)與方法組織在一起.
??? 我們可以把現(xiàn)實世界的事物抽象為對象.對象一般都有兩個特征:狀態(tài)(Status),行為(Behavior).軟件的對象概念是由顯示世界對象抽象而來.把現(xiàn)實世界的狀態(tài)保存軟件對象的變量中;現(xiàn)實世界對象的行為通過軟件對象的方法(函數(shù))來實現(xiàn).
??? 我們把相似的對象劃分成一個類.在軟件中類就是一個模板,它定義了通用于一個特定種類的所有對象的狀態(tài)(變量)和行為(方法).類是創(chuàng)建對象的模板,對象是類的實例.
????面向?qū)ο缶幊痰碾y點在于思路的轉(zhuǎn)變.我們通常習慣與考慮解決問題的方法,而不是抽象成對象再去解決它.
?類的構(gòu)造方法
* 構(gòu)造方法的名字和類名相同,并且沒有返回值.
*?構(gòu)造方法主要用于定義類的初始化狀態(tài).
*?我們不能直接調(diào)用構(gòu)造方法,必須通過new關鍵字來自動調(diào)用,從而創(chuàng)建類的實例.
* Java的類都要求有構(gòu)造方法,如果沒有定義構(gòu)造方法,Java編譯器會提供一個缺省的構(gòu)造方法,也就是不參數(shù)的構(gòu)造方法.
方法的重載(overload)
?重載構(gòu)成的條件:方法的名稱相同,但參數(shù)類型或參數(shù)個數(shù)不同,才能構(gòu)成方法的重載.
code:
class Point
{
?int x,y;
?/*
? *帶參數(shù)的構(gòu)造方法和不帶參數(shù)的構(gòu)造方法就構(gòu)成了方法(函數(shù))的重載
?*/
?Point(int a,int b)
?{
??x=a;
??y=b;
?}
?Point()
?{
??
?}
?void output()
?{
??System.out.println(x);
??System.out.println(y);
?}
?public static void main(String[] args)
?{
??//調(diào)用不帶參數(shù)的構(gòu)造方法
??//Point p=new Point();
??//pt.x=10;
??//pt.y=20;
??//p.output();
??Point p1=new Point(3,3); //調(diào)用帶參數(shù)的構(gòu)造方法
??p1.output();
?}
}
特殊變量this
* this變量代表對象本身
* 當類中有兩個同名變量,一個屬于類(類的成員變量),一個屬于某個特定的方法(方法中的局部變量),使用this區(qū)分成員變量和局部變量.
* 使用this簡化構(gòu)造函數(shù)的調(diào)用
code:
class Point
{
?int x,y;
?/*
? *帶參數(shù)的構(gòu)造方法和不帶參數(shù)的構(gòu)造方法就構(gòu)成了方法(函數(shù))的重載
?*/
?Point(int a,int b)
?{
??x=a;
??y=b;
?}
?Point()
?{
??this(1,1);
?}
?void output()
?{
??System.out.println(x);
??System.out.println(y);
?}
?/*output()方法定義的形參與成員變量同名了,
?*那么在output()里就看不到成員變量的x,y了,它被隱藏了.
?*/
?void output(int x, int y)
?{
??this.x=x;
??this.y=y;
?}
?public static void main(String[] args)
?{
??Point pt=new Point(3,3);
??pt.output(5,5);
??pt.output();
?}
}
一個類所有的實例(對象)調(diào)用的成員方法在內(nèi)存中只有一份拷貝,盡管在內(nèi)存中可能有多個對象,而數(shù)據(jù)成員在內(nèi)的沒個對象中都存在著一份拷貝.this變量允許相同的實例方法為不同的對象工作.每當調(diào)用一個實例方法時,this變量被設置成引用該實例方法的特定的類的對象.方法的代碼接著會與this所代表的對象的特定數(shù)據(jù)建立關聯(lián).
??? OOP(Object Oriented Programming)描述的是對象與對象之間的相互作用.聽老師將面向過程與面向?qū)ο蟮淖畲髤^(qū)別是: 過程化程序設計先確定算法,再確定數(shù)據(jù)結(jié)構(gòu),再確定運算.面向過程編程,習慣于先建立數(shù)據(jù)結(jié)構(gòu)存放數(shù)據(jù)并定義方法(函數(shù))來操作數(shù)據(jù);而面向?qū)ο蟮膭t是構(gòu)建一個模型,將數(shù)據(jù)與方法組織在一起.
??? 我們可以把現(xiàn)實世界的事物抽象為對象.對象一般都有兩個特征:狀態(tài)(Status),行為(Behavior).軟件的對象概念是由顯示世界對象抽象而來.把現(xiàn)實世界的狀態(tài)保存軟件對象的變量中;現(xiàn)實世界對象的行為通過軟件對象的方法(函數(shù))來實現(xiàn).
??? 我們把相似的對象劃分成一個類.在軟件中類就是一個模板,它定義了通用于一個特定種類的所有對象的狀態(tài)(變量)和行為(方法).類是創(chuàng)建對象的模板,對象是類的實例.
????面向?qū)ο缶幊痰碾y點在于思路的轉(zhuǎn)變.我們通常習慣與考慮解決問題的方法,而不是抽象成對象再去解決它.
?類的構(gòu)造方法
* 構(gòu)造方法的名字和類名相同,并且沒有返回值.
*?構(gòu)造方法主要用于定義類的初始化狀態(tài).
*?我們不能直接調(diào)用構(gòu)造方法,必須通過new關鍵字來自動調(diào)用,從而創(chuàng)建類的實例.
* Java的類都要求有構(gòu)造方法,如果沒有定義構(gòu)造方法,Java編譯器會提供一個缺省的構(gòu)造方法,也就是不參數(shù)的構(gòu)造方法.
方法的重載(overload)
?重載構(gòu)成的條件:方法的名稱相同,但參數(shù)類型或參數(shù)個數(shù)不同,才能構(gòu)成方法的重載.
code:
class Point
{
?int x,y;
?/*
? *帶參數(shù)的構(gòu)造方法和不帶參數(shù)的構(gòu)造方法就構(gòu)成了方法(函數(shù))的重載
?*/
?Point(int a,int b)
?{
??x=a;
??y=b;
?}
?Point()
?{
??
?}
?void output()
?{
??System.out.println(x);
??System.out.println(y);
?}
?public static void main(String[] args)
?{
??//調(diào)用不帶參數(shù)的構(gòu)造方法
??//Point p=new Point();
??//pt.x=10;
??//pt.y=20;
??//p.output();
??Point p1=new Point(3,3); //調(diào)用帶參數(shù)的構(gòu)造方法
??p1.output();
?}
}
特殊變量this
* this變量代表對象本身
* 當類中有兩個同名變量,一個屬于類(類的成員變量),一個屬于某個特定的方法(方法中的局部變量),使用this區(qū)分成員變量和局部變量.
* 使用this簡化構(gòu)造函數(shù)的調(diào)用
code:
class Point
{
?int x,y;
?/*
? *帶參數(shù)的構(gòu)造方法和不帶參數(shù)的構(gòu)造方法就構(gòu)成了方法(函數(shù))的重載
?*/
?Point(int a,int b)
?{
??x=a;
??y=b;
?}
?Point()
?{
??this(1,1);
?}
?void output()
?{
??System.out.println(x);
??System.out.println(y);
?}
?/*output()方法定義的形參與成員變量同名了,
?*那么在output()里就看不到成員變量的x,y了,它被隱藏了.
?*/
?void output(int x, int y)
?{
??this.x=x;
??this.y=y;
?}
?public static void main(String[] args)
?{
??Point pt=new Point(3,3);
??pt.output(5,5);
??pt.output();
?}
}
一個類所有的實例(對象)調(diào)用的成員方法在內(nèi)存中只有一份拷貝,盡管在內(nèi)存中可能有多個對象,而數(shù)據(jù)成員在內(nèi)的沒個對象中都存在著一份拷貝.this變量允許相同的實例方法為不同的對象工作.每當調(diào)用一個實例方法時,this變量被設置成引用該實例方法的特定的類的對象.方法的代碼接著會與this所代表的對象的特定數(shù)據(jù)建立關聯(lián).