
3.4 实验:Java语言基础
本节针对Android开发中经常使用的Java基础知识,编写了3个典型的实验题目。本节的3个实验分别对应的知识块是:Java的基本数据和流程控制语句知识块、Java的封装继承知识块,以及Java的抽象类和接口知识块。
3.4.1 实验目的和要求
●理解Java基本数据类型的转换和流程控制语句的使用。
●掌握Java类和对象的定义及应用。
●掌握类的封装和继承的应用。
●掌握抽象类和接口的应用。
3.4.2 题目1 Java的流程控制
1.任务描述
编写一个Java程序,在屏幕上输出1!+2!+3!+…+10!的和。
2.任务要求
1)根据实际情况定义适当的数据类型。
2)设计合适的循环语句,使得运行效率提高。
3.知识点提示
本任务主要用到以下几个知识点。
1)数据类型的选用、变量的定义和赋值。
2)循环语句的灵活使用。
3)类和主方法的定义,以及输出语句的使用。
4.操作步骤提示
实现方式不限,在此以控制台应用程序为例简单提示以下操作步骤。
1)新建一个Java项目:SY3_1。
2)定义一个带main()方法的类。
3)定义4个初始化整型变量i、j、sum和mul。
4)设计双层for循环语句(内层控制阶乘,外层为10个数循环)。
5)利用输出语句进行结果输出。
6)保存源程序文件,编译并运行程序,检查程序的运行情况。
3.4.3 题目2 Java的封装和继承的应用
1.任务描述
编写应用程序,创建类的对象,分别设置圆的半径和圆柱体的高,计算并分别显示圆半径、圆面积、圆周长和圆柱体的体积。
2.任务要求
1)定义一个Circle类,它包含一个用来存放半径的私有成员变量,两个重载的构造方法,以及三个成员方法(面积、周长和输出显示的方法)。
2)定义一个Circle的子类(圆柱体类),该类含有一个存放圆柱体高度的成员变量、一个初始化圆柱体对象的构造方法,以及两个成员方法。两个成员方法分别是计算圆柱体体积和输出显示圆柱体体积的方法。
3)在主方法中实例化Circle类对象,并进行初始化,输出圆的输出显示方法,将结果打印输出;同样实例化圆柱类对象,并进行初始化,计算并输出圆柱体体积。
3.知识点提示
本任务主要用到以下几个知识点。
1)类的定义:成员量、构造方法和成员方法。
2)构造方法重载的使用。
3)类的继承和方法的重写。
4.操作步骤提示
实现方式不限,在此以控制台应用程序为例简单提示以下操作步骤。
1)新建一个Java应用程序:SY3_2。
2)定义一个Circle类,包含一个私有radius(半径)、一个无参构造方法和一个有参构造方法,该类还包含三个成员方法:getPerimeter()、getArea()和disp(),分别用来计算圆的周长、面积(返回值类型都为double)和显示输出结果的方法。
3)定义一个Cylinder类继承Circle类,该类中定义一个私有成员变量hight(圆柱高)、一个构造方法和两个成员方法,这两个方法是getVol()和dispVol(),分别用来计算圆柱体体积和显示体积的方法。
4)定义测试类,分别实例化这两个类,调用计算圆的disp()、圆柱类的disp()和dis-pVol()方法。
5)利用输出语句进行结果输出。
6)保存源程序文件,编译并运行程序,检查程序的运行情况。运行结果如图3-19所示。
图3-19 SY3_2运行结果
3.4.4 题目3 Java的抽象类和接口的应用
1.任务描述
一个类中继承抽象类并实现一个接口,重写这个接口和抽象类的抽象方法,实现输出。
2.任务要求
1)定义一个抽象类,包含构造方法、抽象方法和一个成员方法。
2)定义一个接口Lover和这个接口下的抽象方法。
3)在主方法中继承定义的抽象方法并实现接口Lover,重写接口和父类的抽象方法。
3.知识点提示
本任务主要用到以下几个知识点。
1)抽象类的定义:成员方法、构造方法和抽象方法。
2)接口的定义。
3)类实现接口并继承抽象类,重写抽象方法。
4)super的使用。
4.操作步骤提示
实现方式不限,在此以控制台应用程序为例简单提示以下操作步骤。
1)新建一个Java应用程序:SY3_3。
2)定义一个抽象类Father,包含一个私有属性name(名字)、一个含name参数的构造方法、一个getName()的成员方法(返回类型为String),以及一个无返回值的抽象方法printName()。
3)定义一个接口Lover,包含一个无返回值的love()方法。
4)定义抽象类继承Father类,并且实现Lover接口,定义这个抽象类的一个name参数的构造方法,重写printName()方法,打印输出构造方法传递的name,重写love()方法。
5)定义测试类,分别传递两个name,两次实例化这个类,分别调用getName()、print-Name()和love()方法。
6)利用输出语句进行结果输出。
7)保存源程序文件,编译并运行程序,检查程序的运行情况。运行结果如图3-20所示。
图3-20 SY3_3运行结果