方法的声明和调用

方法的格式

在这里插入图片描述
1 返回值类型与返回值的数据类型需要保持一致
2 通过方法名+参数列表调用方法,方法名与参数列表(参数的类型和参数的个数)必须保持一致
3 若方法声明了“返回值类型”,说明该方法运行后有结果
4 若调用者需要用到该结果,则声明一个变量接收
5 若方法运行后不需要返回结果给调用者,则返回值类型处声明为void

public static void main(String[] args) {
        //调用一个已经声明的方法
        int result = myMethod(5);//实际参数
        System.out.println("方法运行结果:"+result);
        //调用99乘法表
        print99();
        //调用compare
        System.out.println(compare(10,20));
    }
        //声明一个方法
public static int myMethod(int i){//形式参数(未知数),用于接收调用者传递的实际参数
        int r=i*2+1;
        return r;
    }
        //打印99乘法表
public static void print99(){
      for (int i = 0; i <= 9; i++) {
          for (int j = 1; j < i; j++) {
            System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
       //判断两数是否相等
public static boolean compare(int a,int b){
        return a==b;
    }

JVM编译器自动编译的流程:
先在当前.java源文件的相同路径下找,是否有对应类的.java源文件,如果有则编译,如果没有则找是否有.class字节码文件,若有则执行,若没有则报错

跨类调用方法(还可以跨.java源文件的类)

public class MethodTest03 {
    public static void main(String[] args) {
        //类名.方法
        A.method(100,200);
    }

}
class A{
    public static int method(int n,int m){
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        return n*m;
    }
}

参数的值传递

基本数据类型: 当基本数据类型作为参数传递给方法,方法运行结束后,原值不会发生改变
引用数据类型:当将引用数据类型作为参数传递给方法,方法运行结束后,原属性值会发生改变
基本数据类型

public static void main(String[] args) {
        int i=10;
        int j=20;
        System.out.println("main方法调用add方法前:i="+i+"j="+j);//i=10 j=20
        add(i,j);
        System.out.println("main方法调用add方法后:i="+i+"j="+j);//i=10 j=20

    }
    public static void add(int a,int b){//只要方法运行,参数一定有值
        System.out.println("add方法运行前: a="+a+"b="+b);//a=10 b=20
        a+=1;
        b+=2;
        System.out.println("add方法运行后: a="+a+"b="+b);//a=11 b=22
    }

在这里插入图片描述
引用数据类型

public static void main(String[] args) {
        Number num = new Number();
        num.a=10;
        num.b=20;
        System.out.println("main方法调用add方法前:num.a="+num.a+"num.b="+num.b);//num.a=10 num.b=20

        add(num);
        System.out.println("main方法调用add方法后:num.a="+num.a+"num.b="+num.b);//num.a=11 num.b=22

    }
    public static void add(Number num){//相当于Number num = new Number();
        System.out.println("add方法运行前:num.a="+num.a+"num.b="+num.b);//num.a=10  num.b=20
        num.a+=1;
        num.b+=2;
        System.out.println("add方法运行后:num.a="+num.a+"num.b="+num.b);//num.a=11  num.b=22
    }
    public static void add(int a,int b){
        a+=1;
        b+=2;
    }
}
class Number{
    //属性
    int a;
    int b;

在这里插入图片描述

方法的重载

同一个类中,
方法名相同,
参数列表不同(参数的个数,参数的类型)
与返回值无关

public static void main(String[] args) {
       add(10,20);
    }
    //计算两个整数的和
    public static int add(int a,int b){
        return a+b;
    }
    //计算三个整数的和
    public static int add(int a,int b,int c){
        return a+b+c;
    }
    public static double add(double d1,double d2){
        return d1+d2;
    }
    public static void add(String str,boolean boo){

    }
    public  static int add(boolean boo,String str){
        return 0;
    }
}

方法中可以调用其他方法

public static void main(String[] args) {
        double a = max(10.1, 20.1);
        System.out.println(a);
        double b = max(4.5, 3.2, 6.2);
        System.out.println(b);
    }
public static double max(double d1,double d2){
        return d1>d2?d1:d2;
    }
public static double max(double d1,double d2,double d3){
//        double max1=d1>d2?d1:d2;
//        max1=max1>d3?max1:d3;
//        return max1;
        double m = max(d1, d2);
        m = max(m, d3);
        return m;
    }

在这里插入图片描述
1 不能 参数列表相同,不能构成重载
6 不能 参数列表形同,不能构成重载
7 不能 方法名不同

方法重写

1.重写发生在子类和父类之间。
2.重写的方法要和父类的方法名一致。
3.重写方法的返回值和参数不能改变。

重写和重载的区别

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChinaJDK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值