当前课程知识点:“做中学”Java程序设计 >  第3章使用面向对象基础语法 >  3.3为类添加方法 >  Video

返回《“做中学”Java程序设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《“做中学”Java程序设计》慕课在线视频列表

Video课程教案、知识点、字幕

一个类除了属性

另外一个非常重要的成员 那就是方法了

属性描述了对象的数据信息而方法则是可以操纵和处理这些数据的

下面呢 结合上一次的实例 我们来讲解Java当中的方法的定义和使用

目前为止

每个要显示的时间信息需要三条打印语句

这显得非常繁琐

我们可以把显示时间信息的功能封装成一个独立的方法

通过调用该方法来完成时间的显示

那么 什么是方法

如何定义自己的方法呢

今天我们就来学习

Java当中的方法

方法的主要作用就是对类当中定义的状态数据进行操作和处理

换句话说

方法可以改变对象的状态也可以访问对象当中的状态数据

而且 和属性一样

方法总是 从属于某个特定的类

他也是类的重要组成成员

下面我们来看看方法的定义语法

一个方法的完整定义是由方法头部和方法体两部分构成

方法头部 主要由修饰符 返回值 方法名 参数列表构成

这里的修饰符主要可以分成两大类一个是访问权限控制符我们先面讲过的private

public protected 和 default

他们都是我们Java当中的访问权限控制符

public访问权限允许任何人在任何地方访问该方法

private访问权限呢 只允许在声明该方法的类当中进行访问

protected允许继承的子类可以访问这些方法

而default允许同一个包当中的其他类能够访问这些方法

这点和类的访问权限非常相似

第二类那 就是我们的可选控制符

他们可以由static final abstract native synchronize

这些关键字构成

需要注意的是可选控制符不必全部出现

也不是只能出现一个

要根据用户的实际需求来定

这也就是可选的含义

接下去是返回值类型

通常情况下

方法都必须有返回值

如果一个方法没有返回值那么就必须用void来表示

否则用户就需要指定返回值的数据类型

紧跟在返回值类型后面的就是方法名

方法名可以是任何符合java标识符定义的字符串

通常他们是由动词或者动名词构成的

在方法名之后的一对圆括号当中包含的就是参数列表

每一个参数 如同一个占位符

它代表了用户实际传入的某个数据

在调用该方法的时候用户将向这个参数位置呢传递实际数据

因此我们也称之为形式参数

而将用户在调用方法的时候实际传入的数据称之为实参

参数列表当中的每一个形式参数由数据类型 参数名两部分构成

多个参数之间用逗号进行隔开

参数是可选的

也就说 一个方法 可以不带任何的参数

但是这个圆括号不能省略

接着呢 是一个由

大括号构成的方法体 我们将相关的代码就写在这个方法体内部

如果有返回值的话

你必须写上一个return语句

需要补充的是

为了简单起见

我们通常将 方法头部当中包含修饰符 返回值 类型方法名 参数列表称之为方法的签名

方法的签名与形式参数的变量名没有关系

比如两个数求最大值的一个方法签名

方法签名不在乎形式变量的名字

它是我们识别不同的方法

同时(也是)调用相关方法的一个重要依据

定义好了方法以后那 我们就可以调用语法来执行这些方法

在同一个类当中调用方法可以使用如下的格式来进行调用

理解方法的调用顺序

对于分析方法的执行情况非常重要

Java中使用调用栈来管理方法的调用顺序

在开启一个Java的线程的时候

他会同时创建一个调用栈

来管理调用的方法

如果你把调用栈看成是一个水杯

而每个执行的方法看成是一个乒乓球的话

调用栈的运作机制有一点类似于杯子管理乒乓球的模式

比如在这段代码当中程序从

包含main的方法开始执行

这时候栈当中保存了初始执行的main方法

就像水杯中

放入了一个乒乓球

当运行到max方法调用时

main方法 并未结束

这时候

新的方法将加入到调用栈当中

就像这里

新的乒乓球将叠放到

栈的上方

现在程序将中断main的运行 跳转到max方法进行执行

随着max方法运行的结束

程序的控制流又回到了主方法main当中

这个过程有如从水杯当中取出了一个运行完的乒乓球

接着程序的运行直到完成整个main方法的执行

完成后

main方法也将退出整个调用栈

知道了这些以后呢 下面我们就一起来定义一个打印标准时间格式的方法

我们可以在Time类当中编写一个public方法

取名为

to standard string

他返回一个字符串

为了返回一个以冒号分隔的标准时间字符串

我们可以使用String.format方法

该方法的一个参数是格式字符串

我们用%02d

这个格式化字符串来表达

这里的%02d是一个占位符

最后呢 会用后面的实际参数值来替代这里

同时我们指定了每个数字的标准场宽是由两个有效数字构成

如果不足两位

则在前面添加前导数0

随后呢 我们用三个实际数值来替代这个占位符

他们应该取自时间对象的相应属性信息

需要注意的是

在上一讲当中我们讲过

要引用对象的属性

需要通过引用变量.属性名的方式

由于在同一个类当中

访问属性

我们不需要额外的去创建一个对象 可以使用Java提供的一个特殊关键字this

来表达当前对象的一个引用

也就是说我们要在同一个类当中的方法引用自己属性

可以使用this.属性的方式来引用

甚至在没有歧义的情况下

还可以进一步的简化

Java允许你将this. 进行省略

比如像这样

他们都是合法的

方法写好了我们接下来来测试一下它的效果

在App类当中

直接调用t.toStandardString来替代原来三行代码

你看是不是简单多了

在这讲当中

我们学习了Java的方法的定义语法

方法的调用语法

以及this引用的相关知识

方法作为代码的封装体

为我们复用相关的程序代码

执行重复操作提供了可能

“做中学”Java程序设计课程列表:

第1章初始Java

-1.1Java简介

--01Java简介

-1.2搭建Java开发环境

--Video

-1.3使用记事本编写Java程序

--Video

-1.4使用Eclipse开发Java程序

--Video

-1.5导入/导出Java项目

--Video

-1.6管理组织代码

--Video

-第1章初始Java--测试题

第2章使用Java基本语法(1)

-2.1认识标识符

--Video

-2.2变量和变量类型

--Video

-2.3数据类型和类型转换

--Video

-2.4使用常量

--Video

-2.5使用注释

--Video

-2.6使用运算符进行算术运算

--Video

-第2章使用Java基本语法(1)--测试题

第2章使用Java基本语法(2)

-2.7使用运算符进行逻辑处理

--Video

-2.8使用if进行流程控制

--Video

-2.9使用switch进行流程控制

--使用switch进行流程控制

-2.10使用循环

--Video

-2.11循环的跳出和继续

--Video

-2.12多重循环

--Video

-第2章使用Java基本语法(2)--测试题

第3章使用面向对象基础语法

-3.1认识类和对象

--Video

-3.2为类添加属性

--Video

-3.3为类添加方法

--Video

-3.4为类添加静态方法

--Video

-3.5递归方法

--递归方法

-3.6构造方法

--Video

-3.7重载方法

--Video

-第3章使用面向对象基础语法--测试题

第4章使用面向对象高级语法

-4.1使用继承语法

--Video

-4.2使用数组

--Video

-4.3使用数组类操作数组

--Video

-4.4使用抽象类

--Video

-4.5使用接口

--Video

-第4章使用面向对象高级语法--测试题

第5章捕获并处理异常

-5.1异常处理机制

--Video

-5.2捕获异常

--Video

-5.3创建自定义异常

--Video

-第5章捕获并处理异常--测试题

第6章使用SWT设计界面

-6.1SWT图形界面

--Video

-6.2使用SWT布局管理-FillLayout

--使用SWT布局管理-FillLayout

-6.3使用SWT布局管理-RowLayout

--使用SWT布局管理-RowLayout

-6.4SWT中的事件模型

--Video

-6.5常见事件处理写法

--Video

-第6章使用SWT设计界面--测试题

第7章微波炉模拟程序

-7.1微波炉模拟程序的界面制作

--Video

-7.2微波炉模拟程序的代码重构

--Video

-7.3微波炉模拟程序的事件监听

--Video

-7.4微波炉模拟程序的数字键盘

--Video

-7.6微波炉模拟程序CookTimer

--Video

-7.7微波炉模拟程序添加图像

--Video

-7.8微波炉模拟程序添加声音

--Video

-7.9微波炉模拟程序安装包制作

--Video

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。