1. 成员方法的定义
访问修饰符 返回数据类型 方法名(形参列表..) {//方法体
语句;
return 返回值;
}
-
- 形参列表:表示成员方法输入
cal(int n)
, getSum(int num1, int num2)
- 返回数据类型:表示成员方法输出,
void
表示没有返回值 - 方法主体:表示为了实现某一功能代码块
-
return
语句不是必须的。
2. 注意事项和使用细节
MethodDetail.java
-
- 访问修饰符 (作用是控制 方法使用的范围),如果不写默认访问,[有四种:
public, protected, 默认, private
] - 返回数据类型
- 一个方法最多有一个返回值【思考,如何返回多个结果 返回数组】
- 案例:
public class MethodDetail {
public static void main(String[] args) {
AA a = new AA();
int[] res = a.getSumAndSub(1, 4);
System.out.println("和=" + res[0]);
System.out.println("差=" + res[1]);
}
}
class AA{
public int[] getSumAndSub(int n1,int n2){
int[] resArr = new int[2];
resArr[0] = n1 + n2;
resArr[1] = n1 - n2;
return resArr;
}
}
- 这样都是可行的,有返回值
- 要求返回值类型必须和
return
的值类型一致或兼容
- 如果方法是
void
,则方法体中可以没有 return
语句,或者 只写 return
;
这样就是不可行的
- 细节3: 调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
AA a = new AA();
int[] res = a.getSumAndSub(1, 4);
System.out.println("和=" + res[0]);
System.out.println("差=" + res[1]);
byte b1 = 1;
byte b2 = 2;
a.getSumAndSub(b1, b2);//byte -> int
//a.getSumAndSub(1.1, 1.8);//double ->int(×)
- 细节4: 实参和形参的类型要一致或兼容、个数、顺序必须一致
//a.getSumAndSub(100);//× 个数不一致
a.f3("tom", 10); //ok
//a.f3(100, "jack"); // 实际参数和形式参数顺序不对
class CC{
public void f3(String str, int n){
}
3. 方法调用细节说明
public class MethodDetail02 {
public static void main(String[] args) {
A a = new A();
a.sayOk();
}
}
class A{
//同一个类中的方法,直接调用即可
public void print(int n) {
System.out.println("print方法被调用 n=" + n);
}
public void sayOk(){ //sayOk方法调用 print 方法
print(10);
System.out.println("继续执行sayOk方法...");
}
}
public class MethodDetail02 {
public static void main(String[] args) {
A a = new A();
a.m1();
}
}
class A{
// 跨类中的方法A类调用B类方法:需要通过对象名调用
public void m1(){
//创建B对象,然后调用方法即可
System.out.println("m1方法被调用了");
B b = new B();
b.hi();
System.out.println("m1继续执行");
}
}
}
class B{
public void hi(){
System.out.println("B类中的hi方法被执行了");
}
}