当前课程知识点:Java程序设计 >  第二章 类与对象 >  2.2-3-方法成员 >  2.2-3-方法成员

返回《Java程序设计》慕课在线视频课程列表

2.2-3-方法成员在线视频

2.2-3-方法成员

下一节:2.2-4-包

返回《Java程序设计》慕课在线视频列表

2.2-3-方法成员课程教案、知识点、字幕

大家好

欢迎回来继续学习

java语言程序设计

这一节呢

我们来学习方法成员

在类里面定义的这些方法

他也分两类

分成类的方法和实例的方法

那么实例的方法呢

是用来表示每一个实例对象

他的功能或者行为的

而类的方法呢

是用来表示这个类的一些公共的

共同的行为或者功能的

现在我们来看这个方法成员

定义的语法形式

其实呢在类里面

定义一个方法

跟我们以前学习面向过程的

C程序设计的时候

定一个函数

是非常相象的

只不过呢

这个方法他不是独立的

不是全局的

他是必须出现在类题里面的

同样我们在这也看到

前面有很多可选项

就是方括号里面的可选项

大多数呢

在后续章节中

我们都会学到

现在呢我们就关注一下

它必须有的内容

必须有返回类型

是不是很像我们以前在C语言中

学过的函数的返回值类型

对 还有呢

方法名很类似于

我们在C语言中

学到的函数名

那么在方法名后面

一个圆括号里面有参数列表

那么这个参数列表

它在方括号里可选

也就是说你可以是空的

没有参数表

也可以是有若干个参数

这是跟我们以前C语言中

学到的函数的形参表

它是类似的

那这一对大括号里面

就是方法体

跟我们以前在C语言中

学的函数体是类似的

他们的语法都是很想象的

那另外其他这些关键字

表示什么呢

简单的介绍一下

public protected private

也是控制访问权限的

控制这个方法的访问权限

static 用来指明

这是一个类的方法

或者叫静态方法

final说明这是一个终结方法

abstract 说明这是一个抽象方法

抽象方法就是只有方法原形

没有方法体体现的

这个在后面的章节

我们都会讲的

native 呢是用来继承java代码

和其他语言代码的

这个呢在我们这门课里面

是不涉及到的

另外这个synchronied

是用来控制多个并发线程

对共享数据的访问的

关于多线程呢

我们会在java语言程序设计

(进级)那门后续课程中介绍

在java语言程序设计基础

这门课中呢

不涉及到多线程的内容

返回类型刚才说了

方法的返回值类型

还有参数类型

实际上就是说那个形参表里面的

那些参数的类型

可以是简单数据类型

也可以是引用类型

还可以数组 类或者接口这些

也可以有多个参数

也可以没有参数

那么方法体呢

就是方法的具体实现

里面可以包括局部变量的声明

以及所有合法的java语句

那么方法体中的局部变量

他的作用域呢

只限制在这个方法体内部

这有一个throws exceptionlist

这个呢是列出这个方法

有可能抛出的异常

那么是异常抛出列表

后面呢我们也会给大家介绍

后面章节会借上异常处理

大家就明白这个了

好 现在我们首先来看

实例方法

实例方法呢

它是属于每个对象的

用来表示每个对象的

他的功能或者是行为

定义实例方法的时候呢

不要用static关键字

那么方法定义好了

我们在什么时候

会调用这些方法呢

当我们需要给对象发消息

需要使用

在类里面

为每个对象定义好的那些功能

和行为的时候呢

我们就去调用方法

因为我们说了

方法就是代表着

对象的行为或者功能

接下来我们来看

方法调用的语法

我们调用实例方法的时候呢

一定要通过对象名来调用

从我们讲的是从内外来调用

如果你在(类体)里面

方法之间互相调用

那就不用前面挂一个对象名了

在一个类体的内部

方法与方法之间

是可以直接互相调用的

直接用方法名就行了

那么在内外

当你要使用这个实例对象

跟对象发消息

这个时候呢

你就用对象名

点方法名的方法去调用

然后括号里给出实参列表

跟我们在C语言中

调用函数很像

这个时候

我们说这个对象

就是消息的接受者

这个方法名

实际上就是我们发给对方的消息

而那个实参列表呢

就列出了需要这个对象

完成这项功能

必须要给他的一些必须数据

那么这个参数传递呢

也是分为直传递

和引用传递

直传递就是说

当参数为基本类型的时候

那用实参初始化形参

实际上就是一次性的单向传递

实参的值就给到形参了

然后实参和形参之间

就没有联系了

引用传递呢

是这样发生在我们传对象

作为参数的时候

如果参数类型是对象

那么实际上我们传的

就是对象的引用

这个时候就叫做引用传递

那引用又是什么

引用实际上就是个别名

那这个时候相当于

实参对象的引用

传给了形参

那就实参名 形参名

两个不同的名字

或者叫两个不同的引用

最后指向了同一个对象

这叫做引用传递

那么调用实例方法的时候呢

参数有两种传递方式

实际上接下来

我们稍候讲

调用类的方法的时候

传参数也是这样两种传递形式

也就是说我们调用方法的时候

参数传递分成直传递和引用传递

现在呢我们来看

在这个圆类中呢

我们要增加方法了

圆嘛 每个圆

应该有自己的一些计算功能

不能我们定一个圆对象

他就存一个半径

什么都不会干对吧

我们看这增加了一个

求圆周长的方法

增加了enlarge

把圆扩大若干倍的方法

这个方法呢

他就有了一个参数了

这个参数呢

就是这个倍数

我们要把圆扩大多少倍

由这个参数来确定

这个fitsinside的方法呢

我们来看它的参数

是另外一个类的对象

是一个矩形类的对象

这个方法要算一算

我们能不能把这个圆

装在这个矩形里面

返回一个布尔值

这就是具有实例方法的圆类

然后我们来测试一下这个类

构造圆对象

把它的引用放在C1里面

让它的半径负值为8

在构造圆对象

把它引用放在C2里面

它的半径负值为15

然后呢我们构造了一个

rectangle 对象

它的引用放在R里面

给R的宽和高附了值

然后我们来看看

这个C1这个圆

能不能放在R这个矩形里面

要用C1点fitsinside

用R作为参数

同样也看看C2

能不能放在R这个矩形里面

这就是我们定义了一个

有方法的这个类

然后呢在类外呢

我们构造这类对象

通过对象去调用方法

进行一下测试

我们看到运行结果

一个能放进去

一个不能放进去

好 现在我们知道了

怎么样定义和调用实例方法

那接下来呢

我们将学习类的方法

也就是静态方法

那么类方法呢

是用来表示这个类里面

所有对象的共同行为的

或者说一些公共的

为大家所共享的功能的

在我们定义类方法的时候呢

要用这个static

关键字来修饰

所以经常我们也把它

叫做静态方法

那么这样的类方法

是不能被声明为抽象方法的

什么是抽象方法呢

大家不要着急

后面会详细给大家介绍的

现在呢先统一把语法规定

放在这

那么类方法呢

我们就可以通过类名

直接调用

也就是说你不比定义

这个类的实例

也可以使用类的方法

用类名调用就可以了

当然如果我们这个类

已经有了一些实例对象

我们通过这个类的实例对象

去调用类方法行不行呢

也是可以的

现在我们通过例子来看一下

这个类方法或者静态方法

它的用途

比如说我们需要写个程序

将这个摄氏温度呢

转换成华氏温度

这里给出了转换公式

实际上呢

除了摄氏温度值

以及公式中

需要的常量值

干这件事

其实不需要构造什么对象

不需要通过实例来做这件事情

那么如果学过C语言的同学

就觉得这么简单的事情

我在C语言里面

我写个函数就完成了嘛

难道非要我去为这个事儿

去构造一个对象吗

其实呢在java程序中

也会出现这样大量的问题

就是说其实我们

只需要一个功能

但是我们并不需要什么对象

这个时候呢

我们就可以在类里面

定义一个静态的方法

比如说我们定义一个

converter类 转换类

在类里面有一个摄氏温度

转成华氏温度的方法

你给他一个摄氏度作为参数

它return一个华氏温度

就可以了

调用这个方法的时候呢

我们直接类名点方法名

就可以了

不需要去构造对象

那么呢我们再想想

如果你还有很多

其他的转换功能需要实现

我们都可以把它写成

这个converter类里面的

静态方法

他可以把所有的转换

集成在这里面

这样用起来

也是很好用的

我们在方法的参数表中呢

还可以列出可变长的参数

也就是说参数个数不确定

那么这个怎么定义呢

我们来看一下语法

可变长参数呢

我们可以使用省略号来表示

其实实质上

它就是数组

比如说我们定义一个

string类型的可变长的参数那么实际上呢

就是定义了一个

string类型的数组

那么这个时候呢

我们传递给他的实参

里面的参数个数呢

就可以是零个对象

到多个对象

现在呢

我们通过这个简单的例子

来看一下

这个可变长参数的语法

是怎么用的

这个maxarea这个方法呢

方法体

我们并没有完整的去实现它

只是给了一个示意

那我们主要去看

它这个参数表

这个参数表里面呢

有一个圆参数

圆对象的引用做参数

应该还有若干个

矩形对象的引用做参数

那么到底有多少个

矩形对象的引用呢

可变长点点点表示

个数不确定

那么既然个数都不确定

那我在程序中怎么处理它呢

我们知道这个点点点

表示的就是说

我这个verrec 实际上

就是一个矩形对象的引用数组

但是呢

数组有多少个元素不确定

要在调用的时候

看这个实参给他几个元素

比如这次调用的时候

给了两个矩形对象的引用

那么也调用的时候

可能给一个矩形对象的引用

也可能只给一个圆的引用

就没有给矩形对象的引用

那么这种情况下

我们程序里面

怎么去处理它呢

比如说我要把所有的图形

都处理一遍

去求它的最大面积

那么我怎么样

去遍历这个数组呢

我都不知道有多少个元素

这个时候就用到了

这样的for循环了

增强型的for循环

或者叫基于范围的for循环

我在这定一个rectangle的引用

冒号后面就是这个数组名

rec

它的作用就是在循环的每一次

都从这个数组中

依次取出一个元素来

用来附给这个R

然后通过R

你就可以访问这个元素

用这样的办法

不管数组有多少个元素

这个for循环

都能恰恰好的遍历完这些元素

这也是我们使用这个

可变长参数的时候呢

经常用的手段

好 这一节呢

我们学习了类的方法

在下一节呢

我们要学习包这种机制

看我们怎么样用包

来将相关的类组织在一起

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

2.2-3-方法成员笔记与讨论

也许你还感兴趣的课程:

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