方法与重载

it2026-03-12  2

方法

定义:代码块,便于分类和观察; 方法名称 -> 小驼峰式

public static void farmer(){ System.out.println("生产"); } public static void seller(){ System.out.println("销售"); } public static void cook(){ System.out.println("加工"); }

1.方法应定义在类中, 但是不能再方法中再定义方法形成嵌套。

2.void对应return;

方法重载(overload)

定义多个方法的名称一样,但是参数列表不一样。

例如:

public static int sum(int a, int b){ return a+b; } public static int sum(int a, int b, int c){ return a+b+c; } public static int sum(int a, int b, int c, int d){ return a+b+d; }

相同但是会根据输入的数据不同来自动选择使用的方法。

方法重载的有关因素:

1.参数个数不同;

2.参数类型不同;

3.参数的多类型顺序不同;

方法重载的无关因素:

1.与参数名称无关;

2.与返回值类型无关;

例题:比较两个数据是否相等
public class methodOverload { public static void main(String[] args) { byte a = 1, b = 2; short c = 3, d = 3; int e = 345, f = 345; System.out.println(isSame(a,b)); System.out.println(isSame(c,d)); System.out.println(isSame(e,f)); } public static boolean isSame(byte a, byte b){ System.out.println("Byte method executed!"); if(a == b) return true; else return false; } public static boolean isSame(int a, int b){ System.out.println("Int method executed!"); if(a == b) return true; else return false; } public static boolean isSame(short a, short b){ System.out.println("Short method executed!"); if(a == b) return true; else return false; } }

编译器的常量优化

short res = 5 + 8; System.out.println(res);

"5""8"默认都是int类型的,本来赋值给short会报错, 但是因为有编译器的常量优化所以在生成class文件的时候就会直接将其计算为13,然后赋值给short,又因为编译器的隐式强制转换,所以13被转换成short赋值给res,但是要注意这种情况仅适用于全为常量的情况。


Switch

1.对象只能是基本数据类型的byte/short/char/int或是引用数据类型的String字符串/enum枚举。

2.case的前后顺序可以颠倒。

3.没有break会穿透到下一个case。

最新回复(0)