首页 理论教育 程序设计举例

程序设计举例

时间:2023-02-28 理论教育 版权反馈
【摘要】:Java程序由一组类定义组成,类是程序的基本单元。本程序包含Square和SquareTest两个类。在Java语言中,将数据、操作和接口形成一个整体叫类,它作为Java语言的基本单位。在Java语言中,采用“new类名();”的格式来创建对象的。这一组相似的对象被称为该类的实例或该类的对象。该类在java.util包中,因此,使用import java.util.*;语句。因此,学习、熟悉Java类库是Java程序员的一个重要内容。

1.5.1 Java Application程序设计举例

【例1-3】 编写一个Java Application,计算正方形的周长和面积。

img12

img13

程序运行结果:

img14

Java程序由一组类定义组成,类是程序的基本单元。本程序包含Square和SquareTest两个类。

Square类是对所有正方形的描述:这个类是正方形,它有一个边长属性,能够设置其边长,得到它的边长、周长和面积。

类名是Square,描述这个类是正方形。成员变量是side。在类体中定义了1个成员变量side描述正方形的属性,即变量side表示正方形的边长,side的类型是double型。在类体中定义了4个成员方法,描述正方形有4个行为方法。setSide()方法是设置正方形自身的边长;getSide()方法表示返回正方形自身的边长;getPerimeter()方法可以计算并返回正方形自身的周长;getArea()方法可以计算并返回正方形自身的面积。

在Square类中,变量side用private修饰,这样外界就无法直接访问正方形对象的这个状态变量。4个方法用public修饰,它们的格式和功能信息组成类的软件接口。外界可以调用这4个public方法与正方形对象进行通信。一般地,可以用下面的格式来表示一个类的软件接口。

img15

注意:关于private和public的用法将在第4章作详细介绍。在这里,只需这样理解:private是私有财产,只有家里人(类中的成员)可以使用,public是公有财产,大家都可以使用。

可见,一个类可以概括为:类=(数据,操作,接口)。

其中,数据描述类的属性,如在例1-3中,成员变量side描述正方形的属性;操作描述类的行为,如在例1-3中,4个成员方法描述正方形有4种行为,设置正方形边长,得到其边长、周长和面积;接口描述操作对外的可见性。如在例1-3中,4个成员方法都用public修饰,因此,外界可以使用它们。

在Java语言中,将数据(成员变量)、操作(成员方法)和接口形成一个整体叫类(用类名表示),它作为Java语言的基本单位。这种构建类的过程叫类的封装。类的封装使得类成为成员变量和成员方法的保护膜,外界只能看到类的接口,不在接口中的成员变量和成员方法外界无法看到,当然所有方法的实现外界更是无法看到,这种情况叫隐藏。

SquareTest类是一个起始类,其中包含有main方法。它是用来产生具体的正方形,设置其边长,计算并打印其周长和面积。总之,SquareTest类是检测Square类是否正确。

在main方法中创建两个对象分别赋给了Square类型变量(称为引用型变量)object1和object2。在Java语言中,采用“new类名();”的格式来创建对象的。如在例1-3中,使用语句object1=new Square();来创建一个具体正方形对象的,并返回该对象的引用值,再赋给Square类型变量object1。

然后使用对象的方法。语句object1.setSide(10);将该正方形的边长设置为10。

语句System.out.println(″Perimeter=″+object1.getPerimeter());计算并打印该正方形的周长。

语句System.out.println(″Area=″+object1.getArea());计算并打印该正方形的面积。

类似的语句可实现另一个正方形对象的创建和相应计算。

引用型变量object1和object2表示两个相互独立的正方形对象。它们有各自的内存区域,有各自的变量side。

代码System.out.println(...)用于在标准输出设备(屏幕)上输出括号内表达式的结果。在System.out.println(″object1side=″+object1.getSide());代码中,括号内的表达式涉及字符串连接运算(+):前半部分是一个字符串″object1side=″,后半部分是对正方形对象object1的getSide()方法的调用,其结果是整数1。系统会自动将该整数转换成字符串并与前面的字符串连接。与此类似,下面代码的功能分别是计算并输出正方形object1的周长和面积、正方形object2的边长、周长和面积。

下面简单讲述类与对象的关系。

类与对象的关系,就如同制造汽车的图纸与汽车的关系一样。制造汽车的图纸设计规定了汽车应具有的性能,这样,可以依据图纸制造出大量的汽车。在这里,制造汽车的图纸相当于类,制造出来的汽车相当于对象。

类描述了一组类似对象的共同特性,规定了类的属性和行为。这一组相似的对象被称为该类的实例或该类的对象。类作为一种模式,对象是具有这种模式的具体例子。因此,类是对象的模板,对象是类的实例化。

从Java语言的角度看,类与对象的关系,就如同类型与值的关系。类是数据类型,是引用数据类型。对象用引用值来表示,引用值存放在该类型的引用型变量中。

作为数据类型的类规定了成员变量、成员方法及接口,是对象的模版。由类创建出来的对象,自然具有这些成员变量、成员方法及接口。

【例1-4】 改写例1-1,说明类和对象的关系。

img16

img17

程序运行结果:

你好,很高兴学习Java

在例1-4中,Hello是类,它规定了该类只有一个method()方法。obj是Hello类的变量,用来记录该类型对象的引用值。new Hello()产生对象,并将其引用值赋给obj变量。Hello类的对象自然拥有该类的方法,因此,使用obj.method(str);语句调用对象的method()方法。

【例1-5】 改写例1-4,说明学习、熟悉、掌握类库的重要性。

img18

程序运行结果:

请输入字符串:从键盘输入字符串并显示出来。

从键盘输入字符串并显示出来。

在例1-5中,使用了Scanner类。该类在java.util包中,因此,使用import java.util.*;语句。Scanner类的对象可以从键盘读入基本类型数据和字符串。useDelimiter(″\n″)方法是设置新行为分隔符。next()方法是读入一个字符串。

可见,引用了java.util包中的Scanner类后,程序的功能比例1-4显得强大了许多,但却没有添加许多代码。因此,学习、熟悉Java类库是Java程序员的一个重要内容。

Java程序是由类构成的。对象是由类创建的,而对象不是孤立存在的,对象之间通过消息相互交流。

【例1-6】 编程模拟两个人物的一次对话,说明对象之间通过消息相互交流。两个人物分别是《红楼梦》的宝玉和黛玉。

img19

程序运行结果:

林妹妹,我好喜欢你。

讨厌,再说这种混帐话,我就不理你了。

在例1-6中,程序由Person类和Ex1_6类构成。由于我们关心的是说话的内容,因此,Person类只定义了一个成员变量message。方法speakTo(Person sb,String shortMessage)的含义是该对象向sb对象说话,即该对象向sb对象发信息。方法setMessage(String short-Message)表明对象得到了信息。

Ex1_6类用来测试Person类。它创建了宝玉和黛玉两个对象,完成了两人之间的一次对话。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈