java语言基础 (方法与数组)

5.方法
5.1方法的定义及概述

1.方法的概念:就是用来解决一类问题的代码的有序组合,是一个功能模块。
2.定义方法的语法如下

>修饰符  返回值类型 方法名(参数列表){
		//方法体
>}

修饰符:public static(公有)private static(私有)
返回之类型:常用的有int double boolean 等类型。
形参:定义方法投中的变量称为形式参量或称为形参,参数类似与占位符。
实际参数:当调用方法是,就给参数传递一个值,这个值就称为实际参数,或实参。
参数列表: 指明参数中的参数类型、顺序和个数。
3.定义方法需注意以下几点;

①定义方法和声明变量,定义是指被定义的条目式什么,而声名通常是指为被声明的条目分配内存来存储数据。

 在定义方法时,需要对每一个参数进行独立的数据类型声明。例如:
max(int num1,int,num2)是正确的,而max(int num1,num2)就是错误的。

② 方法称为过程和函数,带返回值的方法称为函数,返回值类型为void的方法称为过程,调用过程时不需要返回值,调用函数时要求有返回值。
示例1.
求两个数据值和

import java.util.Scanner;
class day01{
    public static void main(String[] args){
       Scanner scanner=new Scanner(System.in);
       System.out.print("Please enter a number:");
       int a=scanner.nextInt();
       System.out.print("Please enter a number:");
       int b=scanner.nextInt();
       System.out.println(getSum(a,b));
    }
    public static int getSum(int a,int b){
            int d=a+b;
            return d;
    }
}
5.2调用方法及其注意事项

1.首先要看方法中是否有返回值,如果是有返回值,调用方法有两种途径:

① 方法返回一个值,通常就当做一个值处理
 int large=max(3,4);
>②另外一个把它当做只处理的调用例子:
System.out.println(max(3,4));

2.方法的返回值是void,对方法的调用必须是一条语句,例如,println方法返回void,示例如下:

System.out.println("Welcome to java!");

方法调用注意事项
①方法中带返回值,return语句是必须的;
②方法与方法是同一级别的,不能嵌套定义方法;
③方法在main函数中调用时,不用再次传递数据类型
④方法如果不被主函数调用,则不会实现该方法的功能。
⑤传入方法中实参与方法定义中的形参的数量上匹配,而且在类型上要兼容(类型兼容,不需要强制转换,实参的值就可以传递给形参,即就是大的数据类型兼容小的数据类型,将int型的实参值传递给double型的形参)
使用方法的优点;
①将解决问题的方法与主函数代码分开,逻辑更清晰,代码可读性更强。
②若方法出错,则程序可以缩小为只在该方法中查找错误,使代码更容易调试。
③方法是解决一类问题的抽象,一旦写成功就可以重复使用。

5.3方法的重载

1.方法的重载:定义同样的方法名,但是返回值的类行不同,参数的类型以及参数的个数不同
示例如下

第一种
public static double getSum(int num1,double num2){
					double c=num1+num2;
					return c;
}
public static int getSum(int num1,int num){
   				int c=num1+num;
   				return c;
}

重载方法的注意事项
①被重载的方法必须具有不同的参数列表,不能仅仅是修饰符的改变或者返回值类型的改变,因为虚拟机通过参数列表的不同来去分同名的方法。
②调用一个方法时,会有两个或更多可能的匹配,但是编译器无法判断哪个是最精确的匹配,这样会造成编译错误,例如;

1) public static double max(int num1,double num2){
   	if(num1>num2){
   			return num1;
   	  }else{
   	        return num2;
   	   }
}
2)public static double  max(double num1,int num2){
				if(num1>num2){
					return num1; 
                }else{
                   return num2;
                   }
}

主函数调用max方法1)与2)的方法重载,就会引起歧义调用。
3)不能在同一个方法中多次声明同一个局部变量

例题1.
求两个参数之和输入一个数看是否是否为回文数字

import java.util.Scanner;
class day01{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("Please enter a number:");
        int number=scanner.nextInt();
        boolean s=isPalindrome(number);
    }
    public static int reverse(int number){
        String numberStr="";
        while(number!=0){
            numberStr=numberStr+number%10;
            number/=10;
        }
        System.out.println(numberStr);
        int num=Integer.parseInt(numberStr);

        System.out.println(num);
        return num;
    }
    public static boolean isPalindrome(int number){
        int num=reverse(number);
        if(num==number){
            System.out.println("是回文数字!");
            return true;
        }else{
            System.out.println("不是回文数字!");
            return false;
        }
    }
}

例题2.
在这里插入图片描述
打印一个靠右边的三角形上数列

import java.util.Scanner;
class day02{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("Enter a number:");
        int n=scanner.nextInt();
        disaplayPattern(n);

    }
    public static void disaplayPattern(int n){
    for(int i=1;i<=n;i++){
        for(int k=1;k<=n-i;k++){
            System.out.print("  ");
        }
        for(int j=i;j>0;j--){
            System.out.print(j+" ");
        }
        System.out.println();
      }
    } 
}

例题3
在这里插入图片描述调用方法并计算值
m(i)=i/(i+1);类加二十次,加一次打印一次

class day03{
    public static void main(String[] args){
        int num=20;
        double cs=getSum(num);
    }
    public static double getSum(int num){
        int i=1;
        double sum=0;
        while(i<=num){
            sum=sum+1.0*i/(i+1);
            System.out.printf("i=%d, m(i)=%.3f\n",i,sum);
            i++;
        }
        return sum;
    }
}

例题4.
在这里插入图片描述

1.打印100个回文素数
1.1。创建一个方法选择回文素数
1.1.1中间调用素数方法,并且调用一个判断素数是否为回文素数
① 创建一个判断是否是素数的方法
②创建一个是否为回文的方法
当两者都为真时则是回文素数,并打印输出100个回文素数

class day06{
    public static void main(String[] args){
        int count=0;
        int num=2;
        while(count<=100){
            if(isWeNeed(num)){
                System.out.printf("%d \t",num);
                count++;
                if(count%10==0){
                    System.out.println();
                }
            }
            num++;
    
        }

    }
    public static boolean isWeNeed(int num){
       return isPrimeNumber(num)&&isPalinder(num);
    }
   
    public static boolean isPalinder(int num){
       return num==reverse(num);
    }
    public static boolean isPrimeNumber(int num){
        for(int i=2;i<=num/2;i++){
            if(num%i==0){//num对i取余等于0,则是素数
                return false;
            }
        }
        return true;
    }
    public static int reverse(int num){
        int sum=0;
        while(num!=0){
            sum=sum*10+num%10;
            num/=10;
        }
        return sum;
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值