湖北师范大学Java实验五

实验五  类和对象

1.设计一个自动铅笔类AutoPencil,有1个属性boolean penPoint(笔尖是否伸出),有4个函数:

   (1)构造函数AotoPencil(),将penPoint置为false

   (2)按压操作函数void  knock(),将penPoint置反

   (3)获取笔尖状态函数 boollean getPenPoint()

   (4)main函数

     创建对象并对实例对象进行按压操作,显示笔尖的状态。

package diyiti;
public class AutoPencil {
	private boolean penPoint;
	public AutoPencil() {
		penPoint=false;
    }
public void knock() {
	penPoint=!penPoint;	
	}
	public Boolean getPenPoint() {
		return penPoint;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AutoPencil a=new AutoPencil();
		
		a.knock();
System.out.println("笔的状态为:"+a.getPenPoint());
	}
}

2.设计一个汽车类Car,有2个属性车主owner和油量oil,有7个函数:

(1)构造函数Car(String owner,double oil)

   (2)构造函数Car(String owner),油量置为0

   (3)加油操作函数void  addOil(double oil)

   (4)行驶操作函数void  drive(int distance)

        假设每100公里的耗油量为定值(自己设置),根据行驶的公里数更新油量。

   (5)获得车主信息函数String  getOwner()

   (6)获得油量函数double getOil()

   (7)main函数

        创建对象并对实例对象进行加油、行驶操作,显示车主、油量。

package dierti;
public class Car {
String owner;
double oil;
Car(String owner,double oil){//车主1
	this.owner=owner;
	this.oil=oil;
}
Car(String owner){//车主2
	oil=0;
	this.owner=owner;
}
void addOil(double oil){//加油
	this.oil+=oil;
}
void drive(int distance){//行驶
	this.oil=this.oil-(distance/100)*15;
}
public String getOwner(){
	return owner;
}
public double getOil(){
	return oil;
}
	public static void main(String[] args) {
Car a=new Car("张三",100.0);
Car b=new Car("李四");
a.addOil(50);
b.addOil(200);
a.drive(500);
b.drive(300);
System.out.println("车主是:"+a.getOwner());
System.out.println("油量还有:"+a.getOil());
System.out.println("车主是:"+b.getOwner());
System.out.println("油量还有:"+b.getOil());
	}
}

3. 编写Java程序模拟简单的计算器。 定义名为Number的类,其中有两个私有的整型数据成员x和y。有5个函数:

(1)构造函数Number(int x,int y)

(2)加法运算函数 int addition( )

(3)减法运算函数 int subtration( )

(4)乘法运算函数 int multiplication( )

(5)除法运算函数 int division( )

另外编写一个测试类,对Number类进行测试。

package disanti;
public class Number {
int x,y;
public Number(int x,int y){
	this.x=x;
	this.y=y;
}
public int addition(){
	return x+y;
}
public int subtration(){
	return x-y;
}
public int multiplication(){
	return x*y;
}
public double division(){
	return (double)x/y;
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Number a=new Number(8,5);
System.out.println(+a.addition());
System.out.println(+a.subtration());
System.out.println(+a.multiplication());
System.out.println(+a.division());
	}
}

4. 定义长方形类Rectangle,含:

(1)属性

int width;

int height;

    (2)方法

        Rectangle():宽、高默认值为1;

   Rectangle(int val):宽、高均为参数值;

Rectangle(int width,int height):

int getSquare():计算面积;

int getPerimeter():计算周长;

另外编写测试类进行测试。

package disiti;
public class Rectangle {
int width;
int height;
public Rectangle(){
	this.width=1;
	this.height=1;
}
public Rectangle(int val){
	width=val;
	height=val;
}
public Rectangle(int width,int height){
	this.width=width;
	this.height=height;
}
public int getSquare(){
	return width*height;
}
public int getPerimeter(){
	return 2*(width+height);
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Rectangle a=new Rectangle(5,2);
System.out.println("面积为:"+a.getSquare());
System.out.println("周长为:"+a.getPerimeter());
	}
}

5. 定义一个时间类MyTime,有三个属性hour,minute,second。为MyTime类定义构造方法,以便创建对象时初始化成员变量。除了构造函数外,还要创建以下方法:

(1)nextSecond( ):时间经过1秒

(2)nextMinute( ):时间经过1分

(3)nextHour( ):时间经过1小时

(4)prevSecond( ):前1秒

(5)prevMinute( ):前1分

(6)prevHour( ):前一小时

(7)display( ):以HH:MM:SS格式显示时间

另外编写测试类,进行测试。

package diwuti;
import java.util.Formatter;
public class MyTime {
int hour;
int minute;
int second;
public void nextSecond(){
	this.second+=1;
}
public void nextMinute(){
	this.minute+=1;
}
public void nextHour(){
	this.hour+=1;
}
public void preSecond(){
	this.second-=1;
}
public void preMinute(){
	this.minute-=1;
}
public void preHour(){
	this.hour-=1;
}
void display(){
	Formatter f=new Formatter(System.out);
	f.format("%02d:%02d:%02d:\n",hour,minute,second);
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
MyTime a=new MyTime();
a.hour=14;
a.minute=23;
a.second=41;
a.nextMinute();
a.preHour();
a.preSecond();
a.display();
	}
}

6. 编写程序使用复数类Complex验证两个复数 2+2i 和3+3i 相加产生一个新的复数5+5i 。复数类Complex满足如下要求:

(1)属性

int realPart :复数的实部;

int imaginPart:复数的虚部;

(2)方法

Complex( ) : 构造方法,将复数的实部和虚部都置0;

Complex( int r , int i ) : 

Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结 果仍是一个复数值,返回给此方法的调用者。

String toString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中 a 和 b分别为实部和虚部的数据。

另外编写一个测试类Test,对Complex类进行测试。

package diliuti;
public class Complex {
int realPart;
int imaginPart;
public Complex(){
	realPart=0;
	imaginPart=0;
}
public Complex(int r,int i){
	realPart=r;
	imaginPart=i;
}
public Complex complexAdd(Complex a){
	realPart=realPart+a.realPart;
	imaginPart=imaginPart+a.imaginPart;
	return a;
}
public String toString() {
	return realPart+"+"+imaginPart+"i";
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Complex b=new Complex(2,2);
Complex c=new Complex(3,3);
b.complexAdd(c);
System.out.println(b.toString());
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值