实验三 Java面向对象高级编程

实验三 Java面向对象高级编程
实验三 Java面向对象高级编程

实验三Java面向对象高级编程

一、实验目的

1. 掌握Java 面向对象编程技术

2. 能够使用继承创建子类并实现方法覆盖

3. 能够创建异类集合并使用多态

4. 能够创建抽象类和接口,并探究它们的多态特性

二、预备知识

1. JDK的安装设置:JDK/JRE/JVM;

2. Eclipse集成开发环境的绿色安装;

3. 掌握Java语言的面向对象特性(封装性、继承性、多态性);

4. 掌握Java语言的抽象类和接口。

三、实验描述

1. 实验类型:设计

2. 实验学时:4学时

3. 实验内容:2项(参照四)

四、实验内容

(1) 检查所使用的计算机系统:

1. 确认是否已安装JDK,并确认系统的环境变量设置;

2. 确认是否已绿色安装Eclipse集成开发环境。

(2) 实验内容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态

具体要求:

1. 在上述银行项目中,创建Customer类:

·位于包:com.mybank.domain中;

·向Customer类添加四个实例变量:firstName,lastName,accounts(Account对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数);

·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名、创建accounts数组和初始化accounts数组元素个数numberOfAccounts;

·添加getFirstName方法:该方法返回客户的firstName实例变量;

·添加getLastName方法:该方法返回客户的lastName实例变量;

·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts数组中;

·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量;

·添加getAccount方法:该方法返回与指定的index数组下标相关的帐户对象。

2. 创建SavingsAccount类,该类是Account类的子类:

·位于包:com.mybank.domain中;

·向SavingsAccount类中添加interestRate实例变量;

·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造方法传递initBalance参数,并初始化实例变量interestRate;

·添加accumulateInterest方法:用于计算客户的利息。

3. 创建CheckingAccount类,Account类的子类:

·位于包:com.mybank.domain中;

·向CheckingAccount类中添加overdraftAmount实例变量;

·添加一个有两个参数的公有构造方法:initBalance和overdraftAmount。调用父类构造方法传递initBalance参数,并初始化实例变量overdraftAmount;

·添加只有一个参数initBalance的另一个公有构造方法。用initBalance参数和overdraftAmount参数调用第一个构造方法,其中overdraftAmount参数使用默认值0.0;

·覆盖withdraw方法,方法参数为amount,balance变量继承于父类。下面是withdraw 方法的伪码:

if (balance < amount)

then

double overdraftNeeded = amount – balance

if (overdraftAmount < overdraftNeeded)

then transaction fails

else

balance = 0.0

decrement overdraftAmount by overdraftNeeded

else

decrement balance by amount

4. 创建TestBanking类:

·该类文件位于包:com.mybank.test

·该类有程序入口main() 函数;

·要求:创建一名客户的若干个不同类型的账户信息,然后依次访问每一个账户,并根据不同类型的账户信息做出不同的操作。(要求使用instanceof运算符测试判断账户的类型信息,如果是SavingsAccount,则计算账户的利息;如果是CheckingAccount,则进行取钱操作,可以进行适当额度的透支);

·最后输出客户账户的余额信息。

(4) 实验内容二:能够创建抽象类和接口,并探究它们的多态特性

具体要求:

1. 创建项目:InterfaceProject;

2. 创建Animal类,该类是抽象类:

·声明一个受保护的整数实例变量legs,记录动物的腿的数目;

·定义一个受保护的构造方法来初始化legs实例变量;

·声明抽象方法eat;

·声明具体方法walk来显示与动物行走方式有关的信息(包括腿的数目);

3. 创建Pet接口:声明三个抽象方法:

public String getName();

public void setName(String n);

public void play();

4. 创建Spider类:

·Spider类扩展了Animal类;

·定义一个无参数构造方法,调用父类构造方法来指明所有蜘蛛都有八条腿;

·实现eat方法;

5. 创建Cat类:

·声明String实例变量来存储宠物的名字;

·定义一个构造方法,使用String参数来指定猫的名字;该构造方法必须调用父类构造方法来指明所有猫都有四条腿;

·另外定义一个无参数的构造方法,该构造方法调用上一个构造方法(使用this关键字)来传递一个空字符串作为参数;

·实现Pet接口方法;

·实现eat方法;

6. 创建Fish类:

·声明String实例变量来存储宠物的名字;

·定义一个无参数的构造方法,该构造方法调用父类构造方法来指明鱼没有腿;

·实现Pet接口方法;

·覆盖walk方法,该方法调用所有的超级方法,并打印输出一条说明鱼不会行走的消息;

·实现eat方法;

7. 创建TestAnimal类:

·该类有程序入口main()函数;

·创建并操作前面所创建的类的实例;

·调用每个对象中的方法;

·对象类型转换;

·使用多态特性;

·使用super关键字调用父类方法。

五、实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

实验三1:

实验结果:

Account.java:

package com.mybank.domain;

import com.mybank.test.*;

public class Account { // 创建Account类

private double balance;

public void initBalance(double balance) {

this.balance = balance;

}

public boolean deposit(double amt) { // deposit(double

// amt),用于向帐户存钱,返回值是boolean型;

if (amt > 0) {

balance = balance + amt;

return true;

} else {

return false;

}

}

public boolean withdraw(double amt) { // withdraw(double amt),用于从帐户取钱if (balance > amt) {

balance = balance - amt;

return true;

} else {

return false;

}

}

public double getBalance() { // getBalance(),用于返回balance的值

return balance;

}

}

Customer1.java:

package com.mybank.domain;

public class Customer1 {// 创建Customer1类

private String firstname;

private String lastname;

private Account accouts[] = new Account[10];

private int numberofaccout;

public Customer1(String firstname, String lastname) {// 公有构造方法

this.firstname = firstname;

https://www.360docs.net/doc/517664086.html,stname = lastname;

numberofaccout = 0;

}

public String getFirstName() {// getFirstName方法:该方法返回客户的firstName实例变量;

return firstname;

}

public String getLastName() {// getLastName方法:该方法返回客户的lastName实例变量;

return lastname;

}

public void addaccout(Account accout) {// addAccount方法

accouts[numberofaccout] = accout;

numberofaccout++;

public int getnumberofaccout() {// getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量

return numberofaccout;

}

public Account getaccout(int index) {// getAccount方法:该方法返回与指定的index 数组下标相关的帐户对象。

return accouts[index];

}

}

Savingaccout.java:

package com.mybank.domain;

public class Savingaccout extends Account {// 创建SavingsAccount类,该类是Account类的子类:

private double interestrate;// 添加interestRate实例变量;

public Savingaccout(double balance, double interestrate) {// 公有构造方法

super.initBalance(balance);// 调用父类构造方法传递initBalance参数

this.interestrate = interestrate;

}

public double accumulateinterest() {// accumulateInterest方法:用于计算客户的利息。

return this.getBalance() * interestrate;

}

}

Checkingaccout.java:

package com.mybank.domain;

public class Checkingaccout extends Account {// 创建CheckingAccount类,Account类的子类:private double overdraftamount;

public Checkingaccout(int balance, double overdraftamount) {// 有两个参数的公有构造方法

super.initBalance(balance);

this.overdraftamount = overdraftamount;

public Checkingaccout(int balance) {// 只有一个参数initBalance的另一个公有构造方法this(balance, 0.0);

}

public boolean withdraw(double amount) {// 覆盖withdraw方法

if (this.getBalance() < amount) {

double overdraftneeded = amount - this.getBalance();

if (overdraftamount < overdraftneeded) {

return false;

} else {

this.initBalance(this.getBalance() - amount);

}

} else {

this.initBalance(this.getBalance() - amount);

}

return true;

}

}

Testingbank1.java:

package com.mybank.test;

import com.mybank.domain.*;

public class Testingbank1 {

public static void main(String[] args) {// 创建TestBanking类

/* 创建异类集合*/

Customer1 customer = new Customer1("zhao", "zhen");

customer.addaccout(new Checkingaccout(500, 100));

customer.addaccout(new Savingaccout(500, 0.02));

/* 使用instanceof运算符测试判断账户的类型信息*/

for (int i = 0; i < customer.getnumberofaccout(); i++) {

if (customer.getaccout(i) instanceof Checkingaccout) {

Checkingaccout m = (Checkingaccout) customer.getaccout(i);

m.withdraw(550);

m.deposit(100);

m.withdraw(900);

m.deposit(100);

}

if (customer.getaccout(i) instanceof Savingaccout) {

Savingaccout m = (Savingaccout) customer.getaccout(i);

m.accumulateinterest();

m.deposit(100);

m.withdraw(50);

}

}

/* 最后输出客户账户的余额信息。*/

for (int i = 0; i < customer.getnumberofaccout(); i++) {

System.out.println(customer.getaccout(i).getBalance());

}

}

}

实验三2:

实验结果:实验改进之处:创建Sleep接口拓展Pet接口。

Animal.java:

public abstract class Animal {// 创建Animal类,该类是抽象类:

protected int legs;

public Animal() {

}

protected Animal(int legs) {

this.legs = legs;

}

abstract void eat();// 抽象方法eat;

public void walk() {// 具体方法walk来显示与动物行走方式有关的信息(包括腿的数目);

System.out.println("this animal walk on" + legs + "legs");

}

}

public interface Pet {// 创建Pet接口:声明三个抽象方法

public abstract String getname();

public abstract void setname(String pet_name);

public abstract void play();

}

public interface Sleep extends Pet{//创建Sleep接口,继承Pet

void sleep();

}

Spider.java:

public class Spider extends Animal implements Pet,Sleep{//创建Spider类,Spider类扩展了Animal类

private String pet_name;

public Spider(){

super(8);

}

void eat(){//实现eat方法

System.out.println("Spider eat fly");

}

public void setname(String pet_name){

}

public void play(){

System.out.println("the spider play in hands");

}

public String getname(){

return pet_name;

}

public void speak(){

System.out.println("the cat makes no noise");

}

public void sleep(){//实现Sleep接口方法

System.out.println("the cat sleep on the wall");

}

}

Cat.java:

public class Cat extends Animal implements Pet,Sleep{//创建Cat类private String pet_name;

public Cat(String pet_name){//构造方法

super(4);

this.pet_name=pet_name;

}

public Cat(){//定义一个无参数的构造方法

this(null);

}

public void speak(){

System.out.println("the cat speak with maomao");

}

void eat(){//实现eat方法;

System.out.println("the cats like eatting fish");

}

/*实现Pet接口方法*/

public void play(){

System.out.println("the cat play with mice");

}

public String getname(){

return pet_name;

}

public void setname(String pet_name){

}

public void sleep(){//实现Sleep接口方法

System.out.println("the cat sleep with her host");

}

}

Fish.java:

public class Fish extends Animal implements Pet,Sleep{//创建Fish类private String pet_name;

public Fish(){

super(0);

}

/*实现Pet接口方法*/

public String getname(){

return pet_name;

}

public void setname(String pet_name){

this.pet_name=pet_name;

}

public void play(){

System.out.println("the fish swim in water");

}

void eat(){//实现eat方法

System.out.println("the fish eat rice");

}

public void walk(){//覆盖walk方法

System.out.println("this animal does not have legs");

}

public void speak(){

System.out.println("the fish makes no noise");

}

public void sleep(){//实现Sleep接口方法

System.out.println("the fish sleep with water");

}

}

TestAnimal.java:

public class TestAnimal {//创建TestAnimal类

public static void main(String[] args) {

Pet pet[]=new Pet[3];

pet[0]=new Cat();//创建并操作前面所创建的类的实例

pet[1]=new Fish();

pet[2]=new Spider();

for(Pet i:pet){//调用每个对象中的方法

i.play();

Animal animal=(Animal) i; //对象类型转换,使用多态特性

animal.walk();

Sleep sleep=(Sleep)i;

sleep.sleep();

}

for(int i=0;i<3;i++){//使用instanceof,向下转型

if(pet[i] instanceof Cat ){

Cat m=(Cat) pet[i];

m.speak();

}

if(pet[i] instanceof Fish ){

Fish m=(Fish) pet[i];

m.speak();

}

if(pet[i] instanceof Spider){

Spider m=(Spider) pet[i];

m.speak();

}

}

}

}

Java程序设计-实验报告1-模板 (1)

实验报告 课程名称Java程序设计 实验项目实验一类和对象 系别_________计算机_________ 专业/班级_______计算机类/1402______ 姓名_____李馨雪________ 实验日期______2015.10.10______ 成绩_______________________ 指导教师

一、实验题目:实验一类和对象 二、实验内容: (1)用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。 1)PC类与CPU类和HardDisk类关联的UML图如图所示。 其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法 将参数m的值赋值给speed。 HardDisk类要求getAmount()返回amount的值,setAmount(int m)方 法将参数m的值赋值给amount。 PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示 cpu的速度和硬盘的容量。 2)主类Test的要求 main()方法中创建一个CPU对象cpu,其speed设置为2200; main()方法中创建一个HardDisk对象disk,其amount设置为200; main()方法中创建一个PC对象pc, pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是 disk;调用show方法。 (2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下: 1)编写接口Animal,有2个抽象方法cry()和getAnimaName(); 2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称; 3)编写实现Animal接口的Dog类和Cat类。具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码: Simulator si=new Simulator();

java程序设计基础(第3版)实验指导答案 第三章

实验10 import java.util.*; public class shiyan10 { public static void main(String[] args) { int a=0,b=0,c=0,max=0; Scanner reader=new Scanner(System.in); System.out.println("从键盘输入第一个整数"); a=reader.nextInt(); System.out.println("从键盘输入第二个整数"); b=reader.nextInt(); System.out.println("从键盘输入第三个整数"); c=reader.nextInt(); if(a>b) max=a; else max=b; if(c>max) max=c; System.out.println("最大的数是"+max); } }//在程序中输入三个整数,比较它们的大小,输出最大的数 实验11 public class shiyan11 { public static void main(String[] args) { int s=0; for(int i=0;i<100;i++) { s=s+i; i++; } System.out.println("1+3+5+···+99="+s); } }//用for循环语句求1+3+5+···+99的值 实验12 import java.util.*; public class shiyan12 {

public static void main(String[] args) { int a=0,i=1,s=0; Scanner reader=new Scanner(System.in); while(a<50||a>100) { System.out.println("从键盘输入一个50~100的整数"); a=reader.nextInt(); } System.out.println("你输入的数是"+a); while(i<=a) { s=s+i; i++; } System.out.println("1+2+3+···+"+a+"="+s); } } //编写从键盘输入一个范围在50~100的整数,如果不正确,则继续输入;然后求1到输入整数的累加 实验13 public class shiyan13 { public static void main(String[]args) { int i=100,s=0; do { s=s+i; i--; } while(i>0); System.out.println("100+99+98+···+2+1="+s); } } //用do-while语句求100+99+···+2+1的值 实验14 import java.util.*; public class shiyan14 { public static void main(String[] args)

Java实验三实验报告

实验报告 课程名称面向对象课程设计 实验项目名称类的继承 班级与班级代码13计算机科学与技术1班实验室名称(或课室)SS1 205 专业计算机科学与技术 任课教师尹华 学号:12251102120 姓名:林淑英 实验日期:2014 年4 月28 日 广东财经大学教务处制

姓名林淑英实验报告成绩 评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验三类的继承、多态、接口、访问控制符与修饰符 实验目的:通过编程练习掌握类的继承,多态,接口,访问控制符与修饰符的使用方法。 实验原理:类的继承,接口。 实验设备:计算机,Eclipse。 实验题目: 1.设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年 龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。 编写一个测试程序,创建一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。 2.定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义 一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。 编写测试程序,创建B的对象,输出英文字母和中文字符串。 3.定义一个坐标类Pointer,成员变量包括x和y;成员方法有: (1)构造方法 (2)setX、setY、getX、getY、display方法 (3)类方法distance用来计算两点之间的距离 编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。

java 程序设计 实验五

C H A N G Z H O U U N I V E R S I T Y 实验报告 课程名称:JAVA程序设计 学生姓名:文浩班级计算机141 学号14416122 学院(系):信息数理学院指导教师:吕猛 实验时间:2016 年12 月 6 日实验名称:实验五基于Swing的图形用户界面开发实验

实验五基于Swing的图形用户界面开发实验 一实验容 (1)完成开发界面如图所示,实现如下功能 ①选中“查看已有名片”按钮,程序处于查看状态,可以在“名片列表”中选择要查看的名片,程序在“名片详实信息”栏显示该名片的详实信息,此状态中名片信息处于不可编辑状态 ②选中“添加新名片”按钮,程序处于添加状态,所有关于明天信息的项目都处于可编辑状态,设置完成相关信息后,单击“添加”按钮,在“名片列表”中出现新添加名片的名称。单击“清空”按钮可以清空还没提交的容 ③在查看状态和添加状态下,都可以通过点击“爱好”、“学历”单选按钮以显示名片的不同附加信息 (备注:名片附加信息部分,当点击“爱好”按钮时显示的如图1所示,当点击“学历”按钮时显示如图2所示。) 图1

图2 (2)记事本设计与实现 如图所示(1)编程实现如图所示的界面(2)实现文件、编辑、格式、查看,帮助菜单(3)实现记事本的基本功能

二实验目的 (1)理解组件的分类 (2)掌握容器、布局管理器、普通组件的使用 (3)理解事件处理机制的工作原理 (4)掌握事件的添加和功能代码的编写方法 三实验过程 (1)问题分析 答:名片的设计除了使用最基本的组件,如JButton,Jlist,JCheckBox,JTextField, JRadioButton, CardLayout以外,最主要的是逻辑事件的编写,在成功布局完见面后,就需要编写事件处理。首先,由于是名片信息,保存着一个人的基本信息,所以可以用一个类来表示,如PersonInf类,其次,由于是多个人的信息,可以通过ArrayList 来存放类;其次就是当点击按钮的时候,正确添加和显示信息,此处用到cardLayout 布局,可以减少界面的复杂度,在使用JList的时候,除了加滚动条意外,还需要listModel 获取数据等。 (2)代码编写 答: (1) public class PersonInf { public String yourname; public String address1;

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

JAVA 课后实验三

实验三类与对象 1、(1)创建一个Rectangle类,添加两个(private)属性width与height (2)创建一个构造方法,选择width与height为形式参数。 (3)在Rectangle类中添加两个方法计算矩形的周长和面积 2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。(一个文件中包含三个class和main) a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。 b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。 c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的

功能。

3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。

上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250. 这个例子中,B是A的一个子类。其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。 4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。

Java程序设计上机实验

班级号一学号_姓名一题号java(多文件应压缩为rar): 实验1:熟悉上机环境,编写并运行简单的java程序(3学时)实验目的 (1)熟悉Java程序开发环境J2SDK+JCreator的安装及使用 ⑵熟悉Java Application 和Applet程序的结构及开发步骤 ⑶熟练掌握if语句的使用 ⑷掌握Math.sqrt()等常用数学函数的用法 ⑸熟悉System.out.print()的用法 实验内容及要求 按Java Application 和Applet两种方式分别编写程序,求 一元二次方程ax2+bx+c=0的根(系数在程序中给定),并输出。 思考并验证 (1)分别给定以下几组系数,给出输出结果 a=1,b=5,c=3 a=4, b=4, c=1 a=2, b=3, c=2 : + i ________ +_ _______ i ⑵如果程序的public类的类名和源文件的文件名不一样会有什

么问题? (3) 将类的public 修饰去掉是否可行?接着再将类名换为其它是 否可行?这说明了什么? (4) 将程序中main 前面的public 去掉,重新编译执行你的程序,你看到 了什么信息? (5) 将程序中main 前面的static 去掉,重新编译执行你的程序,你看到 了什么信息?为什么? (6) 本次上机中,你还遇到了什么问题,是如何解决的?

班级号一学号_姓名一题号java (多文件应压缩为rar ): 实验 2:控制流程 1(3 学时 ) 实验目的 (1) 进一步熟悉使用 if 语句 (2) 掌握循环语句实现循环的方法 实验内容及要求 输出时,只使用下面的语句: System.out.print( “ ”); // 不换行 System.out.print( “* ”); // 并且不换行 System.out.print( “+”); // 并且不换行 System.out.println( “*”;) // 并换行 编写程序输出(注:在图形的中心处有一个加号 ' +'): 思考并验证 下面程序片段给出了从键盘输入一个整数的方法: import java.io.*; 输出一个空格, 并且 输出一个字符' * ', 输出一个字符' +', 输出一个

java程序设计基础实验27

实验27 类的构造方法1 实验要求:编写一个Java程序,在程序中定义Student类,Student类有三个构造方法,分别对不同的属性进行初始化 编写程序如下 class Student //定义类Student. { String name; int age; public Student() //定义无参的构造方法。 { System.out.println("Student()构造方法被调用"); } public Student(String c) //定义有一个参数的构造方法。 { name=c; System.out.println("Student(String newName)构造方法被调用"); } public Student(String a,int b) //定义有两个参数的构造方法。 { name=a; age=b; System.out.println("Student(String newName,intnewAge)构造方法被调用"); } public static void main(String[] args) { Student volu1=new Student(); //创建Student类的一个对象,不传入参数 Student volu2=new Student("张三"); //创建Student类的一个对象,传入一个参数:”张三” Student volu3=new Student("张三",15); //创建Student类的一个对象,传入两个参数:”张三”、15 } } 运行结果如下

程序分析如下: 程序中的Student类有三个构造方法,分别对不同的属性进行初始化。

JavaWeb 实验三

JavaWeb 实验三 一、JSP实验题: P105 例子4-1 P108 例4-2 P109 例4-3 P110例4-4 P111 例4-6 P115 例4-8 P118 例4-9 P124 例4-12 二、mysql实验题 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TABLE score ( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT , stu_id INT(10) NOT NULL , c_name VARCHAR(20) , grade INT(10) ); 2.为student表和score表增加记录 向student表插入记录的INSERT语句如下: INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区'); INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区'); INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市'); INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市'); INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市'); INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市'); 向score表插入记录的INSERT语句如下: INSERT INTO score VALUES(NULL,901, '计算机',98); INSERT INTO score VALUES(NULL,901, '英语', 80);

Java__实验三

《Java程序设计》实验报告 目录: 1题目 2目的和要求 3功能说明 4设计流程图 5源程序 6数据结果 7实验心得与体会 1、题目 用户自行定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察执行结果。例如:用户密码的合法化验证,要求密码由4-6个数字组成,若长度不落在这个范围或不是由数字组成,抛出自己的异常。 2、目的和要求 熟悉ava的异常机制处理原理,掌握用户自定义异常类,掌握如何抛出异常、捕获并处理异常。 3、功能说明 用户密码的合法化验证,密码由4-6位数字组成,若不在范围内,则抛出“密码超出范围”,若不是数字,则抛出“密码格式错误”,输入密码正确则输出“密码是”。

— 4、设计流程图 5、源代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; class passwordException extends Exception { public passwordException() { super(); } public passwordException(String s) { super(s);JOptionPane.showMessageDialog(null,s); } } public class WUXING { public static String passwordcheck()throws passwordException { String str=JOptionPane.showInputDialog(null,"输入密码:"); if(str.length()<4||str.length()>6) { throw new passwordException("密码超出范围"); } else if (!str.matches("\\d+")) { throw new passwordException("密码格式错误!!"); } return str; } public static void main(String args[]) { try{ String password = passwordcheck(); JOptionPane.showMessageDialog(null,"密码是:" + password); }catch(passwordException e){ e.printStackTrace();

Java程序设计实验报告分析

学生实验报告 (理工类) 课程名称: JAVA程序设计专业班级: 13电子信息工程(2)学生学号: 1305102056 学生姓名:许伟铭 所属院部:软件工程学院指导教师:王倩倩 20 15 ——20 16 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:JAVA编程基础实验学时: 4 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.04.08 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序。记录操作过程。 Java应用程序参考如下: 思考:1. 适当添加注释信息,通过javadoc生成注释文档; 2. 为主方法传递参数“Hello world”字符串,并输出; 3. 压缩生成".jar"文件。 (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 记录操作过程。 Java小应用程序参考如下:

《JAVA面向对象设计》课程标准

《JAVA面向对象设计》课程标准 课程类别:必修课适应专业:软件技术相关专业 课程学时:64节学分:4 一、课程定位 《JAVA面向对象设计》主要讲述了面向对象JAVA程序设计的概念和应用,训练学生掌握面向对象的概念和基本设计方法,掌握JavaSE技术的主要内容和编程方法,是计算机软件专业的一门专业基础骨干课程。 通过本课程的学习,第一部分着重介绍Java编程的基本内容。主要有java的基本环境、java语言基础、java工程规范、基本特征、数据类型、流程控制、数组、函数、异常等,通过这部分的学习可以用java语言完成简单编程逻辑的程序编写;第二部分,着重学习JavaSE类库的应用。主要包括输入/输出、java多线程、容器类、网络通信、java界面编程、事件监听与响应、Java数据库编程等;第三部分,着重介绍Java面向对象的概念和编程。包括类和对象、封装、继承、多态、抽象类、接口、设计模式的概念和使用方法,通过这部分学习,建立面向对象程序设计的概念和应用的基本认识。 通过本课程的学习,能够训练学生编程逻辑,了解面向对象的概念和基本实现方法,掌握JAVASE技术的主要内容,为后续的《JAVA EE程序设计》《移动互联网程序设计》等课程打下坚实的基础。 二、课程目标 本课程目标分为知识目标(即学生应该掌握的基本理论和基本方法)、总体能力目标(即学生学习完本课程后应该达到的职业技能)。 本课程知识目标: 1)掌握JAVA语言中数据类型与表达式,语句控制和数组的概念及用法。 2)掌握异常的概念、分类和异常处理编程,自定义异常的实现。 3)熟悉Java常用工具类的使用(字符串类、系统类、时间类、格式化类等)4)掌握线程的概念、意义,创建方法、调度方法、同步机制、线程通信的概

(完整版)JAVA实验3答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验三. 分支与循环语句课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 9月22日 一、实验目的 (1)学习掌握Java中的if-else if-else多分支语句; (2)学习使用Java 程序中的if-else分支和while循环语句解决问题。 二、实验任务 完成实验三指导上实验1、实验2的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 回文数 编写一个Java应用程序。用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。 代码如下: Number.java import java.util.Scanner; public class Number{ public static void main(String args[]){ int number=0,d5,d4,d3,d2,d1; Scanner reader=new Scanner(System.in); System.out.println("输入一个1至99999之间的数"); number=reader.nextInt(); if(number>=1&&number<=99999){ d5=number/10000; d4=number%10000/1000; d3=number%1000/100; d2=number%100/10; d1=number%10; if(d5!=0){ GDOU-B-11-112

java实验报告实验3答案

实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) {

Java程序的设计实验报告

信息科学与工程学院 课程设计 题目:图书管理系统 姓名:晓雨颖 学号: 201312140115 201312140120 班级: 13级本科四班物联网 课程: Java程序设计 任课教师梦琳 2014年12月20日

课程设计任务书及成绩评定

目录 1前言 (3) 1.1设计目的 (4) 1.2设计任务 (4) 1.3运行环境 (4) 2总体设计 (5) 2.1设计原理............................................. 错误!未定义书签。3详细设计实现.. (5) 3.1 代码 (5) 3.2 登陆后事件处理 (12) 4心得体会................................................ 错误!未定义书签。

1前言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发容和软硬件环境等因素来选择一种合适的开发 工具。

java实验报告1(程序设计基础)

2012—2013学年第 1 学期 合肥学院数理系 实验报告 课程名称:《面向对象程序设计》 实验项目:程序设计基础 实验类别:综合性□设计性□验证性√ 专业班级:10信息与计算科学班 姓名:学号: 实验地点:校内机房 实验时间:2012.10.22 —2012.10.28 指导教师:钱泽强成绩:

一、实验目的 熟悉Java的编程环境;通过编程掌握Java程序的调试;提高学生的分析问题、解决问题的能力;理解Java语言的基本结构和程序设计方法。 二、实验内容 1、安装并配置JDK,使用Eclipse创建Java程序,并调试运行; 2、了解 Java Application应用程序和Java Applet程序; 3、通过编程掌握Java的基本,并提高分析问题和解决问题的能力。 三、实验方案(程序设计说明) [题目1] 安装Eclipse并配置JDK。 [题目2] 使用Eclipse创建Application程序,并调试运行。 public class test1 { public static void main(String []args) { System.out.println("hello"); } } [题目3] 在Eclipse中创建Applet程序并调试运行。 import java.awt.*; import java.applet.*; public class test2 extends Applet { public void paint(Graphics g) { g.drawString("hello",20,20);} } [题目4] 掌握输入和输出,编写程序求任意两个实型数据的和。 [题目5] 掌握数组的使用,编写程序求一组整型数据的最大值。 四、实验程序和运行结果 请附页记录正确的源程序 五、实验总结 六、教师评语及成绩

《Java面向对象程序设计》(第2版)课后答案

Java面向对象程序设计 (编著耿祥义张跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用Java解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7. D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.360docs.net/doc/517664086.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/517664086.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/517664086.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3.float型常量后面必须要有后缀“f”或“F”。 对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } } 5.数组名字.length 6.数组名字.length 7.【代码1】A,65 【代码2】-127

java实验答案全

实验3:Java流程控制及数组 4.编写一个Java Application程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。 实验4:Java类与对象 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得性别”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的

3.按下面的要求完成Java Application程序,写出程序的运行结果。 (1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。

实验5:Java继承与多态 2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (1)设计一个基类Student描述学生的共同特征。 (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。 (4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相

Java程序设计慕课版实验一

一、实验目的 (1)熟系编写Java程序的开发工具—Eclipse (2)掌握Java基础语法 二、实验内容、步骤方法、结果 1、使用Eclipse开发Java程序 package com.hello; public class HelloWorld { public static void main(String[] args) { System.out.println("你好,Java"); } } 2、输出字符串 package com.CharPtint; public class CharPrint { public static void main(String[] args) { char c1,c2; char c3; char c4; c1='A'; c2=' '; c3=66; c4='#'; System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4);

} } 3、截取字符串 package com.CharPtint; public class SubStr { public static void main(String[] args) { String str="abc123def"; System.out.println(str.substring(3,7)); System.out.println(str.substring(7)); System.out.println(str.charAt(0)); System.out.println(str.charAt(8)); } }

Java程序设计基础实验报告

Java程序设计基础实验报告50—53 实验50 FileInputStream类的应用 实验目的: 1.学习FileInputStream类的语法格式 2.学习FileInputStream类的使用 实验要求 编写一个Java程序,在main()中生成FileInputStream的一个实例,使它能打开文件myfile.txt,并能够把文件内容显示在屏幕上。 程序运行效果:如图所示 程序模板:package https://www.360docs.net/doc/517664086.html,.tt; import java.io.*; class ShowFile { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub int i; FileInputStream fin; fin=new FileInputStream("d:\\myfile.txt"); do{ i=fin.read(); if(i!=-1) System.out.print((char)i); }while(i!=-1); fin.close(); } }

实验51 FileOutputStream类的应用 实验目的: 3.学习FileOutputStream类的语法格式 4.学习FileOutputStream类的使用 实验要求:编写一个Java程序,把文件myfile.txt复制到youfile.txt文件中。 程序运行效果:如图所示 程序模板:package https://www.360docs.net/doc/517664086.html,.tt; import java.io.*; class CopyFile { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub int i; FileInputStream fin; FileOutputStream fout; fin=new FileInputStream("d:\\myfile.txt"); fout=new FileOutputStream("d:\\yourfile.txt"); do{ i=fin.read(); if(i!=-1) fout.write(i); }while(i!=-1); fin.close(); fout.close(); System.out.print("myfile.txt内容已经被复制到yourfile.txt文件中"); } }

相关文档
最新文档