Witam!
Jestem początkującym programistą i mam pytanie odnośnie zadania czy wszystko jest ok i czy ktoś mógłby mi sprawdzić zadanie odnośnie błędów.
Polecenie:
- Zdefiniuj klasę ułamek. Zaimplementuj metody dodawanie, odejmowania oraz skracania ułamka.
- Zdefiniuj klasę wyjątku o nazwie ZerowyMianownik (ZeroDenominator), a następnie użyj jej w konstruktorze. W przypadku podania w konstruktorze mianownika równego 0, należy rzucić wyjątkiem niekontrolowanym.
Mój kod:
Main.java
package com.company;
public class Main {
public static void main(String[] args) {
Fraction f1=new Fraction(1,20,1,5);
f1.addFraction();
f1.subtractFraction();
}
}
Fraction.java
package com.company;
public class Fraction {
int num, den, num1, den1;
float wynik;
public Fraction(int numerator, int denominator, int numerator1, int denominator1)
{
this.num=numerator;
this.den=denominator;
this.num1=numerator1;
this.den1=denominator1;
ZeroDenominator z2= new ZeroDenominator();
z2.zero();
}
int gcd(int a, int b)
{
if (a == 0)
return b;
return gcd(b%a, a);
}
void lowest(int num, int den)
{
int common_factor = gcd(num,den);
den = den/common_factor;
num = num/common_factor;
System.out.println(num+"/"+den);
}
void addFraction()
{
if(den!=den1)
{
int den3;
den3 = den * den1 ;
int num3 = (num * den1) + (num1 * den);
lowest(num3,den3);
}
else
{
int num3=num+num1;
lowest(num3,den);
}
}
void subtractFraction()
{
if(den!=den1)
{
int den3;
den3 = den * den1 ;
int num3 = (num * den1) - (num1 * den);
lowest(num3,den3);
}
else
{
int num3=num-num1;
lowest(num3,den);
}
}
public class ZeroDenominator {
void zero()
{
try {
float result;
result=num/den;
result=num1/den1;
} catch(ArithmeticException e) {
System.out.println("Nie dzielimy przez zero");
}
}
}
}
Nie jestem pewien odnośnie tych wyjątków czy mam więcej ich zapisać czy ten jeden wystarczy?