黃冈建设厅官方网站,大庆城乡建设局网站首页,本地建站教程,我网站建设文章目录 0.前言1. 方法概述2. 方法的定义和调用2.1 无参数方法定义和调用2.2 带参数方法定义和调用1 带参数方法定义和调用2 形参和实参3 带参数方法练习 2.3 带返回值方法的定义和调用1 带返回值方法定义和调用2 带返回值方法练习13 带返回值方法练习24 带返回值方法练习3 3.… 文章目录 0.前言1. 方法概述2. 方法的定义和调用2.1 无参数方法定义和调用2.2 带参数方法定义和调用1 带参数方法定义和调用2 形参和实参3 带参数方法练习 2.3 带返回值方法的定义和调用1 带返回值方法定义和调用2 带返回值方法练习13 带返回值方法练习24 带返回值方法练习3 3. 方法的注意事项3.1 方法的注意事项3.2 方法的通用格式 4. 方法重载4.1概念练习 5.方法的基本内存原理6.练习数组遍历数组最大值获取索引 0.前言
方法基础语法
1. 方法概述
概念方法method是程序中最小的执行单元
注意 方法必须先创建才可以使用该过程成为方法定义方法创建后并不是直接可以运行的需要手动使用后才执行该过程成为方法调用
2. 方法的定义和调用
2.1 无参数方法定义和调用 定义格式 public static void 方法名 ( ) {// 方法体;
}调用格式 方法名();注意方法必须先定义后调用否则程序将报错
代码演示
public class MethodTest {public static void main(String[] args) {//在main()方法中调用定义好的方法getMax();}//定义一个方法用于打印两个数字中的较大数例如getMax()public static void getMax() {//方法中定义两个变量用于保存两个数字int a 10;int b 20;//使用分支语句分两种情况对两个数字的大小关系进行处理if(a b) {System.out.println(a);} else {System.out.println(b);}}
}2.2 带参数方法定义和调用
1 带参数方法定义和调用 定义格式 参数由数据类型和变量名组成 - 数据类型 变量名 参数范例int a public static void 方法名 (参数1) {方法体;
}public static void 方法名 (参数1, 参数2, 参数3...) {方法体;
}注意 方法定义时参数中的数据类型与变量名都不能缺少缺少任意一个程序将报错方法定义时多个参数之间使用逗号( )分隔调用格式 方法名(参数)方法名(参数1,参数2);方法调用时参数的数量与类型必须与方法定义中的设置相匹配否则程序将报错
2 形参和实参 形参方法定义中的参数 实参方法调用中的参数
3 带参数方法练习
需求设计一个方法用于打印两个数中的较大数数据来自于方法参数 }思路 ①定义一个方法用于打印两个数字中的较大数例如getMax()②为方法定义两个参数用于接收两个数字③使用分支语句分两种情况对两个数字的大小关系进行处理④在main()方法中调用定义好的方法使用常量⑤在main()方法中调用定义好的方法使用变量 代码
public class MethodTest {public static void main(String[] args) {//在main()方法中调用定义好的方法使用常量getMax(10,20);//调用方法的时候人家要几个你就给几个人家要什么类型的你就给什么类型的//getMax(30);//getMax(10.0,20.0);//在main()方法中调用定义好的方法使用变量int a 10;int b 20;getMax(a, b);}//定义一个方法用于打印两个数字中的较大数例如getMax()//为方法定义两个参数用于接收两个数字public static void getMax(int a, int b) {//使用分支语句分两种情况对两个数字的大小关系进行处理if(a b) {System.out.println(a);} else {System.out.println(b);}}
}2.3 带返回值方法的定义和调用
1 带返回值方法定义和调用 定义格式 public static 数据类型 方法名 ( 参数 ) { return 数据 ;
}注意 方法定义时return后面的返回值与方法定义上的数据类型要匹配否则程序将报错 调用格式 方法名 ( 参数 ) ;
数据类型 变量名 方法名 ( 参数 ) ;注意 方法的返回值通常会使用变量接收否则该返回值将无意义
2 带返回值方法练习1 需求设计一个方法可以获取两个数的较大值数据来自于参数 思路 ①定义一个方法用于获取两个数字中的较大数②使用分支语句分两种情况对两个数字的大小关系进行处理③根据题设分别设置两种情况下对应的返回结果④在main()方法中调用定义好的方法并使用变量保存⑤在main()方法中调用定义好的方法并直接打印结果 代码 public class MethodTest {public static void main(String[] args) {//在main()方法中调用定义好的方法并使用变量保存int result getMax(10,20);System.out.println(result);//在main()方法中调用定义好的方法并直接打印结果System.out.println(getMax(10,20));}//定义一个方法用于获取两个数字中的较大数public static int getMax(int a, int b) {//使用分支语句分两种情况对两个数字的大小关系进行处理//根据题设分别设置两种情况下对应的返回结果if(a b) {return a;} else {return b;}}
}3 带返回值方法练习2
需求定义一个方法求一家商场每个季度的营业额。根据方法结果再计算出全年营业额。
代码示例
package com.itheima.demo;public class MethodDemo9 {public static void main(String[] args) {/*需求定义一个方法求一家商场每个季度的营业额。根据方法结果再计算出全年营业额。*/int sum1 getSum(10, 20, 30);int sum2 getSum(10, 20, 30);int sum3 getSum(10, 20, 30);int sum4 getSum(10, 20, 30);int sum sum1 sum2 sum3 sum4;System.out.println(sum);}//心得//1.我要干嘛 决定了方法体 每个季度的营业额//2.我干这件事情需要什么才能完成 决定了形参 需要三个月的营业额 a b c//3.我干完这件事情看调用处是否需要使用方法的结果。 决定了返回值//如果需要使用那么必须返回//如果不需要使用可以返回也可以不返回public static int getSum(int month1,int month2,int month3){int sum month1 month2 month3;//因为方法的调用处需要继续使用这个结果//所以我们必须要把sum返回return sum;}
}
4 带返回值方法练习3
需求键盘录入两个圆的半径整数比较两个圆的面积。
代码示例
import java.util.Scanner;public class MethodDemo10 {public static void main(String[] args) {//需求键盘录入两个圆的半径整数比较两个圆的面积。//键盘录入圆的半径Scanner sc new Scanner(System.in);System.out.println(请输入圆的半径);int radii1 sc.nextInt();System.out.println(请输入第二个圆的半径);int radii2 sc.nextInt();double area1 getArea(radii1);double area2 getArea(radii2);if(area1 area2){System.out.println(第一个圆更大);}else{System.out.println(第二个圆更大);}}//心得//1.我要干嘛 求圆的面积//2.我干这件事情需要什么才能完成 半径//3.方法的调用处是否需要继续使用方法的结果 要比较public static double getArea(int radii) {double area 3.14 * radii * radii;return area;}
}3. 方法的注意事项
3.1 方法的注意事项 方法不能嵌套定义 代码演示 public class MethodDemo {public static void main(String[] args) {}public static void methodOne() {public static void methodTwo() {// 这里会引发编译错误!!!}}
}方法与方法之间是平级关系 方法的编写顺序与执行顺序无关 void表示无返回值可以省略return也可以单独的书写return后面不加数据 代码演示 public class MethodDemo {public static void main(String[] args) {}public static void methodTwo() {//return 100; 编译错误因为没有具体返回值类型return; //System.out.println(100); return语句后面不能跟数据或代码}
}3.2 方法的通用格式 格式 public static 返回值类型 方法名(参数) {方法体; return 数据 ;
}解释 public static 修饰符目前先记住这个格式 返回值类型 方法操作完毕之后返回的数据的数据类型 如果方法操作完毕没有数据返回这里写void而且方法体中一般不写return 方法名 调用方法时候使用的标识 参数 由数据类型和变量名组成多个参数之间用逗号隔开 方法体 完成功能的代码块 return 如果方法操作完毕有数据返回用于把数据返回给调用者 定义方法时要做到两个明确 明确返回值类型主要是明确方法操作完毕之后是否有数据返回如果没有写void如果有写对应的数据类型明确参数主要是明确参数的类型和数量 调用方法时的注意 void类型的方法直接调用即可非void类型的方法推荐用变量接收调用
4. 方法重载
4.1概念 方法重载概念方法重载指同一个类中定义的多个方法之间的关系满足下列条件的多个方法相互构成重载 多个方法在同一个类中多个方法具有相同的方法名多个方法的参数不相同(类型不同、数量不同或者顺序不同) 注意 重载仅对应方法的定义与方法的调用无关调用方式参照标准格式重载仅针对同一个类中方法的名称与参数进行识别与返回值无关换句话说不能通过返回值来判定两个方法是否相互构成重载参数的顺序不一样也可以构成重载但是不建议
重载的作用与好处不用记忆过多繁琐的方法名字 正确范例 public class MethodDemo {public static void fn(int a) {//方法体}public static int fn(double a) {//方法体}
}public class MethodDemo {public static float fn(int a) {//方法体}public static int fn(int a , int b) {//方法体}
}错误范例 public class MethodDemo {public static void fn(int a) {//方法体}public static int fn(int a) { /*错误原因重载与返回值无关*///方法体}
}public class MethodDemo01 {public static void fn(int a) {//方法体}
}
public class MethodDemo02 {public static int fn(double a) { /*错误原因这是两个类的两个fn方法*///方法体}
}练习 需求使用方法重载的思想设计比较两个整数是否相同的方法兼容全整数类型byte,short,int,long 思路 ①定义比较两个数字的是否相同的方法compare()方法参数选择两个int型参数②定义对应的重载方法变更对应的参数类型参数变更为两个long型参数③定义所有的重载方法两个byte类型与两个short类型参数④完成方法的调用测试运行结果 代码 public class MethodTest {public static void main(String[] args) {//调用方法System.out.println(compare(10, 20));System.out.println(compare((byte) 10, (byte) 20));System.out.println(compare((short) 10, (short) 20));System.out.println(compare(10L, 20L));}//intpublic static boolean compare(int a, int b) {System.out.println(int);return a b;}//bytepublic static boolean compare(byte a, byte b) {System.out.println(byte);return a b;}//shortpublic static boolean compare(short a, short b) {System.out.println(short);return a b;}//longpublic static boolean compare(long a, long b) {System.out.println(long);return a b;}}5.方法的基本内存原理
基本数据类型 数据值是存储在自己的空间中
特点赋值给其他变量也是赋的真实值 引用数据类型 数据值存储在堆区中自己空间存储的是地址值
特点赋值给其他变量赋的地址值 方法的值传递
传递基本数据类型时传递的是真实的数据形参的改变不影响实际参数的值
传递引用数据类型时传递的是地址值形参的改变影响实际参数的值
6.练习
数组遍历 需求设计一个方法用于数组遍历要求遍历的结果是在一行上的。例如[11, 22, 33, 44, 55] 思路 ①因为要求结果在一行上输出所以这里需要在学习一个新的输出语句System.out.print(“内容”); System.out.println(“内容”); 输出内容并换行 System.out.print(“内容”); 输出内容不换行 System.out.println(); 起到换行的作用 ②定义一个数组用静态初始化完成数组元素初始化 ③定义一个方法用数组遍历通用格式对数组进行遍历 ④用新的输出语句修改遍历操作 ⑤调用遍历方法 代码 public class Test1 {public static void main(String[] args) {/* //先打印数据再进行换行System.out.println(aaa);//只打印不换行System.out.print(bbb);System.out.print(ddd);//不打印任何内容只换行System.out.println();System.out.print(cc);*///设计一个方法用于数组遍历要求遍历的结果是在一行上的。例如[11, 22, 33, 44, 55]int[] arr {1,2,3,4,5};printArr(arr);}//1.我要遍历数组//2.需要什么 数组//3.调用处是否需要使用方法的结果。public static void printArr(int[] arr){System.out.print([);for (int i 0; i arr.length; i) {if(i arr.length - 1){System.out.println(arr[i] ]);}else{System.out.print(arr[i] , );}}}
}数组最大值 需求设计一个方法用于获取数组中元素的最大值 思路 ①定义一个数组用静态初始化完成数组元素初始化②定义一个方法用来获取数组中的最大值最值的认知和讲解我们在数组中已经讲解过了③调用获取最大值方法用变量接收返回结果④把结果输出在控制台 代码 public class MethodTest02 {public static void main(String[] args) {//定义一个数组用静态初始化完成数组元素初始化int[] arr {12, 45, 98, 73, 60};//调用获取最大值方法用变量接收返回结果int number getMax(arr);//把结果输出在控制台System.out.println(number: number);}//定义一个方法用来获取数组中的最大值/*两个明确返回值类型int参数int[] arr*/public static int getMax(int[] arr) {int max arr[0];for(int x1; xarr.length; x) {if(arr[x] max) {max arr[x];}}return max;}
}获取索引
需求定义一个方法获取数字在数组中的索引位置将结果返回给调用处如果有重复的只要获取第一个即可。
代码示例
package com.itheima.demo;public class Test4 {public static void main(String[] args) {//定义一个方法获取数字在数组中的索引位置将结果返回给调用处//如果有重复的只要获取第一个即可int[] arr {1,2,3,4,5};int index contains(arr, 3);System.out.println(index);}//1. 我要干嘛判断数组中的某一个数是否存在//2. 需要什么数组 数字//3. 调用处是否需要继续使用返回//获取number在arr中的位置public static int contains(int[] arr, int number) {//遍历arr得到每一个元素for (int i 0; i arr.length; i) {//拿着每一个元素跟number比较if(arr[i] number){//如果相等表示找到了return i;}}//当循环结束之后如果还不能返回索引表示数组中不存在该数据//可以返回-1return -1;}
}