• JAVAEE学习day04方法的定义和重载


    1.方法定义的格式

      方法就是完成特定功能的代码块

      修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...){

        方法体;

        return 返回值;

      }

      修饰符:

        初学者只需记住public static

      返回值类型:

        用于限定返回值数据类型

      方法名:

        一个名字,方便我们调用方法

      参数类型:

        用于接受调用方法时传入的数据的类型

      参数名:

        用于接收调用方法时传入的数据的变量

      方法体:

        完成功能的代码

      return:

        结束方法,把返回值带给调用者

    2.调用方法的三种方式:

      a.单独调用
        方法名()
      b.打印调用
        System.out.println(方法名())
      c.赋值调用
        方法名(参数1,参数2...)

    3.方法的注意事项:

      a.方法应该定义在类中,但是不能在方法中再定义方法
      b.方法的定义顺序无所谓
      c.方法定义之后不会自己执行,只有调用才会执行
      d.如果方法由返回值,必须有return
      f.return后边的返回值类型与方法定义的返回值类型相同
      g.对于void类型,最后的return可以省略
      h.一个方法中可以有多个return语句,但是必须保证只有一个能被执行到

    4.break,continue和return的区别

      break:只能用在switch和循环中,表示结束这个循环
      continue:只能用在循环中,表示跳过此次循环,继续下一个循环
      return:用在方法中,表示此方法到此结束

    5.方法重载的概述和基本使用

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

      方法重载特点:

        a.与返回值类型无关,只看方法名和参数列表

        b.在调用时,虚拟机通过参数列表的不同来区分同名方法

    /*
     * 需求:比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
     *     并在main方法中进行测试
     */
    public class MethodTest {
        public static void main(String[] args) {
            // 调用
            System.out.println(compare(10, 20));
            System.out.println("-------------");
            System.out.println(compare((byte)10, (byte)20));
            System.out.println("-------------");
            System.out.println(compare((short)10, (short)20));
            System.out.println("-------------");
            //System.out.println(compare((long)10, (long)20));
            System.out.println(compare(10L, 20L));
        }
    
        // 两个byte类型的
        public static boolean compare(byte a, byte b) {
            System.out.println("byte");
            // 第一种写法
            // boolean flag = a==b?true:false;
            // return flag;
            // 第二种写法
            // boolean flag = a == b;
            // return flag;
            // 第三种写法
            return a == b;
        }
    
        // 两个short类型的
        public static boolean compare(short a, short b) {
            System.out.println("short");
            return a == b;
        }
    
        // 两个int类型的
        public static boolean compare(int a, int b) {
            System.out.println("int");
            return a == b;
        }
    
        // 两个long类型的
        public static boolean compare(long a, long b) {
            System.out.println("long");
            return a == b;
        }
    }

    6.方法中参数传递

      a.方法的形式参数为基本数据类型

         形式参数的改变不影响实际参数。

          形式参数:用于接收实际数据的变量

          实际参数:实际参与运算的变量

       b.方法的形参为引用数据类型

         形式参数的改变直接影响实际参数。引用的时参数的地址

    // 参数传递的经典案例
    
    class Test{
    
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            System.out.println("a:"+a+",b:"+b); //a:10,b:20
            change(a,b);
            System.out.println("a:"+a+",b:"+b); //a:10,b:20
         // a,b的值在前后并没有发生改变
    
            int[] arr = {1,2,3,4,5}; 
            change(arr);
            System.out.println(arr[1]); // 4
          //数组的值发生改变 
        }
    
        // 参数时基本数据类型
        public static void change(int a,int b) { 
            System.out.println("a:"+a+",b:"+b); //a:10,b:20
            a = b;       //a=20
            b = a + b;   //b=40
            System.out.println("a:"+a+",b:"+b); //a:20,b:40
        }
        // 参数是引用数据类型
        public static void change(int[] arr) { //arr={1,2,3,4,5};
            for(int x=0; x<arr.length; x++) {
                if(arr[x]%2==0) {
                    arr[x]*=2;
                }
            }
                //arr={1,4,3,8,5};
        }
    }

        

    7.打印所有的水仙花数

    public class MethodTest2 {
        //把所有的水仙花数打印在控制台
        public static void printFlower() {
            for(int x=100; x<1000; x++) {
                int ge = x%10;
                int shi = x/10%10;
                int bai = x/10/10%10;
                
                if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x){
                    System.out.println(x);
                }
            }
        }
        
        public static void main(String[] args) {
            printFlower();
        }
    }
  • 相关阅读:
    Android开源项目收藏
    ubuntu修改ip获取方式(静态,动态)
    linux内核调用用户空间程序
    linux 改变目录下所有文件及其子文件夹下的权限
    jquery remove() empty()
    jquery之attr()和removeAttr() prop的使用场所
    jquery 获取对象的八种总结
    html子标签浮动父标签无法扩充
    静态代码块
    java static介绍
  • 原文地址:https://www.cnblogs.com/BRIGHTM00N/p/10467847.html
Copyright © 2020-2023  润新知