您的位置:首页 > 其它

4.2 实验练习

2013-03-20 21:54 369 查看
4.2.1 机动车的类封装

class Vehicle{
double speed=0.0;
int power=0;
void speedUp(int s){
speed=s+speed;
}
void speedDown(int d){
speed=speed-d;
}
void setPower(int p){
power=p;
}
int getPower(){
return power;
}
double getSpeed(){
return speed;
}
}

public class User{
public static void main(String args[]){
Vehicle car1,car2;
car1=new Vehicle();
car2=new Vehicle();
car1.setPower(128);
car2.setPower(76);
System.out.println("car1的功率是:"+car1.getPower());
System.out.println("car2的功率是:"+car2.getPower());
car1.speedUp(80);
car2.speedUp(80);
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
}
}



4.2.2 有理数的类封装

class Rational{
int numerator=1;
int denominator=1;
void setNumerator(int a){
int c=f(Math.abs(a),denominator);
numerator=a/c;
denominator=denominator/c;
if(numerator<0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
void setDenominator(int b){
int c=f(numerator,Math.abs(b));
numerator=numerator/c;
denominator=b/c;
if(numerator<0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
int getNumerator(){
return numerator;
}
int getDenominator(){
return denominator;
}
int f(int a,int b){
if(a==0){
return 1;
}
if(a<b){
int c=a;
a=b;
b=c;
}
int r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b;
}
return b;
}
Rational add(Rational r){
int a=r.getNumerator();
int b=r.getDenominator();
int newNumerator=numerator*b+denominator*a;
int newDenominator=denominator*b;
Rational result=new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
Rational sub(Rational r){
int a=r.getNumerator();
int b=r.getDenominator();
int newNumerator=numerator*b-denominator*a;
int newDenominator=denominator*b;
Rational result=new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
Rational muti(Rational r){
int a=r.getNumerator();
int b=r.getDenominator();
int newNumerator=numerator*a;
int newDenominator=denominator*b;
Rational result=new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
Rational div(Rational r){
int a=r.getNumerator();
int b=r.getDenominator();
int newNumerator=numerator*b;
int newDenominator=denominator*a;
Rational result=new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
}

public class Computer{
public static void main(String args[]){
Rational r1=new Rational();
r1.setNumerator(1);
r1.setDenominator(5);
Rational r2=new Rational();
r2.setNumerator(3);
r2.setDenominator(2);
Rational result=r1.add(r2);
int a=result.getNumerator();
int b=result.getDenominator();
System.out.println("1/5+3/2 = "+a+"/"+b);
result=r1.sub(r2);
a=result.getNumerator();
b=result.getDenominator();
System.out.println("1/5-3/2 = "+a+"/"+b);
result=r1.muti(r2);
a=result.getNumerator();
b=result.getDenominator();
System.out.println("1/5×3/2 = "+a+"/"+b);
result=r1.div(r2);
a=result.getNumerator();
b=result.getDenominator();
System.out.println("1/5÷3/2 = "+a+"/"+b);
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: