非零基础自学Java (老师:韩顺平)

✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】

第7章 面向对象编程(基础部分)

文章目录

      • 非零基础自学Java (老师:韩顺平)
      • 第7章 面向对象编程(基础部分)
        • 7.2 成员方法
          • 7.2.1 基本介绍
          • 7.2.2 成员方法快速入门
          • 7.2.3 方法的调用机制原理
          • 7.2.4 为什么需要成员方法
          • 7.2.5 成员方法的好处
          • 7.2.6 成员方法的定义
          • 7.2.7 注意事项和使用细节
          • 7.2.8 类定义的完善

7.2 成员方法

7.2.1 基本介绍

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

7.2.2 成员方法快速入门

举个栗子

/**
 * ClassName: Person
 * date: 2022/9/2 15:11
 *
 * @author DingJiaxiong
 */
public class Person {
    String name;
    int age;
    public void speak(){
        System.out.println("我是一个好人");
    }

    public void cal01(){
        int res = 0;
        for (int i = 0; i < 1000; i++) {
            res += i;
        }
        System.out.println("cal01方法 计算结果=" + res);
    }

    public void cal02(int n){
        int res = 0;
        for (int i = 0; i <= n; i++) {
            res += i;
        }
        System.out.println("cal02方法 计算结果=" + res);
    }

    public int getSum(int num1 , int num2){
        int res = num1 + num2;
        return res;
    }

}

调用类

/**
 * ClassName: Method01
 * date: 2022/9/2 15:09
 *
 * @author DingJiaxiong
 */

public class Method01 {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.speak();
        p1.cal01();
        p1.cal02(5);
        p1.cal02(10);

        int returnRes = p1.getSum(10 ,20);
        System.out.println("getSum方法返回的值= " + returnRes);
    }
}

运行结果

7.2.3 方法的调用机制原理

7.2.4 为什么需要成员方法

一个需求:遍历一个数组,输出数组的各个元素值

/**
 * ClassName: MyTools
 * date: 2022/9/2 15:18
 *
 * @author DingJiaxiong
 */

public class MyTools {
    public void printArr(int[][] map){
        System.out.println("========");
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                System.out.print(map[i][j] + "_");
            }
            System.out.println();
        }
    }
}

调用类

/**
 * ClassName: Method02
 * date: 2022/9/2 15:18
 *
 * @author DingJiaxiong
 */

public class Method02 {
    public static void main(String[] args) {
        int[][] map = {{0,0,1},{1,1,1},{1,1,3}};

        MyTools tool = new MyTools();

        tool.printArr(map);
    }
}

运行结果

7.2.5 成员方法的好处
  • 提高代码的复用性
  • 可以将实现的细节封装起来,然后供其他用户来调用即可
7.2.6 成员方法的定义
访问修饰符 返回数据类型 方法名(形参列表...){
    //方法体
    语句;
    return 返回值;
}
  • 形参列表:表示成员方法输入 cal(int n) , getSum(int num1, int num2)
  • 返回数据类型:表示成员方法输出, void 表示没有返回值
  • 方法主体:表示为了实现某一功能代码块
  • return 语句不是必须的。
7.2.7 注意事项和使用细节
/**
 * ClassName: AA
 * date: 2022/9/2 15:25
 *
 * @author DingJiaxiong
 */

class AA {
    //方法不能嵌套定义
//    public void f4(){
//        public void f5(){
//
//        }
//    }

    public void f3(String str,int n){

    }

    //返回多个结果,用数组
    public int[] getSumAndSub(int n1,int n2){
        int[] resArr = new int[2];
        resArr[0] = n1 + n2;
        resArr[1] = n1 - n2;
        return resArr;
    }

    public double f1(){
        double d1 = 1.1 * 3;
        int n = 100;
        return n;
    }

    public void f2(){
        System.out.println("Hello1");
        System.out.println("Hello1");
        System.out.println("Hello1");

        int n = 10;
        return;
    }

}

调用类

/**
 * ClassName: MethodDetail
 * date: 2022/9/2 15:25
 *
 * @author DingJiaxiong
 */

public class MethodDetail {
    public static void main(String[] args) {
        AA aa = new AA();
        int[] res = aa.getSumAndSub(1 , 4);

        System.out.println("和 = " + res[0]);
        System.out.println("差 = " + res[1]);

    }
}

运行结果

【访问修饰符(作用是控制方法使用的范围)】

如果不写默认访问,[有四种: public, protected, 默认, private]

【返回数据类型】

  • 一个方法最多有一个返回值 [如何返回多个结果 → 返回数组 ]
  • 返回类型可以为任意类型,包含基本类型或引用类型(数组,对象)
  • 如果方法要求有返回数据类型,则方法体中最后的执行语句必须为 return 值; 而且要求返回值类型必须和 return 的值类型一致或兼容
  • 如果方法是 void,则方法体中可以没有 return 语句,或者 只写 return ;

【方法名】

遵循驼峰命名法,最好见名知义,表达出该功能的意思即可, 比如 得到两个数的和 getSum, 开发中按照规范

【形参列表】

  • 一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开,
  • 参数类型可以为任意类型,包含基本类型或引用类型。
  • 调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
  • 方法定义时的参数称为形式参数,简称形参;方法调用时的传入参数称为实际参数,简称实参,实参和形参的类型要一致或兼容、个数、顺序必须一致

【方法体】

里面写完成功能的具体的语句,可以为输入、输出、变量、运算、分支、循环、方法调用,但里面不能再定义方法,即:方法不能嵌套定义。

【方法调用细节说明】

  • 同一个类中的方法调用:直接调用即可。

  • 跨类中的方法A类调用B类方法:需要通过对象名调用。

    跨类的方法调用和方法的访问修饰符相关

7.2.8 类定义的完善

更多推荐

非零基础自学Java (老师:韩顺平) 第7章 面向对象编程(基础部分) 7.2 成员方法