首页 > 其他分享 >方法重载及练习

方法重载及练习

时间:2023-04-27 22:34:23浏览次数:26  
标签:arr int 练习 System static 重载 方法 public out

方法的重载

  1. 在同一个类中定义了多个同名的方法,这些同名的方法具有同种的功能。
  2. 每个方法具有不同的参数类型或参数个数。这些同名的方法就构成了重载关系。

总结:同一个类中方法名相同,参数不同的方法(形参不同)叫方法的重载,方法的重载与返回值无关

参数不同:个数不同,类型不同,顺序不同

注意:参数的顺序不同可以构成重载,但是不建议

判断方法是否构成重载的条件:

  1. 在同一个类里面
  2. 方法名相同
  3. 形参是不同的

练习:

package com.itheima.Method;
//需求:使用方法重载的思想设计比较两个整数是否相同的方法?
//要求:兼容全整数类型(Byte short int long)
public class Demo10 {
    public static void compareNumber(byte b1,short b2){
        System.out.println("byte");
        System.out.println(b1==b2);
    }
    public static void compareNumber(short s1,short s2){
        System.out.println("short");
        System.out.println(s1==s2);
    }
    public static void compareNumber(int i1,int i2){
        System.out.println("int");
        System.out.println(i1==i2);
    }
    public static void compareNumber(long l1,long l2){
        System.out.println("long");
        System.out.println(l1==l2);
    }
    public static void main(String[] args) {
            compareNumber((byte)5,(byte)8);
            compareNumber((short) 10,(short) 20);
            compareNumber((int)45,(int)21);
            compareNumber((long)126,(long)45);
    }
}

运行结果:

byte
false
short
false
int
false
long
false

方法的练习

练习1:

package com.itheima.Method;
//需求:设计一个方法用于数组遍历,要求便利的结果是在一行上的
public class Demo11Test01 {
    public static void  Arr(double[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i== arr.length-1){
            System.out.print(arr[i]);
            }else {
                System.out.print(arr[i]+", ");//当i!=数组长度时打印输出数组元素再加一个逗号
            }
        }
        System.out.println("]");
    }

    public static void main(String[] args) {
        double[] arr = {11,22,33,44,55};
        Arr(arr);
    }
}

运行结果:

[11.0, 22.0, 33.0, 44.0, 55.0]

练习2:

package com.itheima.Method;
//需求:设计一个方法,求数组的最大值,并将最大值返回
public class Demo11Test02 {
    public static int getMax(int[] arr) {
        int max =arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] arr = {45,23,51,67,82,03};
        int max = getMax(arr);
        System.out.println(max);
    }
}

运行结果:

82

练习3:

package com.itheima.Method;
//定义一个方法,判断数组中的某一个数是否存在将结果返回给调用处。
public class Demo11Test03 {
    public static boolean contains(int[] arr,int number) {
        for (int i = 0; i < arr.length; i++) {
            if (number == arr[i]) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] arr = {11, 22, 33, 44, 55};
        boolean c = contains(arr,33);
        System.out.println(c);
    }
}

运行结果:

true

练习4:

package com.itheima.Method;
//需求:定义一个方法copyOfRange(int[],int from,int to)
//功能:将数组arr中从索引from(包含from)开始到索引to结束(不包含to)的元素复复新数组中,将新数组返回
public class Demo11Test04 {
    public static int[] copyOfRange(int[] arr,int from,int to) {
        //1、定义的数组
        int[] newArr = new int[to-from];
        //把原始数组arr中的from到to上对应的元素,直接拷贝到newArray中
        //伪造一个索引
        int index = 0;
        for (int i = from; i < to; i++) {
            newArr[index] = arr[i];
            index++;
        }
        return newArr;
    }

    public static void main(String[] args) {
        //1、定义原始数组
        int[] arr = {11,22,33,44,55,66};
        //2、调用方法拷贝数据
        int[] copyArr = copyOfRange(arr,1,4);
        //3、遍历copyArr
        for (int i = 0; i < copyArr.length; i++) {
            System.out.print(copyArr[i]+" ");
        }
    }
}

运行结果:
22 33 44

标签:arr,int,练习,System,static,重载,方法,public,out
From: https://www.cnblogs.com/xiao-xiao1024/p/17360426.html

相关文章

  • swagger2的常用注解,传递参数的注意使用方法
    背景介绍:刚开始的时候,在controller层使用@RequestParam的时候,发现这个参数是必须要输入值的,但是我们有时候必须查询的时候允许参数为空,使用这个注解就不行了。在集成了swagger2后,找了半天的原因,发现使用@ApiImplicitParam这个注解可以解决这个问题。对应下面的参数。所以我们可以使......
  • C++第四章课后练习题4-22
    1#include<iostream>2usingnamespacestd;3enumweekday{sunday,monday,tuesday,wednesday,thursday,friday,saturday4};5intmain()6{7inti;8weekdayd=thursday;9cout<<"d="<<d<<endl;10......
  • 函数重载
    函数形参不同:            intadd(intx,inty);            float add(floatx,floaty);形参个数不同:            intadd(intx,inty);            intadd(intx,i......
  • lua元表、元方法
    lua元表、元方法lua官方参考手册:https://www.runoob.com/manual/lua53doc/manual.html#2.4一、总结:☺1、普通的表,找不到了,或者无法进行运算的时候,考虑设置到它身上的元表的元方法2、元表的本质:其实元表本质上就是普通的表,它只是在功能上和别人不一样!实际上,它还是一张普通......
  • c++打卡练习(18)
    猜牌术魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的余牌,第二次......
  • 运算符重载
    一.问题描述:请定义一个分数类,拥有两个整数的私有数据成员,分别表示分子和分母(分母永远为正数,符号通过分子表示)。重载运算符加号"+",实现两个分数的相加,所得结果必须是最简分数。输入:第一行的两个数分别表示第一个分数的分子和分母(分母不为0)。第二行的两个数分别表示第二个......
  • Markov Chain Monte Carlo(MCMC) 方法
    MonteCarlo方法假设我们要求一个原函数并不明确的函数\(f(x)\)的在某个区间\([a,b]\)上的积分\(\theta=\int_{a}^bf(x)dx\)因为\(f(x)\)的原函数不知道,所以无法用牛顿-莱布尼茨公式计算。这里采用一种称为montecarlo的方法来模拟近似求解,它的思想如下,首先将待求的式子化......
  • Java练习题(一)
    1、下列程序编译或者运行的结果是(D)    Publicstaticvoidmain(Stringargs[]){         Inta=10;         Intb,c;         If(a>50){             b=9;}c=b+a;System.out.println(c);}       ......
  • Informix杀掉死锁的方法和查看死锁的sql语句
    Informix锁表产生的原因,要么是多个用户同时访问数据库导致该问题,要么是因为某个进程死了以后资源未释放导致的。如果是前一种情况,可以考虑将数据库表的锁级别改为行锁,来减少撞锁的机会;或在应用程序中,用setlockmodewait3这样的语句,在撞锁后等待若干秒重试。如果是后一种情况......
  • imagenomic portraiture安装方法, portraiture插件下载
    portraiture插件下载ImagenomicPortraiture是一款专业的人像磨皮插件,适用于AdobePhotoshop、AdobeLightroom和AppleAperture等软件。它提供了丰富的人像磨皮和美容修饰工具,可以帮助用户快速、高效地进行人像后期处理。imagenomicportraiture安装方法 下载好Portraiture......