JAVA实验_题目8

JAVA实验_题目8
JAVA实验_题目8

第八章类和对象的扩展

【实验目的】

(1) 类的继承

a. 掌握父类及子类的关系及创建方法

b. 掌握上转型对象的使用方法

c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法

(2) 多态与接口

a. 掌握抽象类与抽象方法的概念

b. 掌握多态的实现原理及方法

c. 了解成员变量的隐藏

d. 掌握接口的设计方法

【实验范例】

例1:(继承)

(1)编写一个圆类Circle,该类拥有:

①一个成员变量

Radius(私有,浮点型);ustID == id) ind=i;

}

while (true) {

"\n1.存款");

"2.取款");

"3.修改密码");

"4.查询");

"5.退出");

sc = new Scanner;

switch()) {

case 1:

"请输入存款金额:");

money = ();

cust[ind].deposit(money);

cust[ind].displayAccout();

break;

case 2:

"请输入取款金额:");

money = ();

if (cust[ind].withdraw(money))

cust[ind].displayAccout();

else

"您的账号余额不足!");

break;

case 3:

"请输入新密码:");

cust[ind].custPWD = ();

break;

case 4:

cust[ind].displayAccout();

break;

case 5:

"欢迎使用xxx银行系统!");

(1);

}

}

}

}

【练习题目】

8-1 (继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat和子类狗dog,基类中有方法speak()。

8-2 (重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理)

8-3 (接口)

1.利用接口继承完成对生物、动物、人三个接口的定义。其中生物接口定义呼吸抽象方法;

2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法;

3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。

4.定义一个学生类实现上述人接口。

8-4 (继承、接口)

实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Wage,用于涨工资,普通员工一次能涨10%,经理能涨20%。

具体要求如下:

(1)接口Wage包含addWage方法,创建类WageImpl用于实现接口Wage

(2)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法;

(3)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),定义该类的构造方法;

(4)Manager类中的属性有:级别level(String类型)定义该类的构造方法;

(5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。

(提示:对象类型判断用instanceof)

【综合练习】

仿照综合例子,在第七章综合例子的基础上改进。

要求:

1、增加VIP卡类,它继承于FuelCard

a)VIP卡有折扣等级 (设置属性成员折扣等级:level);(0级无折扣,1

级98折,2级95折)

b)根据需要,重写VIP卡的加油的方法(重写);

c)仿照综合例子,增加另一个构造函数(重载),包含对level属性值的构

3、建立4张加油卡(对象数组),信息为

4、实现简单的循环菜单显示,并实现存|充值、加油、显示卡信息、修改密码、更改车牌等功能。

8-实验八Java多线程操作(实验报告内容)

实验八 Java多线程操作 (实验报告) 一、目的 1.掌握Java多线程操作。 二、实验内容 启动线程,线程休眠,线程同步,等待和唤醒 三、实验环境 JDK1.6+dos环境 四、实验原理 通过案例掌握多线程操作。 五、实验步骤 1、设计一个线程操作类,要求可以产生三个线程对象,并可以分 别设置三个线程的休眠时间,如下所示: 线程A,休眠10秒 线程B,休眠20秒 线程C,休眠30秒 2、生产者与消费者问题,生产者生产一台电脑,消费者马上将生 产出的电脑取走。 六、实验小结 1、class MyThread implements Runnable{

String name; int time; public MyThread(String name,int time){ https://www.360docs.net/doc/203633399.html,=name; this.time=time; } public void run(){ try{ Thread.sleep(this.time); } catch(Exception e){ } System.out.println(https://www.360docs.net/doc/203633399.html,+"线程,休眠"+this.time/1000+"秒"); } } public class Demo08{ public static void main(String args[]){ MyThread mt1=new MyThread("线程A",10000); MyThread mt2=new MyThread("线程B",20000); MyThread mt3=new MyThread("线程C",30000);

JAVA实验_题目8

第八章类和对象的扩展 【实验目的】 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成员变量的隐藏 d. 掌握接口的设计方法 【实验范例】 例1:(继承) (1)编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型);ustID == id) ind=i; } while (true) { "\n1.存款"); "2.取款"); "3.修改密码"); "4.查询"); "5.退出"); sc = new Scanner; switch()) { case 1: "请输入存款金额:"); money = (); cust[ind].deposit(money); cust[ind].displayAccout(); break; case 2: "请输入取款金额:"); money = (); if (cust[ind].withdraw(money)) cust[ind].displayAccout(); else "您的账号余额不足!"); break;

case 3: "请输入新密码:"); cust[ind].custPWD = (); break; case 4: cust[ind].displayAccout(); break; case 5: "欢迎使用xxx银行系统!"); (1); } } } } 【练习题目】 8-1 (继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat和子类狗dog,基类中有方法speak()。 8-2 (重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理) 8-3 (接口) 1.利用接口继承完成对生物、动物、人三个接口的定义。其中生物接口定义呼吸抽象方法; 2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法; 3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。 4.定义一个学生类实现上述人接口。 8-4 (继承、接口) 实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Wage,用于涨工资,普通员工一次能涨10%,经理能涨20%。 具体要求如下: (1)接口Wage包含addWage方法,创建类WageImpl用于实现接口Wage (2)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法; (3)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),定义该类的构造方法; (4)Manager类中的属性有:级别level(String类型)定义该类的构造方法; (5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。

实验一java基础知识

实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性

实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

《Java面向对象程序设计》实验-实验八(输入输出流)

广西科技大学 计通学院 《Java面向对象程序设计》实验实验八输入输出流 学生姓名:××× 学号:××× 班级:××× 指导老师:××× 专业:计算机科学与技术 提交日期:×××年××月××日 实验报告内容 1.实验目的 掌握字符输入、输出流用法; 掌握使用Scanner类解析文件; 掌握Console流的使用。 2.实验内容 实验教材-第12章实验1、2、3 字符输入输出流;Scanner类与Console类。 要求:完善程序,给出实验结果截图; 完成试验后练习。 3.程序代码及运行结果: 实验1 举重成绩单 //AnalysisResult、java import java、io、*; import java、util、*;

public class AnalysisResult { public static void main(String[] args) { File("score、txt"); File("scoreAnalysis、txt"); try{ Writer out=new (fWrite); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while((str=bufferRead、 readLine())!=null){ double totalScore=Fenxi、getTotalScore(str); str=str+"总成绩:"+totalScore; System、out、println(str); bufferWrite、write(str); bufferWrite、newLine(); } bufferRead、close(); bufferWrite、close(); } catch(IOException e){ System、out、println(e、toString()); } } } //Fenxi、java import java、util、*;

Java 实验八

实验八事件处理 学号201617406 姓名刘顺专业网络工程成绩 【实验目的与要求】 1、理解和掌握Java中事件处理模式; 2、理解和掌握Java中事件处理的流程和方法; 3、实验后及时总结、归纳、分析,并完成实验报告。 【实验内容与要求】 设计信息注册窗口,并完成组件的事件处理功能。 编程提示: 1)完成界面设计和实现; 2)单击“确定”按钮后,在“基本信息”文本域中显示选择的信息内 容。 3)给按钮添加事件监听,实现事件处理。 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setText() // JTextArea的方法,设置文本域内容 append() // JTextArea的方法,文本域内容追加 getText() // 组件的方法,获取组件内容 isSelected() // JcheckBox的方法,复选框内容被选中 getSelectedItem() //JComboBox()的方法,获取选中项 } 【实验过程与结果】 import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.border.TitledBorder; public class Test8 { public static void main(String[] args) { //FlowLayout flow=new FlowLayout(); JFrame j=new JFrame("新用户注册"); //创建窗体 j.setVisible(true); //窗体可见

JAVA实验6答案

GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六? Java 的接口与实现 课程名称 JaVa 程序设计与开发 课程号16232204 技术 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、 实验任务 完成实验六指导上实验1、实验2、实验3的实验任务 三、 实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface CompurerAverage{ public double average(double x[]); } class Gymn astics impleme nts CompurerAverage{ public double average(double x[]){ int coun t=x .len gth; double aver=0,temp=0; for(int i=0;i2) 学院 (系) 信息学院 专业 学号 计算机科学与技术 班级计科 实验地点 钟海楼 04019 实验日期 2015 年 10月26

aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impleme nts CompurerAverage{ public double average(double[] x){ int coun t=x .len gth; double sum=0; for(int i=0;i

Java实验8

实验8 网络通信程序设计 一、实验目的: 1、理解Java的基于套接字的网络通信原理。 2、理解客户端和服务器的概念。 3、学习使用套接字实现客户端和服务器通信的程序设计方法。 二、实验任务: 编写一个客户端和服务器端通信的应用程序。由客户端向服务器端发送数据,服务器接收数据,并利用它们生成一个结果,再把结果返回给客户端。 三、实验内容: 1、套接字是网络上两个主机之间逻辑连接的端点,用于发送和接收数据。 操作套接字类似于操作输入输出流。 2、一个局域网通常包含一个服务器和多个客户端。客户端向服务器发送请 求,服务器响应请求。客户端和服务器建立连接后,可以通过套接字进行通信。客户端启动时,服务器必须正在运行。 3、服务器端首先要创建一个服务器套接字(serverSocket类),并把它附加到 一个端口上,并通过该端口监听客户端的连接请求。监听请求的方法是accept。 4、客户端也要使用一个套接字(Socket类)与服务器连接,连接时可以使用服 务器的IP地址,也可以使用服务器的主机名称。 5、创建连接后,可以使用套接字的getInputStream方法和getOutputStream 方法获取输入输出流来实现通信。以下是客户端和服务器端利用套接字通信的程序源代码,请各位同学认真阅读,透彻理解使用套接字实现通信的原理。 6、服务器端代码如下:

7、代码中建立连接时使用的字符串”localhost”代表本机。如果和网络上的其 他计算机通信,这里可以用该计算机的IP地址代替。既可以在同一台计算机上实现上面的通信程序,也可以在局域网的不同计算机上实现它。 四、本次实验难点: 对套接字的理解和运用是本次实验的重点和难点。

java实验264224

实验项目名称:面向对象编实验学时: 8 同组学生姓名:————实验地点: 1514 /A203 实验日期: 4.13/4.15/4.20/4.22 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握Java语言类定义的基本语法; (2)熟练掌握类成员的访问控制,对象建立的方法; (3)熟练掌握类构造方法、成员方法的定义和重载; (4)熟练掌握类继承、多态和抽象性; (5)熟练掌握接口的定义和实现方法; (6)掌握基本的异常处理方法; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)设计复数类,成员变量包括实部和虚部,成员方法包括实现复数加法、减法、字符串描述、比较是否相等等操作。 (2)设计三角形类,继承图形抽象类,实现面积接口和周长接口,计算三角形面积和周长。 (3)包的建立与使用:设计计算器类Calculator,计算加、减、乘、除,并且打包为mypackage。观察源文件目录下是否生成了mypackage文件夹,在该文件夹中是否有Calculate.class文件。编辑PackageDemo.java,保存在Calculator.java同一目录下,引用计算器类的各方法显示计算结果。 (4)编码实现多态在工资系统中的应用:给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。在主测试类Test中测试各类雇员工资计算结果。 提示:对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派出生的。在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引用并调用earnings()方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。程序依次使

JAVA实验8

浙江经贸职业技术学院实训报告 系部______________ 班级____________ 姓名____________ 学号_______________ 日期______________ 地点____________ 指导教师_____________ 成绩 实验九JA V A 面向对象编程(5) 【实验目的】 1.掌握JAVA语言接口的定义和使用。 2.掌握JAVA语言抽象类的声明和使用。 3.掌握JAVA语言抽象方法的概念和使用。 4.掌握类成员变量及方法的使用。 【预习内容】 1. JA V A 抽象类的定义格式; 2.JAVA 接口定义的语法格式; 3.this 和 super关键词的功能和区别; 4.JAVA构造方法的重载; 5.JAVA多态的概念,及重载和覆盖的区别; 【实验内容及步骤】 1.定义一个学生类,包括属性:学号(ID),姓名(name),成绩(score);构造方法(带三个参数);每个属性的访问器方法。 【程序代码】 import java.util.Scanner; class Student { String ID = " "; String name = " "; float Score = 0.0f; Student (String ID, String name, float Score) { this.ID = ID; https://www.360docs.net/doc/203633399.html, = name; this.Score = Score;

} public String getID () { return ID; } public String getName () { return name; } public float getScore () { return Score; } } public class Test_1 { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入学号:"); String ID = sc.nextLine(); System.out.println("请输入姓名:"); String name = sc.nextLine(); System.out.println("请输入成绩:"); float Score = sc.nextFloat(); Student a = new Student("01", "小明", 555); System.out.println("学号:" + a.getID()); System.out.println("姓名:" + a.getName()); System.out.println("成绩:" + a.getScore()); } } 【程序运行结果】

JAVA试验

《Java程序设计》课程实验指导书

实验一 Java开发环境的安装与配置,熟悉Java程序 结构 一、实验目的: 1. 掌握JDK的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。 3. 熟悉Eclipse编辑环境,编写简单的Application程序,并编译和执行。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 4. 写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1.从https://www.360docs.net/doc/203633399.html,上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.编写Java Appet 程序打印“水仙花” 数 (它的个、十、百位数字的立 方的和等于该数本身,如:153=1^3+5^3+3^3) 3. 编写Java Application程序,分别用do-while和for循环计算 1+1/2!+1/3!+1/4!...的前20项和 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)编写Java Applet, 在public void paint(Graphics g)方法中加入实现要求功能的代码, 主要步骤是:从100到1000循环,判断每个 数是否符合水仙花数的特点,是则输出之。 3.编译运行程序,观察输出结果是否正确。 五、自做实验 1. 输出100以内的所有素数。

Java实验8实习报告

实验题1 学生信息管理函数。 数据库中的信息参考Exp9.1.txt,这些命令用来创建student表,包含学生的学号、姓名、年龄信息。 ①根据学号,可以查询到学生的姓名和年龄; ②给定学生的学号、姓名、年龄,在表中追加一行信息; ③给定学生的学号,可以从表中删除该学生的信息; [基本要求] 对上面的每一个功能编写相应的函数,并测试。 实验题2学生信息管理系统。 图3.15 学生信息管理系统界面 ①点击“追加”按钮,可以追加一个学生信息; ②点击“查询”按钮和“删除”按钮,可以按照学号查询或者删除一个学生信息; [技术提示] 可以使用上一题开发的函数。 实验题3 向student表连续插入5条记录,使用JDBC事务保证插入操作正确性,若若5条记录插入成功,则操作成功;否则回滚插入操作。 package数据库编程; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; public class Update{ public static String sql = null; private static java.sql.PreparedStatement statement; public Update(){}

public static void Select(String str,String selectSQL,Connection conn){ sql = selectSQL; try { statement = conn.prepareStatement(sql); statement.setString(1, str); ResultSet rs = statement.executeQuery(); ResultSetMetaData metaData = rs.getMetaData(); System.out.print(metaData.getColumnName(1)+" "); System.out.print(metaData.getColumnName(2)+" "); System.out.println(metaData.getColumnName(3)+" "); while(rs.next()){ String no = rs.getString(1); String name = rs.getString(2); int age = rs.getInt(3); System.out.println(""+no+" "+name+" "+age); } rs.close(); statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } package数据库编程; import java.sql.Connection; import java.sql.SQLException; public class InsertTest { public static String sql = null; public static void Insert(String No,String name,int age,String insertSQL,Connection conn){ sql = insertSQL; try { java.sql.PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, No); statement.setString(2, name); statement.setInt(3, age); statement.executeUpdate(); statement.close(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } package数据库编程;

实验八Java综合实验及练习

Java实验八综合实验及练习 第一部分:编程题 1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1 package ex8_1; public class Demo { public static void main(String[] args){ for(int i=1;i<6;i++){ for(int j=1;j<=i;j++) System.out.printf("%d ",j); for(int j=i-1;j>0;j--) System.out.printf("%d ",j); System.out.println(); } for(int i=4;i>0;i--){ for(int j=1;j<=i;j++) System.out.printf("%d ",j); for(int j=i-1;j>0;j--) System.out.printf("%d ",j); System.out.println(); } } } 2.给出年、月、日,计算该日是该年的第几天? package ex8_2; import java.util.Scanner; public class DateFun { public static boolean YearDemo(int year){ boolean flage=true; if((year%4==0&&year%100!=0)||year%400==0) flage=true; else flage=false; return flage;

Java实验八

实验八接口与多态 1.本实验的任务是设计和实现一个Soundable接口,该接口具有发声功能,同时还能调节声音的大小。Soundable接口的这些功能将会由三种声音设备来具体实现,他们分别是收音机Radio、随身听Walkman和手机Mobilephone。最后还要设计一个应用程序类来使用这些实现了Soundable接口的声音设备类。程序运行时,先询问用户想听哪种设备,然后程序就会按照该设备的工作方式来发出声音。 阅读并分析以下程序,将程序中的代码补充完整,编译并运行程序,查看结果。 //InterfaceTest.java import java.util.Scanner; interface Soundable { public void increaseVolume( ); public void decreaseVolume( ); public void stopSound( ); public void playSound( ); } class Radio implements Soundable { public void increaseVolume( ) { System.out.println("增大收音机音量"); } public void decreaseVolume( ) { 代码1 //输出减小随身听音量 } public void stopSound( ) { System.out.println("关闭收音机"); } public void playSound( ) { System.out.println("收音机播放广播"); } } class Walkman implements Soundable { public void increaseVolume( ) {

java 实验八 多线程 实验报告

实验八多线程 实验目标: (1)掌握使用Thread的子类创建线程;掌握实现Runable接口来实现多线程; (2)掌握线程之间的数据共享; (3)掌握线程之间的同步方法; (4)掌握线程之间的通信方法。 实验任务: 1、选择答题(请将答案标成红色,如(AB)): 1.下面关于线程的说法正确的是(ABD )。 A)Java 支持多线程机制。 B)一个线程创建并启动后,它将执行自己的run()方法,如果通过派生Thread类实现多线程,则需要在子类中重新定义run()方法,把需要执行的代码写run()方法中;如果通过实现Runnable接口实现多线程,则要编写run()方法的方法体。 C)要在程序中实现多线程,必须导入Thread类: import https://www.360docs.net/doc/203633399.html,ng.Thread; D)一个程序中的主类不是Thread的子类,该类也没有实现Runnable接口,则这个主类运行是不能控制主线程的休眠。 2.如果程序中创建了两个线程,一个的优先级是Thread.MAX_PRIORITY,另一个的优先级是正常的默认优先级,下列陈述哪个是对的?( A) A)正常优先级的线程不运行,直到拥有最高优先级的线程停止运行。 B)即使拥有最高优先级的线程结束运行,正常优先级的线程也不会运行。 C)正常优先级的线程优先运行。 D)上述说法都不对。 3.下面哪个是Runnable接口中的抽象方法(D)? A)start B)stop C)yield D)run 4.编译下面的程序,得到的结果是( C)。 public class A implements Runnable { public void run () { System.out.println("OK."); } public static void main (String[] args) { Thread Th=new Thread (new A()); Th.start(); } } A)程序不能编译,产生异常。 B)程序能编译运行,但没有任何结果输出。 C)程序能编译运行,输出结果:OK.。 D)上面说法都不对。 5.为什么处于激活状态的线程可能不是当前正在执行的线程?(BCD ) (备注:激活(unblock):如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。) A)因为已经执行完run()方法。B) 线程正在等待键盘输入。 C)该线程调用了wait()方法。D)该线程正在休眠状态。

Java实验八集合

计算机工程学院实验报告 课程名称:Java 班级:实验成绩: 指导教师:姓名: 实验项目名称:集合学号:上机实践日期: 实验项目编号:实验八组号:上机实践时间: 一、目的(本次实验所涉及并要求掌握的知识点) ●List与Iterarot接口 ●Map与HashMap ●Set、HashSet与TreeSet ●集合框架与Collections 二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图) 题目1:List与Iterarot接口 package NameDao; import java.util.List; public interface NameDao { public List getNameFromArray(String[] names); public int searchName(List nameList, String name); public boolean removeFromList(List nameList, int id); } package NameDao; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class NameDaoImpl implements NameDao{ @Override //将数组中的字符串放入列表 public List getNameFromArray(String[] names) { List list = new ArrayList(); for (String string : names) { list.add(string); } return list; }

Java实验八

第八次实验:包与接口以及常用工具类的使用 一、实验目的 了解Java 中包(package)和接口(interface)的作用,掌握包和接口的设计方法。掌握Math类,String类和StringBuffer类的使用。 二、实验要求 1.了解Java 系统包的结构,创建并使用自定义包。 2.掌握接口的定义与使用。 3.掌握Math类的使用。 4.掌握String类和StringBuffer类的使用 三、实验内容 (一)创建并使用自定义包 1.自定义包的声明方式 <自定义包名> 声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。 2.创建自定义包Mypackage 在存放源程序的文件夹中建立一个子文件夹Mypackage。例如,在“D:\java\javacode”文件夹之中创建一个与包同名的子文件夹Mypackage(D:\java\javacode\Mypackage),并将编译过的class 文件放入到该文件夹中。注意:包名与文件夹名大小写要一致。 3.在包中创建类 1)编写程序KY8_1.java,在源程序中,首先声明使用的包名Mypackage,然后创建 KY8_1类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。 2)源代码如下。 package Mypackage; //声明存放类的包 import java.util.*; //引用java.util 包 public class KY8_1 { private int year,month,day; public static void main(String[] args){} public KY8_1 (int y,int m,int d) { year = y; month = (((m>=1) & (m<=12)) ? m : 1); day = (((d>=1) & (d<=31)) ? d : 1); }

Java实验报告中的实验题

Java实验报告中的所有实验题 实验一略 实验二Java 基本语法练习 【完成实验项目】 1.输入一个整数,输出该数的二进制表示形式的字符串 2.编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。 3.打印小于1000的斐波纳契数 4. 输入一个梯形的上底、下底和高,求其面积 实验三面向对象基础编程 【完成实验项目】 1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类提供计算面积的方法getArea()方法,以及修改width和height的值及获得width和height当前值的方法。要求: (1)使用构造函数完成各属性的初始赋值 (2)使用getter和setter的形式完成属性的访问及修改 2. . 请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face 和suit:face描述一张牌的牌面值(如:"Ace", "Deuce", "Three","Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts", "Diamonds", "Clubs", "Spades")。定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。 实验四类的继承性和多态性 【完成实验项目】 2.设计一个名为Person的类和它的两个名为Student和Employee的子类 ●Employee类又有子类:教员类Faculty和职员类Staff。 ●每个人都有姓名、地址、xx号码 ●学生有班级号 ●教员有级别 ●职员有职务称号 ●覆盖每个类的toString方法,显示相应的类名和人名 ●编写测试程序,创建Person、 Student、Employee Faculty和Staff,并调用它们 的toString方法 实验五包、接口抽象类

相关主题
相关文档
最新文档