//Circle類
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鏡湖,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
public class Circle{
double radius=1;
final double PI=3.14;
//無參數(shù)構(gòu)造函數(shù)
public Circle(){
this.radius=1;
}
//獲取面積
public double getArea(){
double area;
if(radius0){
area=PI* Math.pow(radius,2);
}
return area;
}
//獲取周長
public double getPerimeter(){
double perimeter;
if(radius0){
perimeter=2*PI* radius;
}
return perimeter;
}
}
(1)功能和作用的不同
構(gòu)造器是為了創(chuàng)建一個(gè)類的實(shí)例。這個(gè)過程也可以在創(chuàng)建一個(gè)對象的時(shí)候用到:Platypus p1 = new Platypus();
相反,方法的作用是為了執(zhí)行java代碼。
(2)修飾符,返回值和命名的不同
構(gòu)造器和方法在下面三個(gè)方便的區(qū)別:修飾符,返回值,命名。和方法一樣,構(gòu)造器可以有任何訪問的修飾: public, protected, private或者沒有修飾(通常被package 和 friendly調(diào)用). 不同于方法的是,構(gòu)造器不能有以下非訪問性質(zhì)的修飾: abstract, final, native, static, 或者 synchronized。
返回類型也是非常重要的。方法能返回任何類型的值或者無返回值(void),構(gòu)造器沒有返回值,也不需要void。
(3)兩者的命名。
構(gòu)造器使用和類相同的名字,而方法則不同。按照習(xí)慣,方法通常用小寫字母開始,而構(gòu)造器通常用大寫字母開始。構(gòu)造器通常是一個(gè)名詞,因?yàn)樗皖惷嗤?;而方法通常更接近?dòng)詞,因?yàn)樗f明一個(gè)操作。
(4)"this"的用法。
構(gòu)造器和方法使用關(guān)鍵字this有很大的區(qū)別。方法引用this指向正在執(zhí)行方法的類的實(shí)例。靜態(tài)方法不能使用this關(guān)鍵字,因?yàn)殪o態(tài)方法不屬于類的實(shí)例,所以this也就沒有什么東西去指向。構(gòu)造器的this指向同一個(gè)類中,不同參數(shù)列表的另外一個(gè)構(gòu)造器、例如:在我們上課做過的BirthDate類中:
public class BirthDate{
private int year;
private int month;
private int day;
BirthDate(int ye){
year = ye;
}
BirthDate(){
this(1987);
}
public static void main(String args[]) {
BirthDate b1 = new BirthDate(2009);
BirthDate b2 = new BirthDate();
}
}
在上面的代碼中,有2個(gè)不同參數(shù)列表的構(gòu)造器。第一個(gè)構(gòu)造器,給類的成員year賦值,第二個(gè)構(gòu)造器,調(diào)用第一個(gè)構(gòu)造器,給成員變量year一個(gè)初始值 1987.在構(gòu)造器中,如果要使用關(guān)鍵字this,那么,必須放在第一行,如果不這樣,將導(dǎo)致一個(gè)編譯錯(cuò)誤。
(5)編譯器自動(dòng)加入代碼
編譯器自動(dòng)加入代碼到構(gòu)造器,當(dāng)我們寫一個(gè)沒有構(gòu)造器的類,編譯的時(shí)候,編譯器會(huì)自動(dòng)加上一個(gè)不帶參數(shù)的構(gòu)造器.相信這一點(diǎn)大家是沒有問題的啦。
(6)繼承
構(gòu)造器是不能被繼承的。子類可以繼承超類的任何方法。看看下面的代碼:
public class Example {
public void HelloWorld {
system.out.println("HelloWorld");
}
Example() {}
}
public class SubClass extends Example {
}
類 SubClass 自動(dòng)繼承了父類中的HelloWorld方法,但是,父類中的構(gòu)造器 Example()卻不能被繼承
(1)帶形式參數(shù)的構(gòu)造器:
構(gòu)造器和其它方法一樣,也可以有形式參數(shù)。構(gòu)造器有了形式參數(shù),我們就可以在初始化對象的時(shí)候提供實(shí)際參數(shù)。java為了讓名字相同而形式參數(shù)不同的構(gòu)造器同時(shí)存在,必須使用“方法重載”。
①區(qū)分重載方法
在用戶調(diào)用的時(shí)候區(qū)分它們的唯一方法是它們獨(dú)一無二的參數(shù)列表(java中形式參數(shù)出現(xiàn)順序的不同會(huì)被認(rèn)為是兩個(gè)方法),除此之外,別無它法。
②涉及基本類型的重載
實(shí)際參數(shù)的類型與形式參數(shù)的類型不符時(shí)會(huì)出現(xiàn)兩種情況。第一種,實(shí)參類型“小于”
形參時(shí),較小的類型會(huì)自動(dòng)提升為較大類型,char類型會(huì)被提升為int類型;第二,實(shí)參“大于”形參,必須使用強(qiáng)制類型轉(zhuǎn)換-(形參類型)實(shí)參類型。
③以返回值區(qū)分重載方法是行不通的
int f();
void f();
java無法判斷調(diào)用的是哪一個(gè)f()方法,因此,根據(jù)返回值來區(qū)分方法是行不通的。
(2)無參數(shù)構(gòu)造器
又稱缺省構(gòu)造器。它的作用是創(chuàng)建一個(gè)“基本對象”。如果類中沒用寫構(gòu)造器,則編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)缺省構(gòu)造器。但是,如果已經(jīng)定義一個(gè)構(gòu)造器(無論有無參數(shù)),編譯器就不會(huì)幫你自動(dòng)創(chuàng)建缺省構(gòu)造器了。
JAVA的構(gòu)造函數(shù)是:SetLocal EnableDelayedExpansion
set classpath=.
for %%c in (lib\*.jar) do set classpath=!classpath!;%%c
set classpath=%classpath%;./classes;
java com.ham.server.Server。
1、無參構(gòu)造方法
無參構(gòu)造方法又分為隱式無參構(gòu)造方法和顯示無參構(gòu)造方法。
隱式無參構(gòu)造方法
在定義類的時(shí)候,如果沒有給類定義一個(gè)構(gòu)造方法,Java編譯器在編譯時(shí)會(huì)默認(rèn)提供一個(gè)隱式的構(gòu)造方法,它沒有任何參數(shù),并且有一個(gè)空的方法體。例如,Person類中隱含一個(gè)無參構(gòu)造方法,在main方法中可以通過new關(guān)鍵字來調(diào)用此默認(rèn)的構(gòu)造方法,代碼如下:
2、顯式無參構(gòu)造方法
隱式無參構(gòu)造方法是由系統(tǒng)提供的,無法修改其內(nèi)容。但有時(shí)需要在調(diào)用這個(gè)構(gòu)造方法時(shí)初始化類成員屬性或執(zhí)行一些操作,要實(shí)現(xiàn)這個(gè)需求,就需要為它定義一個(gè)顯式無參構(gòu)造方法,修改上述代碼如下:
3、顯示有參構(gòu)造方法
構(gòu)造并初始化對象是構(gòu)造方法的作用,所以有時(shí)需要給這個(gè)方法傳入一些參數(shù),定義一個(gè)顯示的有參構(gòu)造方法。例如:
代碼如下
public class Rectangle {
private double length = 1;
private double width = 1;
public Rectangle(){}
public Rectangle(double length,double width){
this.length = length;
this.width = width;
}
public double getArea(){
return length*width;
}
public double getPerimeter(){
return 2*(length + width);
}
}
如果有幫助到你,請點(diǎn)擊采納