Java基础之方法基础

铁佛  金牌会员 | 2024-8-16 12:18:54 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 877|帖子 877|积分 2631

方法基础

**方法(method):**就是完成特定功能的代码块!
通过方法的定义和调用,可大大进步代码的复用性与可读性!
关于方法,我们实在并不生疏,从开始学Java到如今天天都会使用main方法,具体如下:
  1. public class 测试类名 {
  2.         //main方法是一个特殊的方法,其是程序的入口
  3.     public static void main(String[] args) {
  4.                 System.out.println("hello method");
  5.         }
  6. }
复制代码
1 方法定义

在类中定义方法的固定格式如下:
  1. 修饰符 返回值类型 方法名(形式参数列表) {
  2.     方法体语句;
  3. }
复制代码
比方:
  1. public static int getSum(int a, int b) {
  2.     int sum = a + b;
  3.     return sum;
  4. }
复制代码
方法定义细节:


  • 修饰符:当下固定为public static,后续再增补其他形式
  • 返回值类型:根据该方法的具体功能而定

    • 假如方法的作用仅做输出,不需要返回数据,则为 void
    • 假如方法需要盘算一个结果并返回,则为结果类型,比如方法要求2个int数的和,则为 int

  • 方法名

    • 见名知意,方法名的形貌性要好
    • 驼峰命名法,假如只有一个单词全小写
      例:display() sum()
    • 假如多个单词构成,则第一个单词全小写,后续单词首字母大写
      例:sayHello() getMax() findStudentById()

  • 形式参数列表

    • 根据该方法的具体功能而定
    • 具体案比方下
      盘算2个int数的和,则 int getSum(int a, int b);
      盘算3个int数的平均数,则 double getAvg(int x, int y, int z);
      遍历一个数组,则 void outArray(int[] array);

  • 方法体语句:方法的具体实现,要根据方法功能书写代码
案例:
  1. package com.briup.chap03;
  2. public class Test06_Function {
  3.         // 获取两个int数较大值
  4.         public static int getMax(int a, int b) {
  5.             if(a > b)
  6.                 return a;
  7.             return b;
  8.         }
  9.         // 求三个int数的平均值
  10.         public static double getAvg(int x, int y, int z) {
  11.             double sum = x + y + z;
  12.             double avg = sum / 3;
  13.             return avg;
  14.         }
  15. }
复制代码
注意事项:


  • 带参方法定义时,参数中的数据类型变量名都不能缺少,缺少任意一个步伐将报错
  • 带参方法定义时,多个参数之间使用逗号(,)分隔
2 方法调用

方法调用格式:
​ 方法名(实际参数列表);
  1. //在上述Test06_Function类中添加测试方法
  2. public static void main(String[] args) {
  3.     // 10,20是实际参数
  4.     int max = getMax(10, 20);
  5.     System.out.println("max: " + max);
  6.     int x = 10;
  7.     int y = 20;
  8.     // a,b是实际参数
  9.     max = getMax(x, y);
  10.     System.out.println("max: " + max);
  11.     // ...
  12. }
复制代码
注意事项:


  • 方法必须先定义,再调用
  • 实际参数列表可以是常量,也可以是变量,也可以是表达式
  • 实际参数类型要匹配形式参数类型(要么完全雷同,要么能主动隐式类型转换)
  • main方法是入口方法,一个步伐中唯一,其可以调用其他普通方法
  • 其他方法不能调用main方法,普通方法可以相互调用
案例1:
​ 设计一个方法用于判断一个整数是否为闰年。
  1. package com.briup.chap03;
  2. import java.util.Scanner;
  3. public class Test06_LeapYear {
  4.         //判断是否为闰年
  5.     //函数传参过程:main方法中函数调用 isLeapYear(y);
  6.     //                                                int year = y; 将y的值传递给year,让其参与运算
  7.         public static boolean isLeapYear(int year) {
  8.                 if((year % 4 == 0 && year % 100 != 0)
  9.                                 || year % 400 == 0)
  10.                         return true;
  11.                
  12.                 return false;
  13.         }
  14.        
  15.         public static void main(String[] args) {
  16.                 Scanner sc = new Scanner(System.in);
  17.                 System.out.println("请输入一个年份: ");
  18.                 int y = sc.nextInt();
  19.                
  20.                 if(isLeapYear(y))
  21.                         System.out.println("闰年");
  22.                 else
  23.                         System.out.println("非闰年");
  24.         }
  25. }
复制代码
案例2:
​ 设计一个方法用于判断一个整数是否是水仙花数,在控制台输出所有的水仙花数。
  1. package com.briup.chap03;
  2. public class Test06_Flower {
  3.         //判断一个整数是否是水仙花数
  4.         public static boolean isFlower(int number) {
  5.             int g = number % 10;
  6.             int s = number / 10 % 10;
  7.             int b = number / 100 % 10;
  8.        
  9.             if ((g*g*g + s*s*s + b*b*b) == number) {
  10.                 return true;
  11.             } else {
  12.                 return false;
  13.             }
  14.         }
  15.        
  16.         public static void main(String[] args) {
  17.                 // 遍历所有的3位数,逐个判断是否是水仙花数
  18.                 for(int i = 100; i < 1000; i++) {
  19.                         boolean f = isFlower(i);
  20.                         if(f)
  21.                                 System.out.println(i + " 是水仙花数!");
  22.                 }
  23.         }
  24. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表