本章內(nèi)容
方法的定義
什么是方法
方法是完成某個(gè)功能的一組語(yǔ)句,通常將常用的功能寫(xiě)成一個(gè)方法
示例 Func_sample1.java
方法的定義
[訪問(wèn)控制符] [修飾符] 返回值類(lèi)型 方法名(參數(shù)類(lèi)型 形式參數(shù),參數(shù)類(lèi)型 形式參數(shù),…)
{
方法體
}
示例 Func_sample2.java
修飾符:public 、static 被稱(chēng)為修飾符(后續(xù)會(huì)詳細(xì)講解它們)巫湘;
返回值類(lèi)型:用來(lái)說(shuō)明該方法運(yùn)算結(jié)果的類(lèi)型娄猫。如果返回其他類(lèi)型贱除,編譯就可能出錯(cuò);
方法名:它作為調(diào)用時(shí)引用方法的標(biāo)識(shí)月幌;
參數(shù)列表:方法的參數(shù)個(gè)數(shù)可以是0個(gè)到多個(gè)碍讯,每個(gè)參數(shù)前面要聲明參數(shù)的數(shù)據(jù)類(lèi)型;每個(gè)參數(shù)要用逗號(hào)分開(kāi)。也可以一個(gè)參數(shù)都沒(méi)有。
方法體:它是一個(gè)語(yǔ)句塊逗栽,執(zhí)行特定的功能操作鳄虱。對(duì)于有返回值類(lèi)型的方法拙已,方法體當(dāng)中最后一個(gè)語(yǔ)句是return關(guān)鍵字倍踪,它的作用是把方法的執(zhí)行(運(yùn)算)結(jié)果返回到方法外部扩借。
return 表達(dá)式:這里潮罪,進(jìn)一步分析嫉到,return后面的表達(dá)式就是方法的返回值何恶。需要注意表達(dá)式的類(lèi)型今艺,必須與方法頭中聲明的“返回類(lèi)型”相匹配。
方法的定義
形式參數(shù):在方法被調(diào)用時(shí)用于接受外部傳入的變量
參數(shù)類(lèi)型:就是該形式參數(shù)的數(shù)據(jù)類(lèi)型
返回值:方法在執(zhí)行完畢后返回給調(diào)用它的程序的數(shù)據(jù)
返回值類(lèi)型:方法要返回的結(jié)果的數(shù)據(jù)類(lèi)型
public static int square( int x )
{
int y=x*x;
return y; //返回值
}
方法的分類(lèi)
根據(jù)參數(shù)個(gè)數(shù):
無(wú)參方法
有參方法
根據(jù)返回值類(lèi)型:
有返回值的方法:
基本數(shù)據(jù)類(lèi)型
引用數(shù)據(jù)類(lèi)型
無(wú)返回值的方法
void
方法的分類(lèi)
對(duì)于無(wú)返回值類(lèi)型的方法碗短,它不向本方法外部返回任何值。定義這樣的方法時(shí),聲明方法返回類(lèi)型的位置不能省略不寫(xiě)铐望,而應(yīng)該用關(guān)鍵字void來(lái)代替,即 “空”的意思。
public class FunctionDemo {
public int absolut(int x){
if(x>=0){
return x;
}
else{
return -x;
}
}
}
有返回值有參方法
該方法體有兩個(gè)return 語(yǔ)句蒜危,但是只有一個(gè)return語(yǔ)句能被執(zhí)行。
方法的返回類(lèi)型可以是java中的任何數(shù)據(jù)類(lèi)型:基本數(shù)據(jù)類(lèi)型(4種整型新思、2種浮點(diǎn)型假哎、字符型、布爾型共8種) 和引用數(shù)據(jù)類(lèi)型(數(shù)組仅讽、類(lèi)掺出、接口)徽千。
public class FunctionAdd
{
public static int add()
{
x=100;
y=200;
int z=x+y;
return z;
}
}
有返回值無(wú)參方法
public class FunctionRect
{
void drawRect()
{
int width=10
int height=5;
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
System.out.print("#");
}
System.out.println();
}
}
}
無(wú)返回值無(wú)參方法
方法的調(diào)用
方法只有在被調(diào)用后才生效
方法的調(diào)用方法:
無(wú)參方法的調(diào)用
有參方法的調(diào)用
無(wú)參方法的調(diào)用
方法名( )
定義方法就是編寫(xiě)一段有特定功能的代碼,在程序中使用同樣功能的地方汤锨,沒(méi)有必要重復(fù)編寫(xiě)同樣的代碼双抽,只要調(diào)用定義好的方法就可以∠欣瘢可以實(shí)現(xiàn)代碼的重用牍汹。簡(jiǎn)化了程序的編寫(xiě)和維護(hù)工作。
所謂調(diào)用方法柬泽,其實(shí)就是給方法的入口傳入一些值(參數(shù))慎菲,然后在出口得到方法執(zhí)行的結(jié)果(返回值)。給方法傳入?yún)?shù)的過(guò)程锨并,稱(chēng)為“傳參”露该。
理解“實(shí)參”、“形參”第煮。
實(shí)際上解幼,方法傳參的過(guò)程就是把實(shí)參賦值給對(duì)應(yīng)的形參的過(guò)程抑党,并且實(shí)參和形參的數(shù)量、類(lèi)型必須匹配撵摆。
有參方法的調(diào)用
public class FunctionDemo
{
public int add( int x , int y )
{
int z=x+y;
return z ;
}
public static void main(String[] args)
{
FunctionDemo fd = new FuctionDemo()
int x = fd.add( 10 , 20 );
System.out.println(x);
int y = fd.add(100,200);
System.out.println(y);
}
}
其中 int x,int y 是形參
10底靠,20是實(shí)參
基本數(shù)據(jù)類(lèi)型和引用類(lèi)型比較
public class FuncTest {
public static void getX(int x){
x = 3*x;
}
public static void getY(int[] y){
y[0] = 3*y[0];
}
public static void main(String[] args) {
int x = 10;
System.out.println("x調(diào)用方法前:" +x);
getX(x);
System.out.println("x調(diào)用方法后:" +x);
int[] y = {10};
System.out.println("y調(diào)用方法前:" +y[0]);
getY(y);
System.out.println("y調(diào)用方法后:" +y[0]);
}
輸出結(jié)果
x調(diào)用方法前:10
x調(diào)用方法后:10
y調(diào)用方法前:10
y調(diào)用方法后:30
方法的調(diào)用
使用方法時(shí)的注意問(wèn)題
形參必須注明數(shù)據(jù)類(lèi)型
實(shí)參直接寫(xiě),不需要類(lèi)型聲明
return只能返回一次
遇到return語(yǔ)句特铝,方法結(jié)束執(zhí)行苛骨,后續(xù)語(yǔ)句不執(zhí)行
方法的返回值,必須與方法聲明中的返回值類(lèi)型匹配
方法定義苟呐,不能寫(xiě)在main()中
方法是不能嵌套的
方法的重載
方法的重載(overload)
方法的重載就是在同一個(gè)類(lèi)中允許同時(shí)存在一個(gè)以上同名的方法
方法重載的規(guī)則
方法名稱(chēng)相同
方法的參數(shù)必須不同
參數(shù)個(gè)數(shù)不同 或
參數(shù)類(lèi)型不同
方法的返回值類(lèi)型可以相同痒芝,也可以不同
方法的重載(overload)
示例 Employee.java
class Employee{
public Employee( )
{
}
public Employee(String _name,int age){
name = _name;
age = _age;
salary = _salary;
}
}
示例 FuncSum.java
? 練習(xí)
下列選項(xiàng)中,哪些可以與void setAge(int year,int month,int day)方法在同一個(gè)類(lèi)中定義____?
A. public void setAge() { }
B. void setAge(int age) {}
C. void setAge(int y,int m,int d){}
D. int setAge(Date d) {}
E. int setAge(int year,int month,int day){}
F. void setage(int year,int month,int dat){}
本章重點(diǎn)總結(jié)
方法定義
方法調(diào)用
有參方法的調(diào)用
無(wú)參方法的調(diào)用
方法的重載
課后作業(yè)
- 編寫(xiě)一個(gè)方法牵素,求整數(shù)n的階乘严衬,例如5的階乘是12345。 [必做題]
- 編寫(xiě)一個(gè)方法笆呆,判斷該年份是平年還是閏年请琳。[必做題]
- 編寫(xiě)一個(gè)方法,輸出大于200的最小的質(zhì)數(shù)赠幕。[選做題]
- 寫(xiě)一個(gè)方法俄精,功能:定義一個(gè)一維的int 數(shù)組,長(zhǎng)度任意,然后將它們按從小到大的順序輸出(使用冒泡排序)(知識(shí)點(diǎn):方法的定義和訪問(wèn))榕堰。[選做題]
分割線
博主為咯學(xué)編程:父母不同意學(xué)編程竖慧,現(xiàn)已斷絕關(guān)系;戀人不同意學(xué)編程,現(xiàn)已分手;親戚不同意學(xué)編程逆屡,現(xiàn)已斷絕來(lái)往;老板不同意學(xué)編程,現(xiàn)已失業(yè)三十年圾旨。。魏蔗。砍的。。莺治。如果此博文有幫到你歡迎打賞廓鞠,金額不限。谣旁。床佳。