目录
成员方法
一、方法快速入门
方法就是用来记录对象动作的,通过4个例子说明方法的使用
public class Method01{
//编写一个main方法
public static void main(String[] args){
Person p1 = new Person();
p1.name = "王俊凯";
System.out.println("姓名是" + p1.name + "年龄是" + p1.age);
p1.age = 23;
p1.speak();
p1.cal01();
p1.cal02(10);
//调用 getSum 方法, 同时 num1=10, num2=20
//方法getsum会返回一个值,将这个值赋给一个变量returnRes,然后输出
int returnRes = p1.getSum(10,20);
System.out.println("returnRes=" + returnRes);
}
}
/*1)
2) 添加 cal01 成员方法,可以计算从 1+..+1000 的结果
3) 添加 cal02 成员方法,该方法可以接收一个数 n, 计算从 1+..+n 的结果
4) 添加 getSum 成员方法,可以计算两个数的和
*/
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("我是一个好人");
}
//2) 添加 cal01 成员方法,可以计算从 1+..+1000 的结果
//基本原理同上,只是方法名从speak变成了cal01
//此方法会计算1+2+...+1000的结果并输出
public void cal01(){
int res = 0;
for(int i = 1; i <= 1000; i++){
res += i;
}
System.out.println("1+..+1000的结果是" + res);
}
//3) 添加 cal02 成员方法,该方法可以接收一个数 n, 计算从 1+..+n 的结果
//1. (int n) 形参列表, 表示当前有一个形参 n, 可以接收用户输入
public void cal02(int n){
int res = 0;
for(int i = 1; i <= n; i++){
res += i;
}
System.out.println("1+..+" + n + "的结果是" + res);
}
//4) 添加 getSum 成员方法,可以计算两个数的和
//1.int :表示方法执行后, 返回一个 int 值(void没有返回值)
//2. (int num1, int num2) 形参列表, 2 个形参, 可以接收用户输入的两个数
//3. return res; 表示把 res 的值, 返回
public int getSum(int num1, int num2){
int res = num1 + num2;
return res;
}
}
重点部分:第一、()形参列表;
第二、void : 表示方法没有返回值;int :表示方法执行后, 返回一个 int 值
第三、return res; 表示把 res 的值, 返回
第四、方法getsum会返回一个值,将这个值赋给一个变量returnRes,然后输出
二、方法的调用机制原理(重要)
步骤说明:第一步:在main方法内新建一个对象
第二步:在main栈内调用方法,计算机会开辟独立的栈空间(不会相互影响)
第三步:执行方法完毕或者执行到return时,返回到调用该方法的地方(此时这个方法的空间被释放了)
第四步:返回了一个值,将这个值赋给一个变量 即int res = 30
第四步:继续执行此main方法内的其他代码,执行完毕后,退出整个程序
三、方法的优点
通过一道打印数组的练习题来说明
public class Method02{
//编写一个main方法
public static void main(String[] args){
//请遍历一个数组 , 输出数组的各个元素值
//传统方法
int[][] map = {
{0,0,1},{1,1,1},{1,1,3}};
/*for(int i = 0; i < map.length; i++){
for(int j = 0; j < map[i].length; j++){
System.out.print(map[i][j] + "\t");
}
System.out.println();
}
*/
//新建一个MyTools对象
MyTools tool =