zoukankan      html  css  js  c++  java
  • 20130331java语言基础笔记函数

    1.函数的定义:函数就是定义在类中的具有特定功能的一段独立的小程序;函数也称为方法;
    2.函数的格式实例和讲解:
    class FunctionDemo
    {
        public static void main(String[] args)
        {
            int c = add(3,4);
            System.out.println("c="+c);
        }
        /*函数的格式(返回值类型和参数类型没有直接关系):
        修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,……)
        {
            执行语句;
            return返回值;
        }
        返回值类型:函数运行后的结果的数据类型;
        参数类型:是形式参数的数据类型;
        形式参数:是一个量变,用于存储调用函数时传递给函数的实际参数;
        实际参数:传递给参数的具体数值;
        return:用于结束函数;
        返回值:该函数运算后的结果,该结果会返回给调用者;
        */
        public static int add(int a,int b)
        {
            return a+b;
            /*
            int sum = a+b;
            return sum;
            */
        }
        /*
        特殊情况:
        功能没有具体的返回值;
        这时return的后面直接用分号结束;
        返回值类型怎么体现呢?因为没有具体值,所以不可以写具体的数据类型;
        在java中只能用一个关键字来表示这种情况,关键字是:void;
        总结:没有具体返回值时,返回值类型用void来表示;
        注意:如果返回值类型是void,那么函数中的return语句可以省略不写;
        public static void add(int a,int b)
        {
            System.out.println(a+b);
        }
        */
    }
    3.函数的特点:
      定义函数可以将功能代码进行封装;
      便于对该功能进行复用;
      函数只有被调用才会被执行;
      函数的出现提高了代码的复用性;
      对于函数没有返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写;
      注意:函数中只能调用函数,不可以在函数内部定义函数;
      定义函数时,函数的结果应该返回给调用者,交由调用者处理;
    class functionDemo1()
    {
        public static void main(String[] args)
        {
            /*myPrint函数是在main函数内部定义函数,编译将不通过;
            public static void myPrint()
            {
                System.out.println("Hello World);
            }
            myPrint();
            */
        }
    }
    class FunctionDemo2
    {
        public static void main(String[] args)
        {
            System.out.println(add(3,4));
            //add(3,4);
            //int c = add(3,4);
            //System.out.println("c="+c);
        }
        public static int add(int a,int b)
            {
                return a+b;
            }
        /*函数的结果应该返回给调用者,交由调用者处理,所以定义加法功能以下定义虽然可以但并不合理,这是初学者定义函数的误区;
        public static void add(int a,int b)
        {
            System.out.println(a+b);
        }
        */
    }
    4.函数练习1:
    class FunctionDemo
    {
        public static void main(String[] args)
        {
            draw(8,4);
            boolean result = equals(1,2);
            System.out.println(result);
            int max = getMax(8,5);
            System.out.println(max);
        }
        /*
        需求1:定义一个功能,画出一个矩形在控制台;
        明确一:这个功能的结果是什么?
            没有结果,因为直接打印到了控制台,并未返回给调用者,用void;
        明确二:这个功能实现过程中是否需要未知内容参与运算?
            有,行和列不确定,两个,整数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();
            }
        }
        /*
         需求2:定义一个功能,比较两个数是否相等;
         明确一;这个功能的结果是什么?
            有,boolean;
         明确二:这个功能实现过程中是否需要为之内容参与运算?
            有,两个整数;
        */
        public static boolean equals(int a,int b)
        {
            /*方法一;
            if(a==b)
                return true;
            else//else可以省略;
                return false;
            */
            /* 方法二:
            return (a==b)?true:false;
            */
            /*方法三;
            boolean x;
            if(a==b)
                x = true;
            else
                x = false;
            */
            //方法四:
            return a==b;
        }
        /*
         需求3:定义一个功能,获取两个整数中较大的那个数;
         明确一;这个功能的结果是什么?
            有,其中一个数,int;
         明确二:这个功能实现过程中是否需要为之内容参与运算?
            有,两个整数;
        */    
        public static int getMax(int a,int b)
        {
            /*
            if(a>b)
                return a;
            else
                return b;
            */
            return a>b?a:b;
        }
    }
    5.函数练习2:
    public class FunctionDemo
    {
        public static void main(String[] args)
        {
            print99();
            char c = getLevel(87);
            System.out.println(c);
        }
        /*
        定义一个功能,打印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+"\t");
                }
                System.out.println();
            }
        }
        /*
        根据考试成绩获取学生分数对应的等级;
        90~100    A
        80~89    B
        70~79    C
        60~69    D
        60以下    E
        */
        public static char getLevel(int num)
        {
            /*
            if(num>=90 && num<=100)
                return 'A';
            if(num>=80 && num<=89)//这里else可以不用,因为匹配上一条后有return结束函数就不会往下执行了;
                return 'B';
            */
            char level;
            if(num>=90 && num<=100)
                level = 'A';
            else if(num>=80 && num<=89)//此处要用if的第三种格式,即要用else,因为不用else的话匹配上条后还会继续往下判断影响性能;
                level = 'B';
            else if(num>=70 && num<=79)
                level = 'C';
            else if(num>=60 && num<=69)
                level = 'D';
            else
                level = 'E';
            return level;
        }
    }
    6.函数的重载(overload)与重载练习:
    重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可;
    重载的特点:与返回值类型无关,只看参数列表;
    重载的好处:方便于阅读,优化了程序设计;
    重载示例:
    class FunctionDemo
    {
        public static void main(String[] args)
        {
            int x = add(3,4,8);
            System.out.println(x);
            printCFB(6);
            printCFB();
        }
        /*
        函数的重载:
        1.同一个类;
        2.同名;
        3.参数个数不同,or 参数类型不同;
        4.函数的重载和返回值类型无关;
        5.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败;
        */
        //加法运算,两个整数的和
        public static int add(int a,int b)
        {
            return a+b;
        }
        //加法运算,两个小数的和
        public static double add(double a,double b)
        {
            return a+b;
        }
        //加法运算,三个整数的和
        public static int add(int a,int b,int c)
        {
            /*方法一
            return a+b+c;
            */
            //方法二
            return add(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+"\t");
                }
                System.out.println();
            }
        }
        /*打印标准乘法表*/
        public static void printCFB()
        {
            printCFB(9);
        }
        /*
        public static void printCFB()
        {
            for(int x=1;x<=9;x++)
            {
                for(int y=1;y<=x;y++)
                {
                    System.out.print(y+"*"+x+"="+y*x+"\t");
                }
                System.out.println();
            }
        }
        */
    }

  • 相关阅读:
    爬虫开头
    JAVA练习笔记---copyfile
    String
    十进制转化为八进制--栈实现
    一、给计算机专业的同学,计算机鸡汤
    数值的整数次方
    剪绳子-动态规划-贪婪
    二进制中为1 的数字个数
    机器人运动范围——回溯法应用
    矩阵的路径
  • 原文地址:https://www.cnblogs.com/lisu/p/2997897.html
Copyright © 2011-2022 走看看