方法的定义与使用(Java)

本文介绍了Java编程中方法的作用、定义(包括返回值类型、参数列表和重载)、调用规则以及如何在实际场景(如学生信息管理系统)中运用。同时涉及数组操作、函数参数传递和水仙花数的判断。
摘要由CSDN通过智能技术生成

方法

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;
                }
            }
        }
        
    ​
    }

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值