方法
1、为什么引用方法?
代码都写在main方法中会导致以下后果:
降低代码的可读性;
变量名不可重复定义;
造成冗余代码过多。
2、方法的定义
public static 返回值类型 方法名(参数列表){
方法体
}
注意:
-
方法名要与方法需要完成的操作一致,要见名知意;
-
方法名可以相同,但相同的方法名的参数列表不能相同,这称之为方法的重载;
-
方法名+参数列表 才能唯一的确定一个方法;
-
参数列表只声明变量,不需要具体的值,称为形参,多个形参间用逗号隔开;
-
方法体用来编写相应的操作。
-
确定返回值类型,并在方法体中用关键字return返回具体的值;
-
如果不需要返回值,则定义返回值类型为void类型;
-
return可以单独使用,用于结束方法;
package net.zx.j2se.day04;
public class Text05 {
public static void main(String[] args) {
}
public static int sum(int a,int b){ //求和
return a+b;
}
}
3.方法的调用
JVM虚拟机只执行main方法中的内容,所以要在main方法中调用其他方法;
方法中只能调用其他方法,不能定义方法;
调用时如果方法有参数,要写出参数具体的值,这些值称为实参;
如果方法有返回值,可以定义一个变量接收返回值,再打印输出。
package net.zx.j2se.day04;
public class Text05 {
public static void main(String[] args) {
int n=sum(12,4);
System.out.println(n);
HelloWorld();
}
public static int sum(int a,int b){
return a+b;
}
public static void HelloWorld(){
System.out.println("HelloWorld!");
}
}
//输出结果:
//16
//HelloWorld!
4、方法重载
方法名可以相同,但相同的方法名的参数列表不能相同,这中定义方法称之为方法的重载
方法调用时,实参列表要与对应方法的形参列表的类型、数量一致。
方法的唯一性只与 方法名+参数列表 有关,与返回值类型无关。
package net.zx.j2se.day04;
public class Text05 {
public static void main(String[] args) {
int n1=sum(12,4);
int n2=sum(4,1,8);
double n3=sum(3.6,3.4);
int n4=sum(3.1,5.6,5.7);
System.out.println(n1);
System.out.println(n2);
System.out.println(n3);
System.out.println(n4);
}
public static int sum(int a,int b){ //两个整数
return a+b;
}
public static int sum(int a,int b,int c){ //三个整数
return a+b+c;
}
public static double sum(double a,double b){ //两个浮点数
return a+b;
}
/**
public static int sum(double a,double b){ //两个浮点数 总和返回为int型整数,错误!
return (int)a+b;
}
*/
public static int sum(double a,double b,double c){ //三个浮点数转为整数
return (int)(a+b+c);
}
}
//输出结果:
//16
//13
//7.0
//14
5、随堂练习
-
定义一个方法求指定的int类型数组中所有数据的总和
-
定义一个方法求指定的int类型数组中的最大值
-
定义一个方法将指定的int类型数组中所有数据按照以下格式在控制台输出打印
[1,2,3,6,1,6,9,0]
-
定义一个方法对指定的int类型数组中所有的数据进行排序
-
定义一个方法求指定整数的指定幂 a的b次方
-
定义一个方法判断指定的整数是否是水仙花数
-
学生信息管理系统(数组+方法)
package net.zx.j2se.day04; import java.util.Scanner; public class Text03 { public static void main(String[] args) { int[] arr={2,4,2,7,86,24,145,1}; int sum =qiuhe(arr); //方法1 int max=max(arr); //方法2 System.out.println(sum); System.out.println(max); print(arr); //方法3 paixu(arr); //方法4 mi(); //方法5.1 int n=mi(3,3); //方法5.2 System.out.println(n); shuixian(); //方法6.1 isshuixian(11); //方法6.2 boolean a=shuixian(153); //方法6.3 System.out.println(a); } public static int qiuhe(int brr[]){ //1.求和 int sum=0; for(int i=0;i<brr.length;i++){ sum+=brr[i]; } return sum; } public static int max(int arr[]){ //2.求最大值 int max=arr[0]; for(int i=0;i<arr.length;i++){ if(max<arr[i]){ max=arr[i]; } } return max; } public static void print(int arr[]){ //3.打印数组 System.out.print("原始数组打印为:"); 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("]"); } public static void paixu(int arr[]){ //4.数组排序 for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.print("数组从小到大为:"); 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("]"); } public static int mi(){ // 5.1 求a的b次幂——方法一 Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数:"); int a=sc.nextInt(); System.out.println("请输入第二个数:"); int b=sc.nextInt(); int num=a; while(b>1){ num *=a; b--; } System.out.println(a+"的"+b+"次幂为:"+num); return num; } public static int mi(int a,int b){ // 5.2求a的b次幂——方法二 int num=a; while(b>1){ num *=a; b--; } return num; } public static void shuixian(){ //6.1 判断水仙花数——方法一 Scanner sc=new Scanner(System.in); System.out.println("请输入第一个三位数:"); int n=sc.nextInt(); int a=n/100; int b=n%100/10; int c=n%10; if(n==a*a*a+b*b*b+c*c*c){ System.out.println(n+"是水仙花数"); }else{ System.out.println(n+"不是水仙花数"); } } public static void isshuixian(int n){ //6.2 判断水仙花数——方法二 if(n<100||n>999){ System.out.println("请输入3位数~"); return; } int a=n/100; int b=n%100/10; int c=n%10; System.out.println(n+(n==mi(a,3)+mi(b,3)+mi(c,3)?"是水仙花数":"不是水仙花数")); //调用方法5.2求a的b次幂 } public static boolean shuixian(int n){ //6.3 判断水仙花数——方法三 if(n<100||n>999){ return false; } int a=n/100; int b=n%100/10; int c=n%10; if(n==mi(a,3)+mi(b,3)+mi(c,3)){ return true; } return false; } }
package net.zx.studentsystem; import java.util.Scanner; public class Find { /**********学生信息管理系统**********/ public static void main(String[] args) { run(); } public static int printMenu(){ //打印菜单 Scanner sc=new Scanner(System.in ); System.out.println("———————————学生管理系统———————————"); System.out.println("1、查看学生信息:"); System.out.println("2、添加学生信息:"); System.out.println("3、删除学生信息:"); System.out.println("0、退出:"); System.out.println("———————————————————————————————"); System.out.print("请选择:"); int n=sc.nextInt(); return n; } public static void run(){ //控制流程 Scanner sc=new Scanner(System.in ); String[] stus=new String[20]; boolean flag=true; while(flag){ int n=printMenu(); switch(n){ case 1: findStus(stus); break; case 2: addStus(stus); break; case 3: delStus(stus); break; case 0: flag=false; System.out.println("欢迎下次使用~"); break; default: System.out.println("输入错误,请重新输入(0~3)"); } } } public static void findStus(String[]stus){ //查看学生信息 for(int i=0;i<stus.length;i++){ if(stus[i]!=null){ System.out.print("学号: "+(i+1)); System.out.println("\t姓名: "+stus[i]); } } } public static void addStus(String[]stus){ //插入学生信息 System.out.print("请输入学号:"); Scanner sc=new Scanner(System.in ); int no=sc.nextInt(); //学号 System.out.print("请输入姓名:"); String name=sc.next(); //姓名 if(no<0||no>20){ System.out.println("请输入正确学号(1~20)"); return; } if(stus[no-1]!=null){ System.out.println("该学号已录入信息,请重新选择"); return; } stus[no-1]=name; System.out.println("添加成功~"); return; } public static void delStus(String[]stus){ //删除信息 for(int i=0;i<stus.length;i++){ System.out.print("请输入需要删除学生的学号:"); Scanner sc=new Scanner(System.in ); int no1=sc.nextInt(); if(stus[no1-1]!=null){ stus[no1-1]=null; System.out.println("已删除该学生信息~"); return; }else{ System.out.println("不存在该学生!!!"); return; } } } }