方法优势:提高代码复用性,使得程序逻辑更清晰
学会:1定义方法,2调用方法,3方法内存图,4方法参数传递机制,5方法其他常见形式,技术(方法重载,方法递归)
学习流程:1方法定义和调用,2方法使用常见问题,3方法案例,4方法调用的内存图,5方法的参数传递机制,6方法参数传递案例,7方法重载,8补充return
1方法定义和调用方法定义标准格式:
修饰符 返回值类型 方法名 (形参列表){
方法体代码(需要执行的功能代码)
return 返回值;
}
eg:
public static int add(int a,int b){
int c = a+b;
return c;
}
调用格式:方法名(…)
2方法使用常见问题attention:方法修饰符暂时都用public static
方法声明了具体返回值类型,内部必须使用return返回对应类型数据
方法测编写顺序无所谓
方法和方法之间是平级关系,不能嵌套定义
void型方法不能用return返回数据,
return语句下面不能编写代码
调用方法vixu严格匹配方法参数情况
有返回值方法调用时可以定义变量接收结果,或者直接输出调用,无返回值方法只能直接调用
方法真正重点:1返回值类型确定,2方法接收参数
package com.itheima;
public class Test1 {
public static void main(String[] args) {
System.out.println("1-5的和是:"+sum(5));
System.out.println("----------");
System.out.println("1-100的和是:"+sum(100));
}
public static int sum(int n){
int sum=0;
for (int i = 1; i <=n ; i++) {
sum+=i;
}
return sum;
}
}
package com.itheima;
public class Test1 {
public static void main(String[] args) {
check(11);
check(100);
}
public static void check(int number){
if(number%2==0){
System.out.println(number+"是偶数");
}else{
System.out.println(number+"是奇数");
}
}
}
4方法调用的内存图
5方法的参数传递机制
基本类型参数传递
引用类型参数传递:数组,字符串
形参:以方法为例,就是方法定义时的变量
实参:方法内部定义的变量
Java参数传递机制:值传递,传输的是实参存储的值;
基本类型和引用类型参数传递的不同:
1都是值传递
2基本类型的参数传输存储的数据值
3引用类型的参数传输存储的地址值
案例1:
设计一个方法用于输出任意整形数组的内容,要求输出成如下格式:[11,22,33,44,55]
package com.itheima;
public class Test1 {
public static void main(String[] args) {
int[] ages={10,20,30,40};
printArray(ages);
System.out.println("-----------");
int[] numbers={1,2,3,4,5,};
printArray(numbers);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.println("]");
}
}
package com.itheima;
public class Test1 {
public static void main(String[] args) {
int[] ages = {10, 20, 30, 40};
printArray(ages);
System.out.println("-----------");
int[] numbers = {1, 2, 3, 4, 5,};
printArray(numbers);
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ",");
}
System.out.println("]");
}
}
案例2:
设计一个方法可以接收整形数组,查询的元素值,最重要返回元素在数组中的索引,如果数组中不存在元素则返回-1;
package com.itheima;
public class Test1 {
public static void main(String[] args) {
int[] arr={11,22,33,44,55,66,77,88,99,100};
int index=searchIndex(arr,100);
System.out.println("您查寻的数据索引是:"+index);
}
public static int searchIndex(int[] arr,int data){
for (int i = 0; i < arr.length; i++) {
if(data==arr[i]){
return i;
}
}
return -1;
}
}
案例3:
比较两个数组内容是否一样:如果两个数组的类型,元素个数,元素顺序和内容一样,就认为这两个数组一模一样。使用方法判断任意两个整形数组是否一样,返回true或false;
package com.itheima;
public class Test1 {
public static void main(String[] args) {
int[] arr1={1,2,3,4,5};
int[] arr2={1,2,3,4,5};
System.out.println(compare(arr1, arr2));
}
public static boolean compare(int[] arr1,int[] arr2){
if(arr1.length==arr2.length){
for (int i = 0; i < arr1.length; i++) {
if(arr1[i]!=arr2[i]){
return false;
}
}
}
return true;
}
}
7方法重载,
方法重载定义:同一个类中,出现多个方法名称相同,但是形参列表不同,这些方法就是重载方法。调用方法时候会通过参数不同来区分调用的是哪个方法
方法重载优势:可读性好;
方法重载识别技巧:同一个类中,方法名称相同,形参列表不同(个数,类型,顺序),就是方法重载,(修饰符,返回值类型都不管)
package com.itheima;
public class Test1 {
public static void main(String[] args) {
fire();
fire("岛国");
fire("岛国",100);
}
public static void fire(){
System.out.println("默认发射一枚武器给米国");
}
public static void fire(String location){
System.out.println("默认发射一枚武器给"+location);
}
public static void fire(String location,int number){
System.out.println("默认发射"+number+"枚武器给"+location);
}
}
8补充return
return;可以立即跳出并结束当前方法执行,return关键字单独使用可以放在任何方法中。
return;跳出并立即结束所在方法的执行
break;跳出并结束当前所在循环执行
continue;结束当前所在循环的当此继续,进入下一次执行



