Bu ödevde 6 tane sınıfımız var. Fakat bizi ilgilendiren kısım iki sınıf.
Letter Sınıfı;
public class Letter implements Summable, Comparable {
String ltr;
public Letter(String ltr) {
super();
this.ltr = ltr;
}
@Override
public int compareTo(Object obj) {
if(obj instanceof Letter){
String x= this.ltr; //Karşılaştırılacak karakteri tutuyoruz.
String k=((Letter) obj).ltr; //Verilen karakteri tutuyoruz.
int a=0, b=0;
//Karakterleri Alphabet sınıfındaki static alphabet stringini kullanarak
//sırasını belirliyoruz.
for(int i=0;i<Alphabet.alphabet.length();i++)
{
char z=Alphabet.alphabet.charAt(i);
if(x.equals(z+"")) a=i;
if(k.equals(z+"")) b=i;
}
if(a>b) return -1; //Verilen karakter daha önce geliyorsa.
else if(a==b) return 0; //Eşitse
else return 1; //Verilen karakter daha sonra geliyorsa
}
else return -2; //Verilen parametre Letter objesi değilse
}
@Override
public Object sum(Object obj) {
if (obj instanceof Letter) {
return this.ltr+((Letter) obj).ltr;
} else
return null;
}
public Object sortedSum(Object obj) {
int a=0, b=0;
String x= this.ltr;
String k=((Letter) obj).ltr;
for(int i=0;i<Alphabet.alphabet.length();i++)
{
char z=Alphabet.alphabet.charAt(i);
if(x.equals(z+"")) a=i;
if(k.equals(z+"")) b=i;
}
if(this.ltr.equals(((Letter)obj).ltr)) return this.ltr;
else if(a<b) return x+k;
else if(a==b) return x;
else return k+x;
}
}
Number Sınıfı;
public class Number implements Summable, Comparable {
Integer nmb;
// Don't change
public Number(Integer nmb) {
super();
this.nmb = nmb;
}
@Override
public int compareTo(Object obj) {
if(obj instanceof Number){
int x=((Number)obj).nmb;
int y= this.nmb;
if(x<y) return -1;
else if(x==y) return 0;
else return 1;
}
else return -2;
}
@Override
public Object sum(Object obj) {
if(obj instanceof Number)
{
return ((Number)obj).nmb+this.nmb;
}
else return null;
}
}
Ödevin tamamına ise; buradan ulaşabilirsiniz
0 yorum:
Yorum Gönder