目录
- 基本介绍
在某些情况下,我们在需要定义成员方法(简称方法)。比如人类:除了有一些属性外(年龄、姓名等),我们人类还有一些行为比如:可以说话,跑步,通过学习还可以做算术题等等。这时就要用成员方法才能完成。
public class example{
public static void main(String[] args){
//使用方法:先创建对象,后调用方法
Person p1 = new.Person(); //创建对象
p1.speak();//调用方法
}
}
class Person{ //类
//属性
String name;
int age;
//方法(成员方法)
public void speak(){
System.out.println("XXXXX");
}
}
/*
public表示访问修饰符 void表示返回数据类型 speak表示方法名
()里面表示形参列表 {}表示方法体
*/
例:
public class Method01{
public static void main(String[] args) {
//使用方法
//1.方法写好后,如果不去调用(使用),不会输出
//2.先创建一个对象,如何调用方法即可
Person p1 = new Person();//创建对象
p1.speak();//调用方法
p1.cal01();//调用cal01
p1.cal02(10);//调用ca102方法,同时给n = 10
//调用getSum方法,同时num1=10,num2=20
//把 方法 getSum返回的值赋给变量returnRes
int returnRes = p1.getSum(10,20);
System.out.println("getSum返回的值=" + returnRes);
}
}
class Person{//类
String name;
int age;
//方法(成员方法)
//添加speak成员方法,输出“我是一个好人”
//解读
//1.public:表示方法是公开
//2.void:表示方法没有返回值
//3.speak():speak是方法名,()里面是形参列表
//4.{}是方法体,可以写我们要执行的代码
//5.System.out.println()表示我们的方法是输出一句话
public void speak() {
System.out.println("我是一个好人");
}
//添加cal01 成员方法,可以计算从1+...+1000的结果
public void cal01(){
int res = 0;
for(int i = 0; i <= 1000; i++){
res += i;
}
System.out.println("cal01 计算结果=" + res);
}
//添加cal02 成员方法,该方法可以接受一个数n,计算从1+..+n的结果
//解读
//1.(int n)是形参列表,表示当前有一个形参n,可以接受用户输入
public void cal02(int n){
int res = 0;
for(int i = 0; i <= n; i++){
res += i;
}
System.out.println("cal02 计算结果=" + res);
}
//添加getSum成员方法,可以计算两个数的和
//解读
//1.public表示方法是公开的
//2.int:表示方法执行后,返回一个int值
//3.getSum: 方法名
//4.(int num1,int num2)形参列表,两个形参,可以接受用户传入的两个数
//return res;表示把res的值返回
public int getSum(int num1,int num2){
int res = num1 + num2;
return res;
}
}
一、成员方法的定义
访问修饰符 返回参数类型 方法名(形参列表){ //方法主体
语句;
return 返回值;
}
1.形参列表:表示成员方法的输入,比如课件说的cal01(int n), getSum(int num1,int num2)
2.返回数据类型:表示成员方法输出,void表示没有返回值
3.方法主体:表示为了实现某一功能的代码块
4. return语句不是必须的
二、方法的调用机制原理
三、成员方法的好处
1.提高代码的复用性
2.可以将实现的细节封装起来,然后供其他用户来调用
四、注意事项和使用细节
1.访问修饰符
访问修饰符作用是控制方法使用的范围;如果不写访问修饰符,就是默认访问修饰符,
访问修饰符分为四种【public , protected, 默认, private】
2.返回数据类型
①一个方法最多有一个返回值
②返回类型可以为任意类型,包含基本类型或引用类型(数组,对象)
③如果方法要求有返回数据类型,则方法体中最后的执行语句必须为return值;而且要 求返回值类型必须和return的值类型一致或兼容
④如果方法是void,则方法体中可以没有return语句或者只写return
3.方法名
遵循驼峰命名法,最好见名知意,表达出该功能的意思即可,开发中按照规范
4.形参列表
①一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开
②参数类型可以为任意类型,包含基本类型或引用类型
③调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
④方法定义时的参数称为形式参数,简称形参;方法调用时的传入参数称为实际参数,
简称实参。形参和实参的类型要一致或兼容、个数、顺序必须一致!
5.方法体
里面写完成功能的具体的语句,可以为输入、输出、变量、运算、分支、循环、方法调
用,但里面不能再定义方法,即:方法不能嵌套定义
- 方法调用的细节说明
1.同一个类中的方法调用:直接调用即可。
2.跨类中的方法A类调用B类:需要通过对象名调用。比如:对象名.方法名(参数);
3.特别说明:跨类的方法调用和方法的访问修饰符相关(暂时提一下,后续还会详讲)
- 类定义的完善
五、成员方法传参机制
1.基本数据类型的传参机制
结论:基本数据类型传递的是值(值拷贝),形参的任何改变不影响实参!
2.引用数据类型的传参机制
结论:引用数据类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参!