文档库 最新最全的文档下载
当前位置:文档库 › Java程序设计实验指导书二

Java程序设计实验指导书二

实验指导二

实验1:Eclipse的安装与配置

一、实验目的

(1)学习从网络上下载并安装配置Eclipse开发工具。

(2)学习编写简单的java程序

(3)学习编写部署JSP工程。

二、实验任务

用Eclipse完成简单的JSP页面网页

三、实验内容

Eclipse的安装与配置

1.安装Eclipse

2.Eclipse的环境配置

先运行MyEclipse软件,第一次运行时需要建立一个工程文件目录,这里根据个人习惯自行建立。进入Eclipse界面后:

第一步:选择建立Java工程。

第二步:建立class文件

第三步: 实现Hello World程序

第四步: 用Eclipse 执行Hello World程序实验2:Java类与对象

一、实验目的

(1)掌握Java类的继承关系和派生方法。

(2)理解多态的概念与使用。

(3)掌握接口的定义和使用。

二、实验任务

(1)按要求编写一个Java程序。

(2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。

三、实验内容

1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。

2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student 类的对象,并验证新增加的功能。

class Student{

private long studentID;

private int classID;

private String name;

private String sex;

private int age;

public Student(long studentID,int classID,String name,String sex,int age){

this.studentID=studentID;

this.classID=classID;

https://www.wendangku.net/doc/184688618.html,=name;

this.sex=sex;

this.age=age;

}

public long getStudentID(){

return studentID;

}

public int getClassID(){

return classID;

}

public String getName(){

return name;

}

public String getSex(){

return sex;

}

public int getAge(){

return age;

}

public String toString(){

return "学号:"+getStudentID()+"\n班号:"+getClassID()+"\n姓名:"+getName()+"\n性别:"+getSex()+"\n年龄:"+getAge();

}

}

public class StudentDemo{

public static void main(String[] args){

Student s1=new Student(90221,2,"Tom","male",20);

System.out.println(s1.toString());

}

}

运行结果:

实验3:使用修饰符

有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符如下。Public,private,protected,package,static,final.

1.程序功能:通过两个类StaticDemo、KY3_4说明静态变量、方法与实例变量、方法的区别。

2.编写类文件KY3_4.java,程序源代码如下。

class StaticDemo {

static int x;

int y;

public static int getX() {

return x;

}

public static void setX(int newX) {

x = newX;

}

public int getY() {

return y;

}

public void setY(int newY) {

y = newY;

}

}

public class KY3_4 {

public static void main(String[] args) {

System.out.println("静态变量x="+StaticDemo.getX());

System.out.println("实例变量y="+StaticDemo.getY()); //非法,编译时将出错

StaticDemo a= new StaticDemo();

StaticDemo b= new StaticDemo();

a.setX(1);

a.setY(2);

b.setX(3);

b.setY(4);

System.out.println("静态变量a.x="+a.getX());

System.out.println("实例变量a.y="+a.getY());

System.out.println("静态变量b.x="+b.getX());

System.out.println("实例变量b.y="+b.getY());

}

}

3.对上面的源程序进行编译,排错并运行

实验4:用户登录程序设计

实现一个用户登录程序,其中要有三个类:主类(有主方法的类)、Check类、Operator

实验5:Java继承与多态

一、实验目的

(1)掌握Java类的定义和使用方法。

(2)掌握对象的声明和使用。

(3)构造函数的概念和使用。

(4)掌握类及其成员的访问控制符的使用。

(5)掌握包的概念和使用。

二、实验任务

(1)输入根据给定的Java Application程序,写出运行结果。

(2)按照要求编写Java Application程序。

三、实验内容

1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。

1:class SuperClass {

2:int x;

3:SuperClass() {

4:x=3;

5:System.out.println("in SuperClass : x=" +x);

6:}

7:void doSomething() {

8:System.out.println("in SuperClass.doSomething()");

9:}

11:}

1:class SubClass extends SuperClass {

2:int x;

3:SubClass() {

4:super(); //调用父类的构造方法

5:x=5; //super( ) 要放在方法中的第一句

6:System.out.println("in SubClass :x="+x);

7:}

8:void doSomething( ) {

9:super.doSomething( ); //调用父类的方法

10:System.out.println("in SubClass.doSomething()");

11:System.out.println("super.x="+super.x+" sub.x="+x);

12:}

14:}

1:public class Inheritance {

2:public static void main(String args[]) {

3:SubClass subC=new SubClass();

4:subC.doSomething();

5:}

6:}

运行结果:

2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:

(1)设计一个基类Student描述学生的共同特征。

(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。

(3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。

(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。

class Student{

private String name;

private int classA,classB,classC;

public Student(String name,int classA,int classB,int classC){

https://www.wendangku.net/doc/184688618.html,=name;

this.classA=classA;

this.classB=classB;

this.classC=classC;

}

public String getName(){

return name;

}

public int getAverage(){

return (classA+classB+classC)/3;

}

}

class UnderGraduate extends Student{

public UnderGraduate(String name,int classA,int classB,int classC){

super(name,classA,classB,classC);

}

public void isPass(){

if(getAverage()>=60)

System.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",可以拿到学士学位。");

else

System.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到学士学位。");

}

}

class Graduate extends Student{

public Graduate(String name,int classA,int classB,int classC){

super(name,classA,classB,classC);

}

public void isPass(){

if(getAverage()>=80)

System.out.println("研究生"+getName()+"的三科平均分为:"+getAverage()+",可以拿到硕士学位。");

else

System.out.println("研究生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到硕士学位。");

}

}

public class StudentDemo{

public static void main(String[] args){

UnderGraduate s1=new UnderGraduate("Tom",55,75,81);

Graduate s2=new Graduate("Mary",72,81,68);

s1.isPass();

s2.isPass();

}

}

运行结果:

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:

(1)经理(Manager)——每月获得一份固定的工资

(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。

(3)一般工人(Worker)——则按他每月工作的天数计算工资。

根据上述要求试用类的继承和相关机制描述这些功能,并编写一个Java Application程序,演示这些类的用法。(提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。)

abstract class Employee{

private String name;

public Employee(String name){

https://www.wendangku.net/doc/184688618.html,=name;

}

public String getName(){

return name;

}

public abstract double computeSalary();

}

class Manager extends Employee{

private double monthSalary;

public Manager(String name,double monthSalary){

super(name);

this.monthSalary=monthSalary;

}

public double computeSalary(){

return monthSalary;

}

}

class Salesman extends Employee{

private double baseSalary;

private double commision;

private int qualtities;

public Salesman(String name,double baseSalary,double commision,int qualtities){ super(name);

this.baseSalary=baseSalary;

https://www.wendangku.net/doc/184688618.html,mision=commision;

this.qualtities=qualtities;

}

public double computeSalary(){

return baseSalary+commision*qualtities;

}

}

class Worker extends Employee{

private double dailySalary;

private int days;

public Worker(String name,double dailySalary,int days){

super(name);

this.dailySalary=dailySalary;

this.days=days;

}

public double computeSalary(){

return dailySalary*days;

}

}

public class EmployeeDemo{

public static void main(String args[]){

Manager e1=new Manager("张三",10000);

Salesman e2=new Salesman("李四",2000,50.4,63);

Worker e3=new Worker("王五",79.5,28);

System.out.println("经理"+e1.getName()+"的月工资为:"+https://www.wendangku.net/doc/184688618.html,puteSalary());

System.out.println("销售人员"+e2.getName()+"的月工资为:"+https://www.wendangku.net/doc/184688618.html,puteSalary());

System.out.println("工人"+e3.getName()+"的月工资为:"+https://www.wendangku.net/doc/184688618.html,puteSalary());

}

}

运行结果:

相关文档
相关文档 最新文档