Java学习历程之----进阶篇(三)

    只有永远躺在泥坑里的人,才不会再掉进坑里。——黑格尔


前言

      前面我们说到,类是描述了一组有相同特性(属性)和相同行为(方法)的一组对象的集合,上一周我们学习了如何定义一个类,本周我们学习如何定义类的成员方法。

一、方法的定义

声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型,其结构如下图所示:

方法即为对象定义相应的操作,定义的一般格式如下:

<修饰符><返回类型><名字>(<参数列表>)<块>

其中:

<名字>是方法名,它必须使用合法的标志符。

<返回类型>说明方法返回值的类型。如果方法不返回任何值,则声明为void,java对待返回值的要求很严格,方法返回值必须与所说明的类型相匹配,如果方法说明有返回值,比如说int,那么方法分支返回时都必须返回一个整数值。

<修饰符>段可以包含几个不同的修饰符,其中限定访问权限的修饰符包括public,protected和private,public访问修饰符表示该方法可以被任何其他代码调用;而private表示方法只能被类中的其它方法调用,在类外不可见;Protected表示该方法是受保护的,只可以被同一包及其子类的实例对象访问。

<参数列表>是传送给方法的参数表,表中各元素间以逗号分隔,每个元素由一个类型和一个标志符组成。

<块>表示方法体,是要实际执行的代码段。

一个示例如下:

public class Student {               //创建一个学生类
    public StringBuffer printInfo(Student st) {    
        StringBuffer sb = new StringBuffer();
        sb.append("学生姓名:"+st.Name+"\n 学生年龄:"+st.Age+"\n 学生性别:"+st.isSex());
        return sb;
    }
}

上述代码创建了一个名称为 printInfo 的方法,其返回值类型为 StringBuffer(引用数据类型)。该方法需要传递一个 Student 类型的参数,最后需要将一个 StringBuffer 类型的数据返回。

二、方法的调用

一般来说,可以通过以下方式来调用成员方法:

methodName({paramList})

关于方法的参数,经常会提到形参与实参,形参是定义方法时参数列表中出现的参数,实参是调用方法时为方法传递的参数。

方法的形参和实参具有以下特点:

1) 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在方法内部有效,方法调用结束返回主调方法后则不能再使用该形参变量。

2) 实参可以是常量、变量、表达式、方法等,无论实参是何种类型的量,在进行方法调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值、输入等办法使实参获得确定值。

3) 实参和形参在数量、类型和顺序上应严格一致,否则会发生“类型不匹配” 的错误。

4) 方法调用中发生的数据传送是单向的,即只能把实参的值传送绐形参,而不能把形参的值反向地传送给实参。因此在方法调用过程中,形参的值发生改变,而实参中的值不会变化。

三、实战

实参如何将值传递给形参,形参又如何发生改变呢?接下来我们一起来看看吧!

3.1 

package second;
public class Test {
    public int returnMin(int m,int n) {
        return Math.min(m,n);    // m和n是形参,函数返回较小值
    }
    public static void main(String[] args) {
        int x = 69;
        int y = 96;             // x和y是实参
        Test t = new Test();
        int i = t.returnMin(x,y);   //将实参传递给形参
        System.out.println(i);
    }
}

3.2 

package second;
public class Class2 {
    public int add(int x) {      //形参
        x += 30;
        System.out.println("形参 x 的值:"+x);
        return x;
    }
    public static void main(String[] args) {
        int x = 150;    //实参
        System.out.println("调用 add() 方法之前 x 的值:"+x);
        Class2 t = new Class2();
        int i = t.add(x);   //将实参传递给形参
        System.out.println("实参 x 的值:"+x);
        System.out.println("调用 add() 方法的返回值:"+i);
    }
}

小编有话说 

     迟到的圣诞快乐+提前的元旦快乐,祝大家每天都快快乐乐~以后我也不定期和大家分享一些冷门知识吧,显得小编有话说……(Q:为什么电脑从C盘开始?A:计算机诞生之初,数据存储主要靠软盘,软盘驱动器按照顺序占据了A和B盘的位置,后来随着硬盘的应用,就出现了C盘以及以后的盘符。)

编辑:玥怡居士|审核:世外居士

往期精彩回顾

Java学习历程之----进阶篇(二)

Java学习历程之----进阶篇(一)

Java学习历程之----基础篇总结(十二)

公众号ID:IT进阶之旅

扫码关注最新动态

嗨,你还在看吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值