Demo.class为题目所给,Fraction.class为题目内容。 此题有助于初学者理解创建对象的过程和自己构造class的过程。 注意:在创建对象时,对象变量仅仅是对象的管理者,所以无论是Fraction作为函数类型还是参数类型,必须记得new出一个新对象。 这可能也是大多数初学者有疑问的点。
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Fraction a = new Fraction(in.nextInt(), in.nextInt());
Fraction b = new Fraction(in.nextInt(),in.nextInt());
a.print();
b.print();
a.plus(b).print();
a.multiply(b).plus(new Fraction(5,6)).print();
a.print();
b.print();
in.close();
}
}
class Fraction {
private int a=0,b=0;
public Fraction(int a,int b){
int min=0;
if(a>b){
min=b;
}else if(b>a){
min=a;
}
if (min!=1&&a!=b) {
for (; min != 1; min--) {
if (a % min == 0 && b % min == 0) {
break;
}
}
if(min!=1) {
while (a % min == 0 && b % min == 0) {
a /= min;
b /= min;
}
}
}
this.a=a;
this.b=b;
}
public double toDouble(){
double ab=(double)this.a/(double)this.b;
return ab;
}
public Fraction plus(Fraction r){
int a1=this.a*r.b+this.b*r.a;
int b1=this.b*r.b;
return new Fraction(a1,b1);
}
public Fraction multiply(Fraction r){
int a1=this.a*r.a;
int b1=this.b*r.b;
return new Fraction(a1,b1);
}
public void print(){
if(a!=b) {
System.out.println(a + "\\" + b);
}else if(a==b){
System.out.println("1");
}
}
}
|