翁恺老师Java进阶第一周的编程题
import java.util.Scanner;
class Fraction{
int x;
int y;
Fraction(int a,int b){
this.x=a;
this.y=b;
}
Fraction plus(Fraction r) {
Fraction k=new Fraction(0,0);
if(r.y==this.y) {
k.x=r.x+this.x;
k.y=r.y;
}
else {
k.x=this.x*r.y+r.x*this.y;
k.y=r.y*this.y;
}
return k;
}
Fraction multiply(Fraction r) {
Fraction k=new Fraction(0,0);
k.x=r.x*this.x;
k.y=r.y*this.y;
return k;
}
void print() {
if(this.x==this.y)
System.out.println("1");
else {
for(int i=2;i<=this.x;i++) {
if(this.x%i==0 && this.y%i==0) {
this.x/=i;
this.y/=i;
}
}
System.out.println(this.x+"/"+this.y);
}
}
}
public class Main {
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();
}
}
- 在编写类时,要想使用对象,首先要构造对象并对对象初始化,如Fraction k=new Fraction(0,0),Fraction括号里必须要有具体数值。
- 构造器的名字必须要与类名相同,每个类可以有一个以上的构造器
- 构造器可以有0,1或多个参数
- 构造器没有返回值
- 构造器总是伴随着new操作符一起调用