方法
定义与语法
- 方法又叫做函数,是一段特定功能的代码块,方法提高程序的复用性和可读性
- 例如:有了方法,可以将重复利用的代码提炼出来,然后在需要执行这段代码的地方去调用即可
- 语法:
访问权限修饰符(其他的修饰符,例如static 返回值类型 方法名(参数尅性1 形参1,参数类型2 形参2……)){形参列表
方法体
return 返回值
}
- 方法的格式说明:
- 修饰符:目前就使用public static,public 是访问权限修饰符,公共方法,谁都能够调用;
- static,静态方法,描述的方法可以直接调用;
- 没有返回值的情况下,使用void
- 返回值类型:就是功能结果的数据类型
- 方法名:见名知意,必须是小写,遵守驼峰命名,方便调用
- 代码示例:
package class_0905;
public class class_def {
public static void main(String[] args) {
getMenu();
}
public static void getMenu(){
System.out.println("----------菜单---------");
System.out.println("1.宫爆鸡丁 22");
System.out.println("2.小炒肉 25");
System.out.println("3.红烧狮子头 30");
System.out.println("4.大盘鸡 27");
System.out.println("5.孜然蘑菇 26");
}
}
方法参数
- 形参:方法定义时的参数称为形参,用于接收实际参数的
- 需要设置参数的类型和名称
- 在调用放大时,传入的参数叫做实参,实参就是实际上要参与运算的
- 调用方法或者函数的时候需要传参,参数一般为变量,需要进行定义
- 参数类型:参数的数据类型
- 参数名:变量名,可以在放大中直接使用
- 方法提语句:实际上要完成的代码
- 注意:若当前方法中不要使用形参,形参列表中可以为空
- 实参和形参的类型要相互兼容,且:实参的取值范围要小于或者等于形参类型的取值范围;例如:都是整数,形参的long可以接收实参的int类型的值;但是形参为byte时,不能接收实参为int类型值
- 代码示例:
import javafx.scene.shape.Line;;
public class class_def {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的行数:");
int line = input.nextInt();
printStar(line);
}
public static void printStar(int lineNum){
int sum = 0;
for(int i = 1;i<=lineNum;i++){
for(int j = i;j<lineNum;j++)
{
System.out.print(" ");
}
for(int j =1;j<=i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
请输入要打印的行数:
8
*
***
*****
*******
*********
***********
*************
***************
- 在调用的方法中,如果我们定义的方法有参数,就必须在调用方法的同时传入这个值,即给当前方法中的参数赋值,而这个传入的值我们称为实际参数,也就是实参
- 实参:传入的参数值;形参:接收实参传过来的值
- 注意:实参名和形参名可以相同,也可以不同
- 形参是一个变量,实参是一个值,传参就是将一个值给一个形参赋值
方法的返回值
- return :结束的方法,代码执行到return,表示方法结束
- 返回值:就是功能的结果过,由return带给调用者
- 注意:若当前方法没有返回值,即返回值类型为void,呢么当前方法可以不写return
- return即表示结束一个方法,也可以将返回值返回给调用当前放大的调用者
- return返回值时一次只能返回一个值,不可以返回多个值
- 一个方法执行可以有多个renturn,但被执行的只能有一个,需要进行判断
- 代码示例:
package class_0905;
import java.util.*;
public class class_return {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个年份:");
int y = input.nextInt();
boolean actualResult =isRunYear(y);
if(actualResult){
System.out.println("闰年");
}else {
System.out.println("平年");
}
}
public static boolean isRunYear(int year){
if((year%4==0 && year%100!=0) ||year%400==0){
return true;
}else {
return false;
}
}
}
方法的重载
- 方法重载:overloading method
- 解释:在类中可以创建多个方法,他们具有相同的名字,但是具有不同弄的参数和不同的定义
- 注意:方法的返回值不能作为重载的条件
- 代码示例:
public class class_return {
public static void main(String[] args) {
float num = add(1.0F,2.1F);
System.out.println(num);
int num_1 = add(1,2);
System.out.println(num_1);
}
public static int add(int a,int b){
return a+b;
}
public static float add(float a,float b){
return a+b;
}
}