前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java学习历程之----进阶篇(三)

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

作者头像
用户5410712
发布2022-06-01 18:03:03
2310
发布2022-06-01 18:03:03
举报
文章被收录于专栏:居士说AI

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

前言

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

一、方法的定义

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

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

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

其中:

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

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

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

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

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

一个示例如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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盘以及以后的盘符。)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档