8.Java语言基础:函数

阅读目录:

1.函数的定义

2.函数的特点

3.函数的应用

4.函数的重载

1.函数的定义

1.函数的定义
    答:函数就是定义在类中的具有特定功能的一段独立小程序。
    函数也称为方法。
    
2.函数的格式
    修饰符  返回值类型 函数名(参数类型  形式参数1,参数类型 形式参数2,...)
    {
        执行语句;
        return 返回值;
    }
    
    返回值类型:函数运行后的结果的数据类型。
    参数类型:是形式参数的数据类型。
    形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
    return:用于结束函数。
    返回值:该函数运算后的结果,该结果会返回给调用者。

示例:

class FunctionDemo
{
    public static void main(String[] args)
    {
        //int a = 3;
        //int b = 4;
        //int c;
        //c = a+b;
        
        //c = 5+7;
        //c = 9+8;
        
        int c = add(3,4)
        System.out.println("c="+c)
        
    }
    
    public static int add(int a, int b)
    {
        return a+b;
    }

    /*
    装饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...)
    {
      执行语句;
      return 返回值;
    }

    */



    
}
特殊情况示例:
总结: 没有具体返回值时,返回值类型用void表示
注意: 如果返回值类型是void,那么函数中的return语句可以省略不写。
class FunctionDemo01
{
    public static void main(String[] args)
    {
        myPrint();
        myPrint();
        
    }
    
    public static void myPirnt()
    {
        System.out.println("hello world")
        return;
    }
    
    public static int add(int a,int b)
    {
        return a+b;
    }
    
    
}

2.函数的特点

函数的特点:
    1.定义函数可以将功能代码进行封装
    2.便于对该功能进行复用
    3.函数只有被调用才会被执行
    4.函数的出现提高了代码的复用性
    5.对于函数没有具体返回值的情况,返回值类型用关键字void表示
      那么该函数中的return语句如果在最后一行可以省略不写。
    注意:
        函数中只能调用函数,不可以在函数内部定义函数。
        定义函数时,函数的结果应该返回给调用者,交由调用者处理。

注意点:小误区

class FunctionDemo02
{
    public static void main(String[] args)
    {
        int x = add(3,5);  //绞肉机
        System.out.println("x="+x)
        add(3,5)
        
    }
    
    //这种形式不合适,定义函数的误区,因为直接就输出结果了。
    public static void add(int a;int b)
    {
        System.out.println(a+b);
        return;
    }
    
    //用这种格式比较适合
    public static int add(int a,int b)
    {
        return a+b;
    }
    
    
}

练习:

class FunctionDemo03
{
    public static void main(String[] args)
    {
        System.out.println("hello world")
    }
    
    /*
        需求1: 定义一个功能,完成两个整数的和的获取。
        思路:既然定义功能,就是可以用函数来体现。
            如何定义一个函数呢?
            通过两个明确来完成。
            明确1:这个功能的结果是什么?  是和,是功能的结果,所以该功能的返回值类型是int
            明确2:这个功能实现过程中是否需要未知内容参与运算? 有,加数和被加数,这就是函数的参数列表(参数的个数,参数的类型)
            注意: 返回值类型和参数类型没有直接关系。
    */
    public static int add(int a,int b)
    {
        int sum = a+b;
        return sum;
    }
    
    
    
    
    /*
        需求2: 定义一个功能,画一个矩形在控制台。
        明确1: 这个功能的结果是什么?
            答:没有结果,因为直接打印到了控制台,并未返回给调用者。用void表示
        明确2: 这个功能实现过程中是否需要未知内容参与运算?
            答:有,行和列不确定。两个。整数int
            
    */    
    public static void draw(int row,int col)
    {
        for (int x=1; x<=row; x++)
        {
            for (int y=1; y<=col, y++)
            {
                System.out.print("*")
            }
            System.out.println();
        }
    }

    /*
        需求3: 定义一个功能,比较两个数是否相等。
        明确1: 这个功能的结果是什么?
            答:有, boolean
        明确2: 这个功能实现过程中是否需要未知内容参与运算?
            答:有两个整数。
            
    */
    public static boolean equals(int a,int b)
    {
        /*
        if(a==b)
            return true;
        else 
            return flase;
        */
        //return (a == b)? true:false;    
        return a===b;
    }

    /*
        需求1: 定义一个功能,获取两个数较大的数。
        明确1: 这个功能的结果是什么?
            答:有,int
        明确2: 这个功能实现过程中是否需要未知内容参与运算?
            答:有参与比较的两个整数,int
    */    
    public static int getMax(int a, int b)
    {
        if (a>b)
            return a;
        else 
            return b;
        
    }
    
    /*
        定义功能: 打印99乘法表
    */
    public static void print99()
    {
        for(int x=1; x<=9; x++)
        {
            for(int y=1; y<=x; y++)
            {
                System.out.print(y+"*"+x+"="+y*x+"	");
            }
            System.out.println()
        }
    }
    
    /*
        根据考试成绩获取学生分数对应的等级
        90-100 A
        80-89 B
        70-79  C
        60-69  D
        60以下 E
        
        结果: 等级,字符,char
        参数: 分数,int
        
    */
    public static char getLevel(int num)
    {
        char level;
        if (num>=90n && num<=100)
            level = 'A'
        else if (num>=80 && num <=89)
            level = 'B'
        else if (num>=70 && num <=79)
            level = 'C'
        else if (num>=60 && num <=69)
            level = 'D'
        else  
            level = 'E'
        return level;
    }
}

3.函数的应用

 

4.函数的重载

1.函数的重载

重载的概念:
    在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
    
重载的特点:
    与返回值类型无关,只看参数列表
    
重载的好处:
    方便于阅读,优化了程序设计
    
重载示例:
    //返回两个整数的和
int add(int x, int y)(return x+y;)
    //返回三个整数的和
int add(int x,int y,int z)(return x+y+z;)
    //返回两个小数的和
double add(double x ,double y)(return x+y;)
    
    
    
/
*
需求:函数的重载
*
/    

class  FunctionDemo4
{
    public static void main(String [] args)
    {
        //System.out.println("Hello world")
        printCFB(9);
    }
    /*
    1.同一个类
    2.同名
    3.参数个数不同,或者,参数类型不同
    */
    
    //加法运算,两个整数的和
    public static int add1(int a,int b)
    {
        return a+b;
    }
    
    //加法运算,两个小数的和
    public short double add2(double a,double b)
    {
        return a+b;
    }
    
    //加法运算,三个整数的和
    public static int add3(int a,int b,int c)
    {
        return a+b+c;
    }
    
    /*
    打印乘法表
    */
    public static void printCFB(int num)
    {
        for(int x=1; x<=num; x++)
        {
            for(int y=1; y<=x; y++)
            {
                System.out.print(y+"*"+x+"="+y*x+"	");
                
            }
            System.out.println();
        }
    }
    
    /*
    打印标准乘法表
    */
    public static void printCFB()
    {
        printCFB(9);
    }
    
    
}
原文地址:https://www.cnblogs.com/zhongbokun/p/10586626.html