方法概述和格式说明

方法

  为解决代码重复编写的问题,可以将重复的代码提取出来放在一个{}中,并为这段代码起个名字。这样每次在调用该功能是,只需要通过这个名字来调用代码就可以了。上述过程中,所提取出来的代码可以被看做是程序中定义的一个方法。程序在需要调用该功能时调用该方法即可。

简单的说:方法就是完成特定功能的模块化,模块化使得代码易于维护和调试,并且使得代码可以被重用。

  • 在很多语言里面都有函数的定义
  • 函数在Java中被称为方法
    方法定义图
    格式:
    权限修饰符 状态修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,…){
         函数体;
         return 返回值;
      }

详细解释:

  • 修饰符:

    • 访问修饰符:public private protected (空默认)
    • 状态修饰符:static final
    • 抽象修饰符:abstract
  • 返回值类型:就是功能结果的数据类型

  • 方法名:符合命名规则

  • 参数:

    • 实际参数:就是实际参与运算的(方法中定义的参数)
    • 形式参数:就是方法定义上的,用于接收实际参数的(在方法中声明的参数)
  • 参数类型:就是参数的数据类型

  • 方法体:就是完成功能的代码

  • return:结束函数,如果函数没有返回值可以不写,但是不写不代表没有

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

  • 返回值类型:返回值的数据类型(兼容即可),没有返回值写void

有返回值的方法调用

有明确返回值的方法调用:

  • 单独调用,没有意义
  • 输出调用,有意义,但是我们不一定要把结果输出
  • 赋值调用,推荐方式

方法的注意事项

  • 方法不调用不执行
  • 方法与方法是平级关系,不能嵌套定义
  • 方法定义的时候参数之间用逗号隔开
  • 方法调用的时候不用在传递数据类型
  • 如果有明确的返回值,一定要return带回一个值

无返回值方法的定义和调用

  • 只能调用
  • 不能输出
  • 不能赋值
  • 不能运算

方法重载概述和使用

方法重载概述:

  • 在调用一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

  • 重载方法可以使得程序更加清楚,以及更加具有可读性。执行同样功能但是具有不同参数类型的方法应该使用同样的名字。

  • 被重载的方法必须具有不同的参数列表。不能基于不同修饰符或返回值类型来重载方法。

  • 有时调用一个方法时,会有两个或更多可能的匹配,但是,编译器无法判断哪个时最精确的匹配。这称为歧义调用。歧义调用会产生一个编译错误。

    • 如:
      public class AmbiguousOverloading { 
      		public static void main(String[] args){ 
      				System.out.println(max(1,2));
      	 			}
      public static double max(int num1, double num2){
      		 if (numl > num2) 
      		 	return numl; 
      		 else
      		 	return num2;
      		 	}
      	public static double max(double num1,int num2){ 
      		 If (num1> num2) 
      		 	return num1; 
      		 	else 
      		 	return num2; 
      		 	}
      		 }
    

方法重载特点:

  • 与返回值,权限修饰符无关,只看方法名和参数类型
  • 在调用时,虚拟机通过参数列表的不同来区分同名方法

习题

1.输入一个数,判断是否是回文素数


import java.util.Scanner;
class Home26{
    public static void main(String[] args){
        //1.提示用户输入一个数字
        int number=initData();
        //2.判断是否是回文素数
        if(isHuiWenSuShu(number)){
            System.out.println("是");
        }else{
            System.out.println("不是");
        }
    }
    public static int initData(){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        return scanner.nextInt();
    }
    public static boolean isHuiWenSuShu(int num){
        //3.判断是否是素数且回文
        return isHuiWen(num)&&isSuShu(num);
    }
    public static boolean isHuiWen(int num){
        //4.计算翻转数字
        int revNum=reverse(num);
        return revNum==num;
    }
    public static int reverse(int num){
        int sum=0;
        while(true){
            sum=sum*10+num%10;
            num/=10;
            if(num==0){
                break;
            }
        }
        return sum;
    }
    public static boolean isSuShu(int num){
        //5.计算素数
        boolean flag=true;//是素数
        for(int i=2;i<=num/2;i++){
            if(num%i==0){
                flag=false;
                break;
            }
        }
        return flag;
    }
}

在这里插入图片描述

import java.util.Scanner;
class Class27{
    public static void main(String[] args){
        String pass = systemIn();
        if(detection(pass)){
            System.out.println("密码设置成功");
        }else{
            System.out.println("密码设置失败");
        }
    }
        public static String systemIn(){
        System.out.println("请输入密码");
        Scanner s = new Scanner(System.in);
        return s.next();
    }

        public static boolean detection(String pass){
        boolean flag = true;
        String str = strg();
        if(!panduanBH(pass,str)){
            flag = false;
            System.out.println("密码存在非法字符");
        }
        if(!panduanCS(pass,str)){
            flag = false;
            System.out.println("数字不到两位");
        }
        if(!panduanCD(pass)){
            flag = false;
            System.out.println("密码长度不足");
        }
        return flag;

    }
        //通过遍历码表,将A-Z;a-z;0-9;添加到strg里
    public static String strg(){
        String strg = "";
        //A-Z
        for(char i = 65; i <= 90; i++){
            strg = i + strg;
        }
        //a-z
        for(char i = 97; i <= 122; i++){
           strg = i + strg;
        }
        //0-9
        for(char i = 48; i <= 57; i++){
            strg = i + strg;
        }
        return strg;
    }
    //判断密码里是否有不包含数字和字母的内容
    public static boolean panduanBH(String pass,String strg){

        String[] pas = new String[pass.length()];   //将密码转为数组
        String str = strg;
        boolean flag = true;
        for(int i = 0; i <pass.length(); i++){
                pas[i] = pass.charAt(i)+"";
             }

        for(int i = 0; i < pas.length ; i++){
            if(str.indexOf(pas[i]) == -1){
                flag = false;
            }
        }
        return flag;
    }
    
	//判断密码里的数字是否达到了两位数
    public static boolean panduanCS(String pass,String strg){
        String[] arr = new String[strg.length()];
        boolean flag = true;
        String[] pas = new String[pass.length()];

        for(int i = 0; i < pass.length(); i++){
            pas[i] = pass.charAt(i)+"";
            }
        for(int i = 0; i < strg.length(); i++){
            arr[i] = strg.charAt(i)+"";
            }

        int count = 0; //记录数字出现的次数
	
        for(int i = strg.indexOf("9"); i <= strg.indexOf("0"); i++){
            for(int j = 0; j < pas.length ; j++){
                if(arr[i].equals(pas[j])){
                    count++;
                }
            }
        }
        if(count < 2){
            flag = false;
        }
        return flag;
    }
    //判断密码的长度是否达到了8位
    public static boolean panduanCD(String pass){
        if(pass.length()<8){
            return false;
        }
            return true;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值