Java基础疑点分析 方法(一系列难点解析)

方法(一系列难点解析)
1、方法概述
1.1 方法的概念

方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程成为方法定义
方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用
2. 方法的定义和调用
2.1 无参数方法定义和调用

定义格式:

public static void 方法名 ( ) { 
	// 方法体; 
}

调用格式:
方法名();
注意:
方法必须先定义,后调用,否则程序将报错。
方法调用过程图解
在这里插入图片描述
总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用。完毕之后,会从栈内存中弹栈消失。
范例如下:

public class MethodTest { 
	public static void main(String[] args) { 
	//在main()方法中调用定义好的方法 
		getMax(); 
	}
	
	//定义一个方法,用于打印两个数字中的较大数,
	public static void getMax() { 
		//方法中定义两个变量,用于保存两个数字 
		int a = 10; 
		int b = 20; 
		//使用分支语句分两种情况对两个数字的大小关系进行处理
		if(a > b) { 
			System.out.println(a); 
		} 
		else { 
			System.out.println(b); 
		} 
	} 
}

2.2、带参数方法定义和调用
2.2.1 带参数方法定义

格式: public static void 方法名 ( 参数 ) { … … }

格式(单个参数): public static void 方法名 ( 数据类型 变量名 ) { … … }
范例(单个参数): public static void isEvenNumber( int number) { … … }

格式(多个参数): public static void 方法名 ( 数据类型 变量名1 ,数据类型 变量名2 ,…… ) { … … }
范例(多个参数): public static void getMax( int number1 , int number2 ) { … … }

注意:
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号( ,)分隔

2.2.2 带参数方法调用
格式: 方法名 ( 参数 ) ;

格式(单个参数): 方法名 ( 变量名/常量值 ) ;
范例(单个参数): isEvenNumber( 5 ) ;

格式(多个参数): 方法名 ( 变量名1/常量值1 ,变量名2/常量值2 ) ;
范例(多个参数): getMax ( 5,6 ) ;

注意:
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

/*
    带参数方法的定义和调用

    定义格式:
        public static void 方法名(参数) { … … }

	调用格式:
        方法名(参数);
 */
public class MethodDemo {
    public static void main(String[] args) {
        //常量值的调用
        isEvenNumber(10);

        //变量的调用
        int number = 10;
        isEvenNumber(number);
    }

    //需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
    public static void isEvenNumber(int number) {
        if(number%2 == 0) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
    }
}

2.3带返回值方法的定义和调用
格式: public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
}

范例1: public static boolean isEvenNumber( int number ) { return true ;
}

范例2: public static int getMax( int a, int b ) {
return 100 ;
}
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

public class MethodTest {
    public static void main(String[] args) {
        //在main()方法中调用定义好的方法并使用变量保存
        int result = getMax(10,20);
        System.out.println(result);

        //在main()方法中调用定义好的方法并直接打印结果
        System.out.println(getMax(10,20));
    }

    //定义一个方法,用于获取两个数字中的较大数
    public static int getMax(int a, int b) {
        //使用分支语句分两种情况对两个数字的大小关系进行处理
        //根据题设分别设置两种情况下对应的返回结果
        if(a > b) {
            return a;
        } else {
            return b;
        }
    }
}

注意:方法的返回值通常会使用变量接收,否则该返回值将无意义
2.4、方法的通用格式
在这里插入图片描述
3 形参和实参

  1. 形参:方法定义中的参数
    等同于变量定义格式,例如:int number
  2. 实参:方法调用中的参数
    等同于使用变量或常量,例如: 10 number
    4、重写和重载
    重载:发生在一个类里面,方法名相同,参数列表不同(类型不同或者数量不同)(混淆点:跟返回类型没关系)
    以下不构成重载
public double add(int a,int b)
public int add(int a,int b)

重写:发生在父类子类之间的,方法名相同,参数列表相同
重写注意事项:
1.父类中的私有方法不能被重写。
2、子类重写父类方法的时候,访问权限需要大于等于父类(public>默认>私有)

**
/*
    需求:
        使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)

    思路:
        1:定义比较两个数字的是否相同的方法compare()方法,参数选择两个int型参数
        2:定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数
        3:定义所有的重载方法,两个byte类型与两个short类型参数
        4:完成方法的调用,测试运行结果
 */
public class MethodTest {
    public static void main(String[] args) {
        //调用方法
        System.out.println(compare(10, 20));
        System.out.println(compare((byte) 10, (byte) 20));
        System.out.println(compare((short) 10, (short) 20));
        System.out.println(compare(10L, 20L));
    }

    //int
    public static boolean compare(int a, int b) {
        System.out.println("int");
        return a == b;
    }

    //byte
    public static boolean compare(byte a, byte b) {
        System.out.println("byte");
        return a == b;
    }

    //short
    public static boolean compare(short a, short b) {
        System.out.println("short");
        return a == b;
    }

    //long
    public static boolean compare(long a, long b) {
        System.out.println("long");
        return a == b;
    }
}

5.方法参数传递
5.1、方法参数是基本数据类型

在这里插入图片描述
在这里插入图片描述
5.2、方法参数是引用数据类型
在这里插入图片描述
在这里插入图片描述
参考资料:
https://zhuanlan.zhihu.com/p/58309788
https://www.bilibili.com/video/BV18J411W7cE?from=search&seid=3621457779371381782
黑马程序员笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值