Java程序设计语言第四单元Word文档下载推荐.docx
- 文档编号:19713280
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:26
- 大小:108.21KB
Java程序设计语言第四单元Word文档下载推荐.docx
《Java程序设计语言第四单元Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java程序设计语言第四单元Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
成员方法分为和两种形式,分别被称为和。
Java语言规定,实例方法的定义格式为:
其中“修饰符”决定了;
返回类型是的类型;
成员方法量名是名称,它既要符合命名规则,又建议遵守Java语言命名规范;
参数列表列出了;
成员方法具有抛出异常的能力,而异常类型列表列出了。
(8)成员方法可以重载,成员方法的重载是指的现象。
Java语言规定,具体调用哪个成员方法将由共同决定,且称之为。
也就是说,Java语言中,每个成员方法是由唯一标识的。
因此致,在同一个作用域中,不能够出现的成员方法,否则将。
如果一个类中有多个成员方法,调用规则为:
。
(9)在Java语言中,每一个类中都有一个或几个称之为构造方法的特殊的实例成员方法,它是一类在成员方法,其作用是,构造方法不需要返回任何值,不允许定义。
构造方法具体定义格式为:
类名是类的名称,也是构造方法名,这是构造方法的重要特征之一;
参数列表是;
构造方法没有任何类型的返回值,甚至在类名前面也不允许书写void,这是构造方法的另一个重要特征。
类的构造方法与其它成员方法一样,也可以重载,即有多个不同的构造方法。
如果在定义类时,没有定义任何构造方法,系统会自动提供一个的默认构造方法。
(10)在设计类时,应该学掌握如下基本原则:
◇封闭:
◇信息隐藏:
◇接口浅晰:
◇通用性:
◇可扩展性:
(11)在设计类,确定了其包含的成员变量后,就应考虑如何设计与外界沟通的的方法时,一般应考虑包含下列成员方法:
、、、、。
(12)在设计类时,确定了类中的成员变量后,就应考虑类中成员方法的设计。
设计成员方法时,一般应考虑包含下列成员方法:
(13)在同一系统中,可能有若干个类,类与类之间存相互合作,构成3种关系:
、、。
(14)是用于模拟现实世界中实体的程序元素,在问题空间中的实体映射成解空间的,它是面向对象程序操作的基本单位,所谓程序运行就是、
的过程。
在完成类的定义之后,需要进行类的实例化,即。
在Java语言中,对象属于变量,需要经历、、。
定义对象的语法为:
创建对象的语法为:
new运算符主要完成两项工作:
、。
创建对象后,就可以引用不同对象月月的成员变量或调用不同对象的成员方法,达到对象之间相互驱动的程序运行效果,Java语言规定,引用对象的成员变量及调用对象的成员方法的语法格式为:
(15)创建对象的主要任务是为对象分配,而清除对象的主要任务是,其中主要的是。
为了提高系统资源的利用率,Java语言提供了的机制。
(16)Java语言提供了4种访问控制符。
它们分别是、、
归纳4种不同的访问特性。
可以将各种访问特性的可访问权限总结在下表中:
本类
民95
3生惠8
不同包中的所有类
private
默认
protected
public
(17)Java语言中,类的定义可以相互嵌套,即在一个类的定义中嵌套定义另一个类。
被嵌套定义在内部的类称为,没有嵌套定义在任何类中的类称为。
内部类的成员方法可以访问嵌套该类的外部类的成员。
(18)Java语言提供了两种形式的成员:
一种是静态,称为,主要包括与;
另一种是非静态,称为,主要包括与。
(19)在类中定义成员变量时,如何在访问特性修饰符之后加上修饰符就成为静态成员变量。
静态成员变量只在加载类时创建一个副本,无论创建同一类的多少对象都将同一个副本,因此,静态成员变量与类共存亡,而与具体的对象无关,很多人将其称为类变量。
在实际上将常量定义成静态成员变量的情况更加普遍。
(20)在类中定义成员变方法时,如何在访问特性修饰符之后加上修饰符就成为静态成员方法。
静态成员方法只能对方法中的局部变量和类的进行操作,而不会引用或调用。
(21)StringBuffer类定义在包中,它与String类的区别在于可以对StringBuffe类表示的字符串进行,因此被称为。
它提供了3个构造方法,它们分别是:
StringBuffer类还定义了一些有用的public方法:
方法签名
功能描述
(22)Java语言中提供了中基本数据类型,其中包括、与。
数值类型又分为与。
另外在包中还提供了BigInteger类和BigDecimal类。
BigInteger类实现;
BigDecimal类实现。
创建这两个类的对象后,其值改变,它们表示的数值均为高精度,取值范围,精度可以满足要求,进行各种运算时不会产生现象。
由于它们的数值封装在对象中,直接使用+、-、*、/等算术运算符进行运算,必须调用类中的成员方法。
BigInteger类和BigDecimal类的成员方法如下:
成员方法
2、名词:
(1)面向对象:
(2)面向对象程序设计方法:
(3)类:
(4)对象:
(5)成员方法重载:
(6)构造方法:
(7)内部类:
二、边学边练
1、〖任务1〗:
完成教材【例4-1】的程序,分析运行结果,阅读教材相关内容。
2、〖任务2〗:
完成教材【例4-2】的程序,分析运行结果,阅读教材相关内容。
3、〖任务3〗:
完成教材【例4-3】的程序,分析运行结果,阅读教材相关内容。
4、〖任务4〗:
完成教材【例4-4】的程序,分析运行结果,阅读教材相关内容。
三、精讲精记
一、类与对象概念
对象:
程序空间中用于模拟问题空间的实体的程序元素,是对问题空间的实体的直接抽象。
类:
是对一类对象的抽象描述,定义属于此类对象应具有的状态属性和行为方法。
类与对象的关系:
类是对象的概括和抽象,对象是类的实例,是类的具体化。
每个对象都是某类的一个实例,一类可创建若干个对象。
二、类及定义
1、类的定义
[修饰符]class类名{
类体
}
(1)修饰符:
控制类的访问权限和类别
◆访问权限:
默认与public
默认类:
friendly类,只能被同包中的类访问
public类:
公共类,可以被任何类访问,一个程序的主类必须是公共类。
◆类别:
Abstract:
抽象类,没有实现的方法,需要子类提供方法实现。
Final:
最终类,不能作为父类被其他类继承。
(2)class:
定义类的关键字。
(3)类名:
标识符,要符合标识符命名规则,要符合Java命名规范。
(4)类体:
成员变量、成员方法、内部类、静态代码
成员变量:
实例成员变量(非静态成员变量)、类成员变量(静态成员变量)
成员方法:
构造方法、实例成员方法(非静态成员方法)、类成员方法(静态成员方法)
内部类:
嵌套于类内部的类定义。
静态代码:
用static定义的代码。
2、UML与类图
(1)UML(UnifiedModelingLanguage,统一建模语言):
一种面向对象建模的图型表示方法,提供了类图、状态图、活动图、时序图、部属图、用例图等多种图型工具。
(2)类图:
用于描述类的图,主要描述类的成员变量(属性、状态)和成员方法(行为)
类名
成员变量
在成员变量或成员方法前加+代表public、-代表private、#代表protected
3、类文件(源文件)
(1)文件名:
主类名+.java
(2)第个源文件可以定义一个或多个类,只能有一个public类(主类)
(3)类文件(源文件)的基本格式如下
package包名;
import引用其它包的类的完整名;
类定义
4、类的成员变量
(1)类的成员变量用于描述对象的状态和属性。
(2)类的成员变量分为静态成员变量(类成员变量)和非静态成员变量(实例成员变量)。
静态成员变量属与类,类的各对象其享;
非静态成员变量属于对象,类的各对象有自己的值。
(3)成员变量的定义:
[public|private|protected][static][final]变量名;
◆访问控制符:
[public|private|protected],取三者之一,或默认,决定变量的访问权限:
public:
在类的可访问域中均可访问。
protected:
在类的可访问域中,只有本类、本包、子类中可访问
默认:
在类的可访问域中,只有本类、本包
private:
只能在本类中访问
◆存储方式:
[static],有则为静态,无则为非静态。
◆常量:
[final],有为常量,无为变量
◆变量名:
5、类的成员方法
(1)类的成员方法用于描述对象的行为。
(2)类的成员方法分为静态成员方法(类成员方法)和非静态成员方法(实例成员方法)。
静态成员方法属与类,可通过类调用;
非静态成员方法属于对象,只能通过对象调用。
(3)成员方法的定义:
[public|private|protected][static][final]返回类型方法名(参数列表)[throws异常类型列表]{
方法体
静态成员方法只能访问静态成员变量,不能访问非静态成员变量。
非静态成员方法,既可访问静态成员变量,也可访问非静态成员变量。
◆方法的重载:
[final],有,方法在子类中不可重载。
有,方法在子类中可重载。
◆返回类型:
方法返回值的类型,如果没有返回值,为void。
◆方法名:
◆参数列表:
调用此方法需要提供的参数的列表。
◆Throws与异常类型列表:
Throws关键字,声明方法可能抛出的异常。
异常类型列表。
◆方法体:
方法体包括各种语句,包括局部变量定义语句、表达式语句、方法调用语句,流程控制语句、方法返回语句等。
(4)成员方法的定义中,方法名和参数列表构成方法的签名,在同一个类中,可以有多个重名的方法,但要求两两方法签名必须不同,这称为方法的重载。
方法调用时,是根据方法签名不同,区分调用不同的方法。
6、构造方法
Java语言中,每个类至少要有一个构造方法,其功能是构见、初始化对象。
构造方法是一种特殊的成员方法,有如下特点:
(1)方法名必须与类名完全相同;
(2)没有返回值,也不能写void;
(3)一个类可有多个构造方法,但签名要不同;
(4)没有参数的构造方法称为默认构造方法。
如果没有定义任何构造方法,系统会自动产生一个默认构造方法。
如果定义了任何一个构造方法,而没有定义默认构造方法,则系统不会自动产生默认构造方法,这时要使用默认构造方法,必须显式定义默认构造方法。
7、内部类
Java语言中,类的定义可以相互嵌套,即在一个类的定义中嵌套定义另一个类。
被嵌套定义在内部的类称为内部类,没有嵌套定义在任何类中的类称为顶层类。
内部类的成员方法可以访问嵌套该类的外部类的所有成员,对直接外部类也可以访问内部类的各个成员。
内部类通常只在其外部类内使用,而不在其外部类之外使用,更多地是采用拟名内部类的手段简化某些场合的程序代码。
8、静态代码段
静态代码段书写在类定义的类体中,与成员变量和成员方法并列,格式为:
static{
语句;
静态代码段可以访问静态成员,但不能访问非静态成员。
静态代码在类加载的时候执行一次。
三、对象
1、对象的定义
类名对象名;
2、对象的创建
new构造方法名(实参列表);
3、用对象名引用对象
对象名=new构造方法名(实参列表);
4、对象的初始化
类名对象名=new构造方法名(实参列表);
5、类及对象的成员变量的访问和成员方法的调用
(1)静态成员变量的访问
类名.变量名
对象.变量名
(2)非静态成员变量的访问
(3)静态成员方法的调用
类名.方法名(实参列表)
对象.方法名(实参列表)
(4)非静态成员方法的调用
6、关于this
对于类的实例成员变量(非静态成员变量),只有在创建对象时,才创建它们,它们只属于创建的对象。
那么在类的定义中,需要指明当前创建的对象怎么办呢?
Java提供了一个this关键字,它代表当前对象的引用。
this可出现在所有实例成员方法中,通过它引用实例的成员变量或成员方法。
7、对象的清除
对象创建后,将为其在内存中分配空间。
如果一个对象没有变量引用,此对象就不能再使用,成为垃圾,JVM会自动择机回收此对象占用的内存空间,称为Java垃圾回收机制。
四、可编辑字符串
关于字符串,JavaAPI除提供了String类之外,在java.lang包中还提供了StringBuffer类和StringBuilder类,String为不可变字符串,StringBuffer为线程安全可变字符串,StringBuilder为非线程安全可变字符串。
1、StringBuffer和StringBuilder的构造方法
2、StringBuffer和StringBuilder的公共成员方法
五、高精度数值类
Java语言中提供了8中基本数据类型,其中包括数值类型、字符类型与布尔类型。
数值类型又分为整型(byte、short、int、long)与浮点型(float、double)。
另外在java.math包中还提供了BigInteger类和BigDecimal类。
BigInteger类实现高精度整数运算;
BigDecimal类实现高精度浮点数运算。
创建这两个类的对象后,其值不可改变,它们表示的数值均为高精度,取值范围可以无限大,精度可以满足任意要求,进行各种运算时不会产生溢出现象。
由于它们的数值封装在对象中,不能直接使用+、-、*、/等算术运算符进行运算,必须调用类中的成员方法。
六、JavaAPI及JavaAPI文档
1、JavaAPI
JavaAPI(JavaApplicationProgrammingInterface,Java应用程序编程接口),是Java平台为开发应用程序提供的编程接口和类库,具有丰富的功能。
2、JavaAPI文档
JavaAPI的功能描述、使用说明。
七、类与类之间的关系
处于同一系统中的类,相互之间往往有些关系,这些关系可以归为如下几类:
1、继承关系:
如类A继承类B时,说A与B有继承关系
代码特征:
classAextendsB{
……
类图表示
2、实现关系:
如类A实现接口B时,说A与B有实现关系,可以理解为特殊的继承关系
classAimplementsB{
3、关联关系:
如类A的属性(成员变量)为类(或接口)B对象,且在语意上,B不是A的组成部分,可以有不同的生命周期,则称A关联B
classA{
Bb;
……
4、聚合关系:
如类A的属性(成员变量)为类(或接口)B对象,且在语意上,B是A的组成部分,但B可以脱离A而存在,,则称A聚合B
4、组合关系:
如类A的属性(成员变量)为类(或接口)B对象,且在语意上,B是A的组成部分,但B不能脱离A而存在,,则称A组合B
注:
关联关系、聚合关系、组合关系三种关系的代码特征是相同的,不同的是语意。
三者都可以理解为整体与部分的关系,但关系的紧密程序不同:
关联关系<
聚合关系<
组合关系
5、依赖关系:
如类A的方法中要访问类(或接口)B对象,则称A依赖B
publicvoidmethod(){;
}
四、完善调试
设计一个教材类Book、一个课程类Course和一个测试类Test。
三个类的类图设计如下:
要求:
每门课程有1-3本教材;
在Test类中实现创建一门课程,为课程增加三本教材,然后输出课程的各项信息和教材列表。
Book.java
publicclassBook{
privateStringname;
privateStringauthor;
privateStringpress;
privateDoubleprice;
privateStringisdn;
publicBook(){
;
}
publicBook(Stringname,Stringauthor,Stringpress,Doubleprice,Stringisdn){
=name;
=author;
=press;
=price;
=isdn;
publicStringgetName(){
publicvoidsetName(Stringname){
publicStringgetAuthor(){
publicvoidsetAuthor(Stringauthor){
publicStringgetPress(){
publicvoidsetPress(Stringpress){
publicDoublegetPrice(){
publicvoidsetPrice(Doubleprice){
publicStringgetIsdn(){
publicvoidsetIsdn(Stringisdn){
publicStringtoString(){
=this.author+"
"
+this.name+"
+this.press+"
+this.isdn+"
+this.price;
return;
}
Course.java
import;
publicclassCourse{
privateStringno;
privatefloatcredit;
privateBook[]books;
privateintbookNum;
publicCourse(){
super();
=newBook[];
bookNum=;
publicCourse(Stringno,Stringname,floatcredit){
=no;
=credit;
=newBook[3];
publicStringgetNo(){
publicvoidsetNo(Stringno){
publicfloatgetCredit(){
publicvoidsetCredit(floatcredit){
publicvoidaddBook(){
if(bookNum){
System.out.println("
教材已够三本,添加失败!
"
);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计语言 第四 单元