类与对象之成员方法的注意方法的细节
成员方法的定义:
访问修饰符 返回数据类型 方法名(形参列表…) {//方法体
语句;
return 返回值;
}
1. 访问修饰符的细节
(作用是控制 方法使用的范围)如果不写默认访问,[有四种: public, >protected, 默认, private],
2. 返回数据类型的细节:
2.1 方法体最多有一个返回值,可以是数组
先看代码:
public class MethodDetail{
public static void main(String[] args){
AA a = new AA();
//接收返回值需要用数组来接收
int[] resGet= a.getSum(2,3);
System.out.println("n1和n2的和"+resGet[0]+" n1和n2的差"+resGet[1]);
}
}
class AA{
//1.方法体最多有一个返回值,可以是数组
public int[] getSum(int n1,int n2){
int[] res = new int[2];
res[0] = n1+n2;
res[1] = n1-n2;
return res;
}
}
(1)方法体中最多有一个返回值,可以是数组。正如代码片中,它的方法中需要用 int[],而非 int 或者 void;用int 两个值n1,n2作方法体数组中的各个值的实现
(2)方法体中记得 return 返回值
(3).在主函数接收此函数的返回值时,需要新声明一个数组接收 int resGet
(4)插播一条 AA a = new AA();记得加括号,否则识别不出AA类;此外,括号中的叫方法体,括号外的“标题”叫方法
2.2 返回类型可以为任意类型,包含基本类型或引用类型(数组,对象)
2.3 如果方法要求有返回数据类型,则方法体中最后的执行语句必须为 return 值; 而且要求返回值类型必须和 return 的值类型一致或兼容
所谓兼容,就是低精度可以转高精度;int 低精度转高精度 double
public double f1(){
double c1 = 5.0;
int d1 = 5;
return d1;//int -> double
而 double 转 int 是不行的
2.4 如果方法是 void,则方法体中可以没有 return 语句,或者 只写 return
2.5 方法名遵循驼峰命名法,最好见名知义,表达出该功能的意思即可, 比如 得到两个数的和 getSum, 开发中按照规范
在实际工作中,最好见明知意
3.形参列表的细节
4.方法调用的细节
同一个类中的方法调用,可以直接调用
public class MethodDetail02{
//编写一个 main方法
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("我是一个好人");
}
}
跨类中的方法A调用B方法:需要对象名调用
注意:调用要先声明呦,声明 B b = new B();
而在调用时,是 对象.方法。我经常写成了 类.方法。要多注意。
写类时,class后面没括号 ,正确如: class A{ }
public class MethodDetail02{
//编写一个 main方法
public static void main(String[] args){
A a = new A();
a.sayOk();
a.m1();
}
}
class A{
//同一个类中的方法调用,可以直接调用
public void print(int n){
System.out.println("print 方法被调用 n "+n);
}
public void sayOk(){//sayOk 调用 print 直接调用即可
print(10);
System.out.println("我是一个好人");
}
//跨类中的方法A调用B方法:需要对象名调用
public void m1(){
//创建B对象
System.out.println("B类方法被调用,hi未执行");
B b = new B();
b.hi();
System.out.println("B类方法被调用,已经执行");
}
}
class B{
public void hi(){
System.out.println("B类方法 hi被调用");
}
}