方法
方法
一、方法完整语法结构
[修饰符列表] [static] 返回值类型 方法名(形参列表) [异常声明]{
// 方法体:业务逻辑代码
return 返回数据;
}
二、四大分类
1.无参无返回值(场景:单纯执行动作,无需入参和结果)
// 静态无参无返回值,main可直接调用
public static void printSystemTime(){
System.out.println("当前系统时间:"+new Date());
}
2.无参有返回值(场景:查询固定数据,无需入参)
// 返回系统默认用户名
public static String getOsUser(){
return System.getProperty("user.name");
}
3.有参无返回值(场景:基于入参处理数据,无需返回结果)
// 根据传入分数打印评级
public static void printScoreLevel(int score){
if(score>=90) System.out.println("优秀");
else System.out.println("合格");
}
4.有参有返回值(高频使用,业务核心逻辑)
// 计算两个小数的和
public static double add(double num1,double num2){
return num1+num2;
}
三、核心概念
1. 静态方法 VS 实例方法
| 对比维度 | 静态方法(static) | 实例方法(无static) |
|---|---|---|
| 调用方式 | 类名.方法名 / 直接调用 | 必须先new对象,对象.方法名 |
| 访问权限 | 只能访问静态变量/静态方法,不能直接访问实例资源 | 可随意访问静态、实例所有资源 |
| 内存时机 | 类加载时分配内存,全局唯一 | 对象创建时分配内存,每个对象独立 |
2.方法重载(Overload)
定义:同一个类中,多个方法方法名必须相同,参数列表必须不同(参数个数、类型、顺序任意一种不同)
// 合法重载
public int add(int a,int b){}
public double add(double a,double b){}
// 非法重载:仅返回值不同,编译报错
public long add(int a,int b){}
3. 形参 VS 实参
- 形参:方法定义时括号内的变量,属于局部变量,仅方法内生效,不占用实际内存
- 实参:调用方法时传入的真实数据,可以是常量、变量、表达式
- 底层原理:Java只有值传递!基础类型传递数值副本,引用类型传递地址副本,永远不会修改原变量本身
tip:
- 错误1:方法内部定义方法。Java禁止方法嵌套,所有方法同级写在类中
- 错误2:有返回值分支遗漏return。if-else分支必须保证所有执行路径都有返回值,否则编译失败
- 错误3:静态方法调用非静态方法。静态方法优先加载,此时对象还未创建,无法调用
- 错误4:混淆重载和重写。重载是类内多方法,重写是父子类之间方法覆盖

浙公网安备 33010602011771号