面向对象基础部分——成员方法

举报
周小末天天开心 发表于 2022/11/19 16:47:00 2022/11/19
【摘要】 面向对象成员方法基础学习

一、引入

        某些情况下,我们要需要定义成员方法(简称方法)。如人类:除了有一些属性外( 年龄,姓名..),我们人类还有一 些行为,如:可以说话、跑步..。这时就要用成员方法才能完成。

例题:

调用getSum成员方法,进行计算两个数的和,并返回计算后的值

 
public class Method01 { 
 
	public static void main(String[] args) {
 
		Person p1 = new Person();
		
		//调用getSum方法,同时num1=10, num2=20
		//把 方法 getSum 返回的值,赋给 变量 returnRes
		int returnRes = p1.getSum(10, 20); 
		System.out.println("getSum方法返回的值=" + returnRes);
	}
}
 
class Person {
 
	//添加getSum成员方法,可以计算两个数的和
 
	public int getSum(int num1, int num2) {
		int res = num1 + num2;
		return res;
	}
}

方法分析:

1)public 表示方法是公开的
2)int :表示方法执行后,返回一个 int 值
3)getSum 为方法名
4)(int num1, int num2) 形参列表,2个形参,可以接收用户传入的两个数
5) return res; 表示把 res 的值, 返回

输出结果为:

QQ图片20221014162603.png

二、思考

        思考为什么需要成员方法。

看下面一个案例:

遍历一个数组,并输出数组中的值。

使用for循环进行遍历

import java.util.Scanner;
public class Method02 {
    public static void main(String[] args) {
 
        int[] arr = new int[5];
        Scanner myScanner = new Scanner(System.in);
        System.out.println("====请输入五个整数====");
        // 遍历数组进行赋值
        for(int i = 0; i < arr.length; i++) {
            arr[i] = myScanner.nextInt();
        }
 
        // 遍历数组并输出
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
 
    }
}

 这样遍历虽然可行,但如果需要多次进行数组遍历的话就会很麻烦,代码量就会很多。所以我们就要使用引入成员方法,是我们的程序更加简洁和便利。

三、成员方法

好处

1)提高代码的复用性

2)可以将实现的细节封装起来,然后供给其他用户进行使用

定义

定义格式:

访问修饰符 返回数据类型 方法名(形参列表..) { //方法体

        语句;

        return 返回值;

}

分析:

1)访问修饰符 主要包含 public 公共的,protected 受保护的,private 私有的 和 默认的(讲到包时会细讲)

2)返回数据类型 表示成员方法的返回值类型,void表示没有返回值

3)方法名 表示为该方法的名字

4)形参表列 表示成员的方法输入 如:cal(int n) , sum(int num1 , int num2)

5)方法体 表示为了实现某一功能的代码块

6)return 表示返回数据,可以不写

细节

1)调用带参数的方法时,一定要对应着参数列表传入相同类型的数据

2)实参和形参的类型要一致或兼容、个数、顺序必须一致

3)一个方法最多有一个返回值,返回类型可以为任意类型,包含基本数据类型和引用数据类型

4)如果方法要求有返回值,则方法体中最后执行的语句必须是return语句,而且返回值类型要和return的值一样

5)如果方法是 void,则方法体中可以没有 return 语句,或者 只写 return

方法跨类调用演示

1.同一个类中的方法调用方式为 直接调用即可

2.跨类方法调用则需要通过对象名调用

public class MethodDetail {
    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("继续执行sayOK()~~~");
    }
 
    //跨类中的方法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()被执行");
    }
}

执行程序,得到结果为:

QQ图片20221014212656.png

总结

成员方法基础部分知识(基础一定要打牢,一点一滴学起),后续会推出 方法传参机制、递归调用、重载等文章。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。