方法
Java方法类似于其它语言的函数,是一段用来实现特定功能的代码片段,一般情况下定义一个方法包含以下语法
访问修饰符 返回值类型 方法名(参数列表){
方法体;
}
- 访问修饰符:方法允许被访问的权限范围,可以是public、protected、private,甚至可以省略,其中public方法表示该方法可以被其它任何代码调用。
- 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型制定为void;如果方法有返回值,则需要制定返回值的类型,使用return语句带回返回值
- 方法名:定义的方法的名字,必须使用合法的标识符
- 参数列表:传递给方法的参数列表,参数可以有多个,多个参数见以逗号隔开。
/**
* 实现整数求和
*/
public class text {
public static int Add(int a,int b){
return a+b;
}
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int x= scanner.nextInt();
int y= scanner.nextInt();
System.out.println( Add(x,y));
}
}
交换整数,但是实参和形参是单纯的值传递,形参不会改变实参的值
/**
* 交换整数
*/
public static void swap(int a,int b) {
int ret=a;
a=b;
b=ret;
}
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int x= scanner.nextInt();
int y= scanner.nextInt();
System.out.println("交换之前 x= "+x+" y= " +y);
swap(x,y);
System.out.print("交换之后 x= "+x+" y= " +y);
}
这种情况下c语言都是使用传址调用,但是java中没有指针的概念,需要借用数组完成。
public static void swap(int []arr) {
int ret=arr[0];
arr[0]=arr[1];
arr[1]=ret;
}
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int x= scanner.nextInt();
int y= scanner.nextInt();
int []arr={x,y};
System.out.println("交换之前 x= "+arr[0]+" y= " +arr[1]);
swap(arr);
System.out.print("交换之后 x= "+arr[0]+" y= " +arr[1]);
}
重载
- 重载就是有相同的函数名称,但形参不同的函数
重载的规则
- 方法名称必须相同
- 参数列表必须不同(个数、类型不同等等)
- 方法的返回值不影响重载
public static int Add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int x = 2, y = 8;
System.out.println(Add(x, y));
double a=4.9,b=5.1;
System.out.println(Add(a,b));//这种情况下,由于Add参数是int,int,则形参和实参类型不匹配,error
}
调用同一个函数,可以实现不同类型的计算。像以下这种,同一个函数,可以实现int类型的加法,可以实现double类型的加法
public static int Add(int a, int b) {
return a + b;
}
public static int Add(double a, double b) {
return (int)(a + b);
}
public static void main(String[] args) {
int x = 2, y = 8;
System.out.println(Add(x, y));
double a=4.9,b=4.1;
System.out.println(Add(a,b));
//调用Add(double a, double b)
}
当只有返回值不同时,程序会报错,因为返回值类型不会重载
例题:用户登录,且用户只有三次输入密码的机会
public static void LoadIn() {
System.out.println("请输入密码");
Scanner scanner = new Scanner(System.in);
int count = 3;
while (count--!= 0) {
String password = scanner.nextLine();
if (password.equals("123456")) {
System.out.println("登陆成功!");
break;
}
else if(count==0){
System.out.println("登陆失败");
break;
}
else
System.out.println("登陆失败,请重新输入!");
}
}
public static void main(String[] args) {
LoadIn();
}
}