函數(shù)就是定義在類中具有特定功能的一段獨立的小程序。[也稱為方法]
函數(shù)的格式:
修飾符 返回值類型 函數(shù)名 (參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,......)
{
執(zhí)行語句;
return 返回值;
}
public class Example20 {//調(diào)用函數(shù)舉例
public static void main(String[] args) {
//調(diào)用myprintf方法
myprintf(3,5);
myprintf(2,4);
myprintf(6,10);
}
//接受兩個參數(shù)
public static void myprintf(int height,int width){
//for循環(huán)打印*
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
System.out.print("#");
}
System.out.print("\n");
}
System.out.println();
}
}
返回值類型:函數(shù)運行后的結(jié)果數(shù)據(jù)類型
參數(shù)類型 :形式參數(shù)的數(shù)據(jù)類型
形式參數(shù) :是一個變量呢撞,用于存儲調(diào)用函數(shù)時傳遞給函數(shù)的實際參數(shù)
實際參數(shù) :傳遞給形參的具體數(shù)值
return :結(jié)束函數(shù)
返回值 :函數(shù)的返回結(jié)果狮鸭,該結(jié)果會返回給調(diào)用者
特殊情況:功能沒有具體的返回值類型時,返回值類型用關鍵字 void 表示牌柄,若函數(shù)的返回值void畸悬,函數(shù)中return可省略不寫。
public class FunctionDemo {//函數(shù)的簡單應用
public static void main(String[] args) {
/*int sum=add(2,4);//定義兩數(shù)
System.out.println("sum="+sum);*/
myprintf();//調(diào)用myprintf()方法
}
//public static 修飾符
/* public static int add(int a,int b){
return a+b;//返回值
}*/
//功能沒有具體返回值時珊佣,返回值類型用關鍵字void表示
public static void myprintf(){
System.out.println("hello world!");
return;//函數(shù)的返回值void蹋宦,函數(shù)中return可省略
}
}
函數(shù)的特點:
1.函數(shù)將功能進行封裝
2.被調(diào)用才會被執(zhí)行
3.提高代碼的復用性
4.對于函數(shù)沒有具體返回值類型時,返回類型可以用void表示咒锻,函數(shù)中return可不寫
注意細節(jié):函數(shù)只能調(diào)用函數(shù)冷冗,不可在函數(shù)內(nèi)部定義函數(shù)
//標準的錯誤格式
public class FunctionDemo2 {
public static void main(String[] args) {
System.out.println("hello world!");
}
public static void myprintf(){
myprintf();
}
}
定義函數(shù)時,函數(shù)的結(jié)果應該返回給調(diào)用者
簡單例題:
public class FunctionDemo1 {//打印正方形
public static void main(String[] args) {
//調(diào)用
getXH(3,3);
getXH(5,6);
}
//定義方法
public static void getXH(int row,int col){
for (int x = 1; x <=row; x++) {
for (int j = 1; j <=col; j++) {
System.out.print("#");
}
System.out.print("\n");
}
System.out.println();
}
}
public class FunctionDemo2 {//打印乘法表
public static void main(String[] args) {
// printfCFB();
printf(4);
}
//指定輸出(int num)
public static void printf(int num){
for (int i = 1; i <=num; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
//標準輸出
/*public static void printfCFB(){
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}*/
}
方法的重載:Java允許一個程序中定義多個名稱相同的方法惑艇,但是參數(shù)的類型或者個數(shù)必須不同蒿辙,這就是重載
代碼領悟:
public class Example23{//方法的重載
public static void main(String[] args) {
/*
* //調(diào)用,方法名字各不同滨巴,getnum01思灌、getnum02、getnum03恭取、
int num1=getnum01(1,3);
int num2=getnum02(1,3,5);
double num3=getnum03(1.2,3.8);
//打印
System.out.println("num1="+num1);
System.out.println("num2="+num2);
System.out.println("num3="+num3);
}
//三個不同的方法
public static int getnum01(int x,int y){
return x+y;
}
public static int getnum02(int x,int y,int z){
return x+y+z;
}
public static double getnum03(double x,double y){
return x+y;
}
*/
/*重載代碼
求和方法調(diào)用 同個方法名getnum*/
int num1=getnum(1,3);
int num2=getnum(1,3,5);
double num3=getnum(1.2,3.8);
//打印
System.out.println("num1="+num1);
System.out.println("num2="+num2);
System.out.println("num3="+num3);
}
//三個不同的方法
public static int getnum(int x,int y){
return x+y;
}
public static int getnum(int x,int y,int z){
return x+y+z;
}
public static double getnum(double x,double y){
return x+y;
}
}
//Java允許一個程序中定義多個名稱相同的方法煮落,但是參數(shù)的類型或者個數(shù)必須不同刁标,這就是重載