zoukankan      html  css  js  c++  java
  • Java 方法相关知识点

    方法

    1.方法概述

    1.1什么是方法

    • 方法是讲具有独立功能的代码块组织称一个整体,使之成为具有特殊功能的代码集

    注意:

    • 方法必须先创建后使用,该过程称为方法定义
    • 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
    package com.itheima_01;
    
    public class MethodDemo {
        public static void main(String[] args) {
        //调用方法
            isEvenNumber();
    
        }
    
        //需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
        public static void isEvenNumber(){
            //定义变量
            int num = 10;
    
            //判断该数是否是偶数
            if(num % 2 == 0){
                System.out.println("是偶数");
            }else {
                System.out.println("是奇数");
            }
        }
    }
    

    小案例(带参数):

    package com.itheima_01;
    /*
    * 需求:
    *       设计一个方法用于打印两个数字中的较大值,数据来源于方法参数
    * 思路:
    *       1.定义一个方法,用于打印两个数字中的较大值
    *       2.为方法定义两个参数,用于接收两个数字
    *       3.使用分支语句分两种情况对两个数字的大小关系进行处理
    *       4.在main()方法中调用定义好的方法(使用常量)
    *       5.在main()方法中调用定义好的方法(使用变量)
    *
    * */
    public class MethodDemo02 {
        public static void main(String[] args) {
            //使用常量
            getMax(10,20);
            //使用变量
            int a = 99;
            int b = 55;
            getMax(a,b);
        }
        //定义一个方法,用于打印两个数字中的较大值
        public static void getMax(int a,int b){
            //使用分支语句分两种情况对两个数字的大小关系进行处理
            if (a > b){
                System.out.println(a);
            }else {
                System.out.println(b);
            }
        }
    
    }
    

    1.2方法的通用格式

    格式:

    public static 返回值类型 方法名(参数){

    ​ 方法体;

    ​ return 数据;

    }

    定义方法时,要做到两个明确

    • 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void,如果有,写对应的数据类型
    • 明确参数:主要是明确参数的类型和数量

    调用方法时

    void类型的方法,直接调用即可

    非void类型的方法,推荐使用变量接受调用

    2.方法重载

    2.1方法重载概述

    方法重载是指在同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

    • 多个方法在同一个类中
    • 多个方法具有相同的方法名
    • 多个方法的参数不相同,类型不同或者数量不同

    2.2方法重载特点

    • 重载仅仅对应方法的定义,和方法的调用无关,调用方式参照标准格式
    • 重载仅仅针对同一个类中方法的名称与参数进行识别,和返回值无关,换句话说就是不能通过返回值来确定两个方法是否相互构成重载。在方法调用的时候,JVM会通过参数的不同来区分同名的方法。
    //函数重载和返回值无关,下列两个函数没有重载关系
    public static void f(int a){
        //方法体
    }
    public static int f(int a ){
        //方法体
    }
    

    案例:

    package com.itheima_01;
    
    public class MethodDemo03 {
        public static void main(String[] args) {
            //调用方法
            int result1 = sum(11,22);
            System.out.println(result1);
            double result2 = sum(11.1,12.2);
            System.out.println(result2);
            int result3 = sum(11,22,33);
            System.out.println(result3);
        }
        //需求1:求两个int类型数据和的方法
        public static int sum(int a,int b){
            return a + b;
        }
        //需求2:求两个double类型数据和的方法
        public static double sum(double a,double b){
            return a + b;
        }
        //需求3:求三个int类型数据和的方法
        public static int sum(int a,int b,int c){
            return a + b +c;
        }
    
    
    
    }
    

    3.方法的参数传递

    3.1 基本类型的参数传递

    对于基本数据类型的参数,形式参数的改变,不影响实际参数的值

    package com.itheima_01;
    
    public class MethodDemo04 {
        public static void main(String[] args) {
            int number = 100;
            System.out.println("改变前:"+ number);
            change(number);
            System.out.println("改变后:"+ number);
        }
        public static void change(int number){
            number = 200;
        }
    }
    //改变前:100
    //改变后:100
    

    3.2引用类型的参数传递

    对于引用类型的参数,形式参数的改变会影响实际参数的值。

    package com.itheima_01;
    
    public class MethodDemo05 {
        public static void main(String[] args) {
            int[] arr = {10,20,30};
            System.out.println("调用change方法前arr[1]:"+arr[1]);
            change(arr);
            System.out.println("调用change方法后arr[1]:"+arr[1]);
        }
        public static void change(int[] arr){
            arr[1] = 200;
        }
    }
    //调用change方法前arr[1]:20
    //调用change方法后arr[1]:200
    

    数组遍历小案例

    package com.itheima_01;
    
    public class MethodDemo06 {
        public static void main(String[] args) {
            int[] arr = {11,22,33,44,55};
            //调用遍历方法
            printArray(arr);
        }
        //定义数组通用遍历方式
        public static void printArray(int[] arr){
            System.out.print("[");
            for (int x = 0;x < arr.length;x++){
                if (x == arr.length - 1){   //判断是否是最后一个元素来确定加不加逗号
                    System.out.print(arr[x]);
                }else {
                    System.out.print(arr[x]+",");
                }
            }
            System.out.println("]");
        }
    }
    
  • 相关阅读:
    HDU1029 Ignatius and the Princess IV
    UVA11039 Building designing【排序】
    UVA11039 Building designing【排序】
    POJ3278 HDU2717 Catch That Cow
    POJ3278 HDU2717 Catch That Cow
    POJ1338 Ugly Numbers(解法二)
    POJ1338 Ugly Numbers(解法二)
    UVA532 Dungeon Master
    UVA532 Dungeon Master
    POJ1915 Knight Moves
  • 原文地址:https://www.cnblogs.com/icyhblog/p/14083907.html
Copyright © 2011-2022 走看看