一、格式:
修饰符 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2,……){
方法体;
return 返回值;
}
修饰符:目前来说,修饰符固定写法 public static
返回值类型:用来限定方法的返回值类型,与return具体返回的值有关
方法名:随便起,要符合标识符命名规则
参数:
两种参数:形参(方法定义时的名字参数),实参(将来调用方法时实际传入的值)
参数类型:基本数据类型或者引用数据类型
参数名:随便起,要符合标识符命名规则
方法体:描述方法要干什么
return:表示结束整个方法,将结果返回给调用者,必须写在方法的最后一行
返回值:方法最终给调用者的结果,类型要与返回值类型有关联
注意事项:
1、方法不能嵌套定义!!方法和方法是平级关系
2、方法不调用,不执行
3、如果一个方法有返回值,将来调用的时候,有两种处理方式:
1)使用一个变量接收方法的返回值 推荐
2)直接使用方法的结果
4、方法定义的时候,如果明确了有返回值类型,方法定义内部必要有一个return返回值
二、例子:
1.定义一个求两个int类型数之和的方法
//方法一:
public class ceshi {
public static int sum(int a,int b){
int res=a+b;
return res;
}
public static void main(String[] args){
int a1,b1;
int c=sum(4,5);
System.out.println(c);
}
}
//方法二:
public class ceshi {
public static int sum(int a,int b){
int res=a+b;
return res;
}
public static void main(String[] args){
System.out.println(sum(4,5));
}
}
2.比较两个数的最大值
public class ceshi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(bijiao(a,b));
}
public static int bijiao(int c, int d) {
if (c > d) {
return c;
} else {
return d;
}
}
}
3.键盘录入行数和列数,输出对应的星形
public class FunctionTest2 {
public static void printStars(int row, int col) {
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= col; j++) {
System.out.print("*\t");
}
System.out.println();
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int row = sc.nextInt();
System.out.println("请输入列数:");
int col = sc.nextInt();
printStars(row,col);
}
}
三、方法重载
定义:
在同一个类中,方法名相同,方法参数列表(参数的个数,参数类型)不同,与返回值无关的现象。
注意:
1.传参的时候,注意数据类型的大小关系。
2.传递的时候,根据顺序从左向右的传参顺序。
例子:
public static int sum(int a, int b) {
return a + b;
}
public static long sum(int x, long y, int z) {
return x + y + z;
}
public static void main(String[] args) {
//需求1: 求两个数之和
int a = 3;
int b = 4;
System.out.println(sum(a, b));
//需求2: 求三个数之和
int c = 5;
//JVM会根据方法名和参数列表在类中查找对应的方法并调用,若没有,则报错
System.out.println(sum(a, b, c));
long b1 = 10L;
System.out.println(sum(a, b1, c));
}
}
四、方法重写
定义:重写是发生在继承关系中的,返回值类型,方法名,参数列表都和父类一模一样,只是实现不一样,使用Overload检测方法能否重写。
java中有4个权限修饰符,权限从小到大依次为:public protected 默认 private
注意事项:
1.子类无法重写父类中的私有成员方法。
2.子类重写父类方法的时候,权限修饰符不能比父类中的权限还要小,只能大于等于父类方法的权限。
3.子类可以重写父类中的非私有,非静态的成员方法。
五、final
如果父类中的方法只想让子类继承使用,并不像让子类重写,java提供了一个关键字给我们使用做限制:final
它可以修饰类,变量,成员方法。
final关键字使用特点: 类:被final修饰的类,类不能被继承。 变量:被final修饰的变量,变量变常量(自定义常量) 方法:被final所修饰的方法,子类只能继承使用,不能进行重写。
final修饰变量,变量变自定义常量使用的注意事项: 1、注意辨别被final修饰的变量,具体是什么值不能改 2、被final修饰的变量,必须要手动赋值之后才能使用,并且只能赋值一次 3、必须在构造方法结束之前手动赋值(方案1:使用构造代码块进行赋值 方案2:在构造方法内部进行赋值)