Java程序设计(二)

类与对象

实验编号: 实验二
实验主题: 类与对象
实验目的: (1)理解面向对象程序设计与过程化程序设计的区别,理解类和对象的概念,掌握如何编写和使用类;
(2)理解数据成员、方法和构造方法的概念,掌握在类中的声明和使用; (3)理解重载的概念,掌握重载的使用;
(4)理解继承和多态的概念,掌握它们的使用; (5)理解封装的概念,掌握封装的使用。
实验要求: (1)认真理解类、对象、数据成员、方法、构造方法、重载、多态、继承、封装等基本概念; (2)掌握类的定义和使用方法;
(3)在Eclipse或Netbeans环境下完成选做实验内容; (4)认真撰写完整的实验报告。
实验步骤: (1)首先,声明和定义类,在类中定义数据成员、方法和构造方法; (2)定义一个包含main方法的类,测试已经定义好的类。
实验提示: (1)注意数据成员的初始化; (2)注意在继承的层次中构造方法的调用次序; (3)注意遵循Java的命名风格;
(4)注意public,private,protected的区别和使用。

题目2-1:复数类
编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类(应用程序)测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。


import java.util.Scanner;

public class test2_1 {
	double re;//实部
	double vi;//虚部
	public test2_1(double x,double y){//带参数的构造函数
		re=x;
		vi=y;
	}
	public test2_1(){//无参构造函数
		re=1;
		vi=2;
	}
	public String toString() {
		if(re!=0) {
			if(vi<0) return re+vi+"i";
			else if(vi==0) return re+"";
			else return re+"+"+vi+"i";
		}
		else {
			if(vi!=0) return vi+"i";
			else return vi+"";
		}
	}
	public test2_1 add(test2_1 Z) {//复数加
		double a=this.re+Z.re;
		double b=this.vi+Z.vi;
		return new test2_1(a,b);
	}
	public test2_1 sub(test2_1 Z) {//复数减
		double a=this.re-Z.re;
		double b=this.vi-Z.vi;
		return new test2_1(a,b);
	}
	public static void main(String[] args) {
		var scan = new Scanner(System.in);
		double a,b;
		test2_1 Z1,Z2,Z3;
		while(scan.hasNext()) {
			a=scan.nextDouble();
			b=scan.nextDouble();
			Z1=new test2_1(a,b);
			Z2=new test2_1();
			Z3=Z1.add(Z2);
			
			System.out.println("复数加:"+Z3);
			Z3=Z1.sub(Z2);
			System.out.println("复数减:"+Z3);
		}
	}
}

题目2-2:图书借阅第一版
编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。

在这里插入代码片

题目2-3:Employee类层次结构
创建四个类,分别为Employee类、SalariedEmplyee类、HourlyEmployee类和CommissionEmployee类。其中Employee类是其他三个类的父类。Employee类包含姓名和身份证号。除此之外,SalariedEmployee类还应包含每月工资;HourlyEmployee类还应包含每小时工资数和工作时间数;CommissionEmployee还应包含提成比例和销售总额。每个类都应有合适的构造方法、数据成员的设置和读取方法。编写一个应用程序,创建这些类的对象,并输出与对象相关的信息。注意子类有时需调用父类的构造方法和被覆盖的方法,成员变量定义为private,对有些方法实现重载。

在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值