(05)Java学习笔记——函数(方法)

来源:互联网 发布:淘宝店铺关注排名 编辑:程序博客网 时间:2024/06/07 01:31

什么是函数(方法)

定义在类中的具有特定功能的一段独立的小程序

方法是完成某个功能的代码。


方法的格式:

修饰符 返回值类型   函数名(参数类型 参数名1,   参数类型      参数名2,……)

{

执行语句;

return   返回值;

}


格式详细解释:

1 / 修饰符:目前就用 public static

2 / 返回值类型:功能结果的数据类型

3 / 方法名:第一个单词首字母小写,第二个单词后首字母大写

4 / 参数类型:参数的数据类型。

5 / 参数:1 / 实际参数    2/ 形式参数 :就是方法定义上的,用于接收实际参数的。

**参数有顺序。

6 / 方法体语句:完成功能的代码

7 / return : 结束方法

8 / 返回值: 就是功能的结果,由return带给调用者


写好一个方法,必须明确两个

A:返回值类型

B:参数列表,以及每个参数的数据类型


方法的调用:

1 / 方式1:单独调用(有明确返回值的方法,这种调用无意义) void类型方法 无明确返回值的可用此调用方式  方法名(参数1,参数2....);

2 / 方式2:输出调用(直接输出了,有可能我们还需要返回结果进一步操作)

3 / 赋值调用 (常用方法)  有返回值的方法调用

int result = sum(x,y);

// 返回值类型是什么,就用什么类型变量来调用


范例:

class FunctionDemo_01 {public static void main(String[] args) {int x = 10;int y = 20;//赋值调用int result = sum(x,y);//调用方法返回值是什么类型,就用什么类型的变量来调用System.out.println(result);}public static int sum(int a, int b){int c = a + b;return c;}}



练习01:

求两个数中较大值


/*键盘录入两个数据,返回两个数中较大值*/import java.util.Scanner;//导入键盘输入包class  MethodTest_01{public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入第一个数据");int a = sc.nextInt();System.out.println("输入第二个数据");int b = sc.nextInt();int result = getMax(a,b);System.out.println("较大值是"+result);}public static int getMax(int a,int b){int c =((a>b)?a:b);//三元运算符找出大的数值return c;}}


练习02:

比较两个数是否相等

/*比较两个数是否相等。分析:比较相等,返回的是boolean类型的值*/import java.util.Scanner;class  MethodTest_02{public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入第一个数");int a = sc.nextInt();System.out.println("输入第二个数");int b = sc.nextInt();boolean result = equal(a,b);System.out.println("这两个数"+result);}public static boolean equal(int a,int b)//是否相等,返回boolean类型{if (a==b)//如果相等,返回true,否则返回false{return true;}else{return false;}}}


练习03:

键盘录入三个数据,返回三个中最大的值


/*键盘录入三个数据,返回三个中最大的值分析:先比较两个,然后拿两个中较大的值和第三个进行比较,得出最大值*/import java.util.Scanner;class  MethodTest_03{public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入第一个数");int a = sc.nextInt();System.out.println("输入第二个数");int b = sc.nextInt();System.out.println("输入第三个数");int c = sc.nextInt();int result = getMax(a,b,c);System.out.println("最大的数是"+result);}public static int getMax(int a, int b, int c){int temp =((a>b)?a:b);//先比较两个数字,int max =((temp>c)?temp:c);//拿两个数字中较大的和第三个数字比较return max;//返回最大值}}

方法的注意事项:

1 / 方法与方法是平级关系,不能嵌套定义。

2 / 方法调用的时候不用再传递数据类型

3 / 如果方法有明确的返回值,一定要用return带回一个返回值


练习04:

输出如下形状:

*****

*****

*****

*****

void 的类型的返回值的调用:(单独调用)     方法名(参数1,参数2,......);


/*输出如下图形:********************分析:用forfor嵌套可输出这个图形,用两个int变量来控制横向和纵向void 方法的调用 要用到 《单独调用》*/class MethodTest_04 {public static void main(String[] args) {graphics(10,8);}public static void graphics(int m, int n){for (int x=0;x<m ;x++ ){for (int y=0;y<n ;y++ ){System.out.print("*");}System.out.println();}}}

练习05:

键盘录入行数和列数,输出对应星型

void 的类型的返回值的调用:(单独调用)     方法名(参数1,参数2,......);


/*键盘输入行数和列数,输出对应星形分析:输出星形用forfor循环嵌套*/import java.util.Scanner;class  MethodTest_05{public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入行数");int m = sc.nextInt();System.out.println("输入列数");int n = sc.nextInt();graphics(m,n);//void 返回类型的方法调用,用<单独调用>}public static void graphics(int m, int n){for (int x=0;x<m ;x++ ){for (int y=0;y<n ;y++ ){System.out.print("*");}System.out.println();}}}


练习06:

键盘输入一个1~9之间的数据,并输出对应的乘法表


/*键盘录入n,(1<=n<=9),输出对应的nn乘法表分析:用forfor循环嵌套输出九九乘法表的思路*/import java.util.Scanner;class  MethodTest_06{public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入数字");int z = sc.nextInt();if (1<=z && z<=9)//判断输入的数字是否在1~9之间的数{nn(z);}else{System.out.println("输入正确九九乘法表数字");}}public static void nn(int z)//九九乘法表方法{for (int x=1;x<=z ;x++ ){for (int y=1;y<=x ;y++ ){System.out.print(y+"*"+x+"="+y*x+"\t");}System.out.println();}}}




——————————————————————————————————————————————————————————


方法的重载:


在同一个类中,允许存在一个以上同名函数,只要它们的参数个数 或 参数类型不同即可。
1/同一个类
2/同名
3/参数个数  or   参数类型    不同

4/函数的重载和返回值类型无关,只看方法名和参数列表。



/*定义一个两位整数的和的函数。定义一个两个小数的和的函数。定义了一个三位整数的和的函数。*/class FunctionDemo2 {public static void main(String[] args) {int q=sum(4,6);double p=sum(2.23,1.08);int r=sum(6,2,8);System.out.println(q);System.out.println(p);System.out.println(r);}public static int sum(int a,int b)      //这个函数名为sum{int s=a+b;return s;}public static double sum(double a,double b)    //这个函数名被sum.与上一个函数名相同,但是参数类型不同。{double s=a+b;return s;}public static int sum(int a,int b,int c)   //这个函数名被sum.与第一个函数名和参数类型相同,但是参数个数不同。{int s=a+b+c;return s;}}


                                             
0 0