方法和方法重载

目录

一、方法

1、什么是方法

2、固定格式

3、调用

4、定义含有参数的方法

5、方法的返回值

6、方法的几种调用形式

二、方法重载

 1、定义

2、方法重载细节

3、基本类型参数和引用类型参数

一、方法

1、什么是方法

  流程相对固定,可以反复使用,所有的方法都在类中

2、固定格式

修饰符 返回值类型 方法名(参数列表){

 return  返回值;

}

主方法:

自定义方法:

3、调用

void:关键字,表示返回值类型,如果方法没有返回值,必须要写void

4、定义含有参数的方法

——提高方法重用性

方法定义三要素:

方法名:

形式参数:

返回值类型:

快捷键:/**+回车  会显示形参

实例

public class 方法 {

   public static void main(String[] args) {

//调用参数,需要传递实际参数给形式参数赋值

       printAD("华为手机","Mate40 RS ,保时捷设计,致敬时代!",11999,3);

       printAD("苹果电脑","Apple MacBook Pro 16寸 ,高能,召唤高手!",18999,2);

       printAD("小米手机","为发烧而生!",3999,5);

   }

   /**

    * 打印广告信息的方法

    * @param brand 品牌

    * @param slogan 广告语

    * @param price 价格

    * @param count 次数

    */

   public static void printAD(String brand,String slogan,double price,int count){

       for (int i = 0; i < count; i++) {

           System.out.println("品牌:"+brand+",广告语:"+slogan+",价格:"+price+"元");

       }

   }

}

#######最大值实例###########

累计求和实例

5、方法的返回值

方法没有返回值,返回值类型使用void方法有返回值

返回值类型是int,那么就需要在方法中使用return关键字返回一个int类型的整数

返回值类型是double,那么就需要在方法中使用return关键字返回一个double类型的小数

返回值类型是String,那么就需要在方法中使用return关键字返回一个String类型的字符串

返回值类型是boolean,那么就需要在方法中使用return关键字返回一个boolean类型的数

实例:统计数组中大于平均值的元素有几个

public class 统计数组中大于平均值的元素有几个 {

/*需求: 定义一个方法,获取数组中所有元素的平均值并返回

      在main方法中,拿到数组的平均值

      统计数组中大于平均值的元素有几个*/

public static void main(String[] args) {

//    在main方法中,拿到数组的平均值

   int[] avg={12,13,14,15,16};

   int ave=getAvg(avg);

//    统计数组中大于平均值的元素有几个

   int sum=0;

   for (int i = 0; i < avg.length; i++) {

       if(avg[i]>ave){

          sum++;

       }

   }

   System.out.println(" 统计数组中大于平均值的元素有:"+sum+"个");

}

//定义一个方法,获取数组中所有元素的平均值并返回

   public static  int getAvg(int[] avg){

   int sum=0;

       for (int i = 0; i < avg.length; i++) {

            sum+=avg[i];

       }

   return sum/avg.length;

   }

}

6、方法的几种调用形式

  • 直接调用:适用于“无返回值”的方法(常用),和“有返回值”的方法(不常用)

方法名(参数)

 printArray(arr) ;    

  • 赋值调用:必须用于”有返回值“的方法 

 int temp = getMax(a, b);

 int max = getMax(temp, c); 

System.out.println("max:"+max);

  • 打印调用:必须用于“有返回值“的方法

/**方法的几种调用形式

1.直接调用:

适用于没有返回值的方法,方法的返回值类型是void

方法名(参数);

public static void main(String[] args) {

   int[] arr = {1, 2, 3, 4, 5};

   printArray(arr);

}

public static void printArray(int[] arr){

   for (int i = 0; i < arr.length; i++) {

       System.out.println(arr[i]);

   }

}

2.输出调用: (了解)

适用于方法有返回值,并且返回值只使用一次

System.out.println(方法名(参数));

如果没有返回值则报错

public static void main(String[] args) {

       int a= 10;

       int b =20;

       int c = 30;

       System.out.println(getMax(getMax(a,b),c));

   }

public static int getMax(int a,int b){

   return a>b?a:b;

}

3.赋值调用:

适用于方法有返回值,而且返回值多次使用

方法的返回值类型 变量名 = 方法名(参数);

System.out.println(变量名);

*/

二、方法重载

——需求:定义各种求和的方法

 1、定义

在一个类中,出现了方法名相同,但是参数列表不同的方法,叫方法重载

好处:

  •  定义方便: 不用起很多的方法名:
  •  调用方便: 像调用一个方法;

2、方法重载细节

  • 参数的个数不同
  • 参数的数据类型不同
  • 参数数据类型的顺序不同

注意事项

  • 方法重载,只和参数类型有关,和方法的返回值类型和方法参数的名字没有关系 

3、基本类型参数和引用类型参数

基本类型:四类八种

引用数据类型:数组,Random,Scanner及其它“类”类型

当它们做方法的参数时,其运行机制稍有不同

  1. 基本数据类型作为参数传递:形参改变不影响实参
  2. 引用数据类型作为参数传递:形参改变影响实参 引用数据类型作为参数传递:传递的是对象的地址值

结果:两个引用变量,指向堆内存中同

一个对象一个变量修改了对象的值,另一个变量在访问,就是修改后的

案例:

#############查找数组中指定的元素#########

#######双十一销售统计#########

查找数组中指定的元素

int[] sales = {8799,8001,9210,9800,10246,10232};

需求:查找数组中指定的元素

找到了返回元素的索引 10246 4

找不到返回-1 8888

*/

       public static void main(String[] args) {

           int[] sales = {8799,8001,9210,9800,10246,10232,9800};

//使用键盘输入,获取用户要查找的数字

           Scanner sc = new Scanner(System.in);

           System.out.println("请输入你要查找的数字:");

           int num = sc.nextInt();

           int i = find(sales, num);

           System.out.println("您查找的数字"+num+",在数组中的索引位置为:"+i);

           int i2 = find2(sales, num);

           System.out.println("您查找的数字"+num+",在数组中的索引位置为:"+i2);

       }

       /*

        定义一个方法:查找数组中指定的元素

        三要素:

        方法名: find

        参数列表:int[] arr,int num

        返回值类型:int

        */

       public static int find2(int[] arr,int num){

//定义一个int类型的变量,初始值为-1,记录数字的索引

           int index = -1;

//遍历数组,获取每一个元素

           for (int i = 0; i < arr.length; i++) {

//使用遍历得到的元素和要查找的数进行比较

               if(arr[i]==num){

//找到了,给变量index,从新赋值

                    index=i;

//break;//结束for循环

               }

           }

//返回index

           return index;

       }

       /*

        定义一个方法:查找数组中指定的元素

        三要素:

        方法名: find

        参数列表:int[] arr,int num

        返回值类型:int

        */

       public static int find(int[] arr,int num){

//遍历数组,获取每一个元素

           for (int i = 0; i < arr.length; i++) {

//使用遍历得到的元素和要查找的数进行比较

               if(arr[i]==num){

//找到了,返回元素对应的索引

                   return i;

               }

           }

//没找到对应的数字,返回-1

           return -1;

       }

   }

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值