JAVA(函数)

概念

函数就是定义在类中的具有特定功能的一段独立小程序,并能被多次使用.
提示
由名称、参数、返回值以及函数体组成。

修饰符  返回值类型    函数名(参数列表){
//函数体;
}

在这里插入图片描述

方法可以返回一个值。
rerurnValueType是方法返回值的数据类型。
有些方法只是完成某些要求的操作,而不是返回值,在这种情况下,returnValueType为关键字void.
例如在main方法中returnValueType就是void,在System.exit、System.out.print中返回值类型也是如此。
如果没有返回值,也称为带返回值的方法或者就是void方法


静态修饰符(static)
方法头:方法的修饰符、返回值类型、函数名、方法的参数。定义方法头中的变量称为形式参数(formal parameter)或者简称为形象(parameter).参数就像占位符。
当调用方法时,就给参数传递一个值,这个值称为实际参数或者实参。参数列表指明方法中参数的类型、顺序和个数。
方法名和参数列表一起构成方法签名。
参数是可选的,也就是说方法可以不包含参数。
注意
 - 在一些语言中,方法称为过程或者函数,带返回值的方法称为函数。返回值类型为Void的方法称为过程。
 - 我们经常会说"定义方法” 和“声明变量”,这里我们谈谈来着的细微差别。
 -定义是指被定义的条目是什么,而声明通常是指为被声明的条目分配内存来储存数据。
警告
	在方法头中,需要对每一个参数进行独立的数据类型声明。
重载
表面上来看:一个类中有若干个重名函数
重载和函数的权限修饰符有关系没?没关系
重载和函数的类型修饰符有关系没?有 为啥
重载和函数的返回值类型有关系没?没
和函数名有关系吗?有 前提重名
和函数的参数列表有关系没?和参数名没关系 和类型有关系
目前而言 重载的前提是函数重名
具体到底是不是重载关系 看参数类型的排列组合(个数,顺序)
add(double,double)
add(int,int)
add(int,double,int)
add(double,int,int)
add(int,int,double)
重载的好处?对函数的参数进行拓展
编写程序判读一个数是回文的情况下还是素数
import java.util.Scanner
class Demo03{
	public static void main (String[] args){  
		int number=initDate();
                                                           //判断是否是回文素数
        if(isHuiWenSuShu(number)){
            System.out.println("是");
        }else{
            System.out.println("不是");
        }
    }
    public static int initData(){                      //调用initDate
        Scanner scanner=new Scanner(System.in);        //创建一个输入
        System.out.print("请输入一个数字:");           //提醒用户输入一个数字
        return scanner.nextInt();					  //返回一个int类型的值给number
    }
    public static boolean isHuiWenSuShu(int num){     
                                                          //判断是否是素数且回文
        return isHuiWen(num)&&isSuShu(num);           //返回一个值给if判断
    }
    public static boolean isHuiWen(int num){       // 计算翻转数字
       
        int revNum=reverse(num);
        return revNum==num;
    }
    public static int reverse(int num){              //调用reverse来计算反转数字
        int sum=0;
        while(true){
            sum=sum*10+num%10;
            num/=10;
            if(num==0){
                break;
            }
        }
        return sum;                   //将sum返回给revNum
    }
    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;                 //将这个值返回给isSuShu
    }
}
汉诺塔(递归方法)
前6个 x->z
    前5个 x->y
        前4个 x->z
            前3个 x->y
                前2个 x->z
                    前1个 x->y
                    第2个 x->z
                    前1个 y->z
                第3个 x->y
                前2个 z->y
                    前1个 z->x
                    第2分 z->y
                    前1个 x->y
            第4个 x->z
            前3个 y->z
        第5个 x->y
        前4个 z->y
    第6个 x->z
    前5个 y->z

A B C
前n个 A->C
    前n-1个 A-B? 借助C
    第n个   A-C?
    前n-1个 B-C? 借助A

import java.util.Scanner;

class Demo01{
  public static void main(String[] args) {
      Scanner scanner=new Scanner(System.in);
      System.out.print("请输入盘子的个数:");
      int level=scanner.nextInt();
     move("x","y","z",level);
  }
  public static void move(String from,String mid,String to,int level){
    if(level==1){
      System.out.println(from+"->"+to);
    }else{
      move(from,to,mid,level-1);
      System.out.println(from+"->"+to);
      move(mid,from,to,level-1);
    }
  }
    
  
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值