方法的基本格式
无参数
public class DemonWithParamter{
public static void main(String[] args){
// 使用方法需要在main函数中调用
}
public static void method01(){
System.out.println("这是无参数输入的方法") // 直接调用该方法 输出语句
}
}
有参数
public class DemonWithoutParamter{
public static void main(String[] args){
// 使用方法需要在main函数中调用
}
public static int method02(int a, int b){
System.out.println("这是有参数输入的方法")
return a + b; // 输出类型为int类型
}
}
有无return
对于void, return可写可不写,但是在void条件下,return后不可以跟任何输出值;
定义了输出类型的方法,需要进行return输出
注意事项
- 方法应该定义在类当中,但是不可以在方法中再定义方法。不能嵌套
- 方法定义的前后顺序无所谓
- 方法定义之后,如果希望执行,一定要调用:单独调用,打印调用,赋值调用
- 如果方法有返回值,那么必须写 “return 返回值”,不能没有
- return后面的返回值类型,必须和方法的返回值类型,对应起来
- 对于void没有返回值的方法,不能写return后面的返回值,只能写return。
- 对于void方法的最后一行return也可以不写
- 一个方法当中有多个return语句,但是必须保证只有一个被执行到
三种调用格式
- 单独调用
- 打印调用,System.out.println(方法名称(参数))
- 赋值调用:数据类型 变量名称 = 方法名称(参数)
public class Demon02MethodDefine {
public static void main(String[] args){
// 单独调用
sum(5,6);
System.out.println("======================");
// 打印调用
System.out.println(sum(10,20));
// 赋值调用
int input = sum(5,6);
System.out.println("======================");
method(); // 无输出语句
}
public static int sum(int a, int b){
int result = a + b;
return result;
}
// 打印输出固定十次文本字符串
public static void method(){
for (int i = 0; i < 10; i++) {
System.out.println("Hello World"+i);
}
}
}
方法重载
方法重载与下列因素有关
- 参数个数不同
- 参数类型不同
- 参数的多类型顺序不同
方法重载与下列因素无关
- 与参数的名称无关
- 与返回值的类型无关
其实常用的println()
就是一个典型的方法重载,在IDEA中可以按住ctrl
点击该命令,可以看到该命令的定义格式。
打字练习中…
public class Demon07MethodOverload {
public static void main(String[] args){
System.out.println(sum(10, 20)); // 两数相加
System.out.println(sum(10, 20, 30)); // 三个数相加
System.out.println(sum(10, 20, 30, 40)); // 四个数相加
}
public static int sum(int a, int b){
System.out.println("有两个参数即可");
return a + b;
}
public static int sum(int a, int b, int c){
System.out.println("有三个参数即可");
return a + b + c;
}
public static int sum(int a, int b, int c, int d){
System.out.println("有三个参数即可");
return a + b + c + d;
}
public static int sum(int a, double b){
return (int) (a + b);
}
public static int sum(double a, int b){
return (int) (a + b);
}
public static int sum(double a, double b){
return (int) (a + b);
}
// 错误写法:与方法的返回值类型无关
/*public static double sum(int a, int b){
return a + b;
}*/
// 错误写法:与参数的名称无关
/*public static int sum(int x, int y){
return x + y;
}*/
}
一些练习
// 定义个一个方法 求出1-100所有的数字和
public class Demon04Sum {
public static void main(String[] args){
System.out.println(sum(1,100));
}
// 定义了【a,b】的所有数字和
public static int sum(int a, int b){
int count = 0;
for (int i = a; i < b+1; i++) {
count +=i;
}
return count;
}
}
/*
* 题目要求:
* 定义一个方法,用来打印指定次数的HelloWorld
* */
public class Demon05MethodPrint {
public static void main(String[] args){
print(2);
}
public static void print(int num){
for (int i = 0; i < num; i++) {
System.out.println("HelloWorld"+(i+1));
}
}
}
/*
* 题目要求:
* 比较两个数据是否相等
* 参数类型分别式两个byte,两个short,两个int,两个long类型
* 并在main方法中测试
* */
public class Demon08MethodOverloadSame {
public static void main(String[] args){
byte a = 10;
byte b = 20;
System.out.println(isSame(a , b));
System.out.println(isSame((short) a, (short) b));
System.out.println(isSame(15,20));
System.out.println(isSame(20L,20L));
}
public static boolean isSame(byte a, byte b){
System.out.println("两个byte参数的方法执行!");
return a == b;
}
public static boolean isSame(short a, short b){
System.out.println("两个short参数的方法执行!");
return a == b;
}
public static boolean isSame(int a, int b){
System.out.println("两个int参数的方法执行!");
return a == b;
}
public static boolean isSame(long a, long b){
System.out.println("两个long参数的方法执行!");
return a == b;
}
}