Mọi người giúp e cái này với ạ. e thêm số kiểu phân số e bỏ vào mảng dùng toString thì nó k in ra gì hết, còn e in cái đối tượng mà e gán cái phân số đó ra thì nó ra địa chỉ của lớp. Em tìm dạng này trên google thì không ra vì em không biết keyword dạng này là gì. Em cảm ơn ạ.
class1:
package array_of_fraction;
import java.util.Scanner;
public class Fraction {
private int numerator;
private int demoninator;
Scanner Sc = new Scanner (System.in);
public Fraction(){
this.numerator = 0;
this.demoninator = 1;
}
public Fraction(int n, int d) {
this.numerator = n;
this.demoninator = d;
}
public void input() {
System.out.println("Enter the numerator: ");
this.numerator = Sc.nextInt();
System.out.println("Enter the demonimntor: ");
this.demoninator = Sc.nextInt();
}
public void output() {
System.out.println(this.numerator+" /"+this.demoninator);
}
}
class 2:
package array_of_fraction ;
import java.util.Scanner ;
public class ArrayOfFraction {
private int numerator ;
private int demoninator ;
private Fraction []a;
private int n ;
private int capacity ;
Scanner Sc = new Scanner(System.in) ;
public ArrayOfFraction() {
capacity = 10 ;
n = 0 ;
a = new Fraction[ capacity ] ;
}
public ArrayOfFraction( int n, Fraction a[] ) {
this.capacity = capacity ;
n = 0 ;
a = new Fraction[this.capacity] ;
}
public void add(Fraction element) {
// xu ly mang day
if (n == capacity) {
capacity = capacity * 2 ;
Fraction[] b = new Fraction[capacity] ;
for (int i = 0; i < n; i++)
b[i] = a[i] ;
a = b ;
}
// dien mang chua day
a[n] = element ;
n++ ;
}
public void output() {
for (int i = 0; i < n; i++)
System.out.println();
for (int i = 0; i < n; i++)
System.out.println(a[i].toString()) ;
}
public Fraction get(int index) {
if (index < 0 || index >= n) {
System.out.println("Invalid index") ;
// return tra ve truong hop dung cua if va ham phai kieu integer moi tra ve null
// duoc.
return null ;
}
return a[index] ;
}
public void set(int index, Fraction newelement) {
if (index < 0 || index >= n)
System.out.println("Invalid index") ;
else
a[index] = newelement ;
}
@Override
public boolean equals(Object f){
if((this.numerator == ( (ArrayOfFraction)f ).numerator) && this.demoninator == ( (ArrayOfFraction)f ).demoninator)
return true ;
return false ;
}
//@Override
public String toString() {
String s = "" ;
for (int i = 0; i < n;)
s = s + a[i] + " " ;
return s ;
}
public void add(int index, Fraction element) {
// xu ly mang day
if (index < 0 || index > n) {
System.out.println("khong hop le") ;
} else if (n >= capacity) {
capacity *= 2 ;
Fraction[] b = new Fraction[capacity] ;
for (int i = 0; i < n; i++)
b[i] = a[i] ;
a = b ;
}
if (n == index)
add(element) ;
// xu ly mang chua day
for (int j = n; j > index; j--)
a[j] = a[j - 1] ;
a[index] = element ;
n++ ;
}
public int capacity() {
return capacity ;
}
public void remove(int index) {
for (int j = index; j < n; j++)
a[j] = a[j + 1] ;
n-- ;
}
public static void main(String[] args) {
ArrayOfFraction frac = new ArrayOfFraction() ;
Fraction frac1 = new Fraction(3,4) ;
//Fraction frac2 = new Fraction(2,5) ;
// add frac1 theo cach pho thong
frac.add(frac1) ;
// hoac add frac2 theo cach 2
frac.add(new Fraction(2,5)) ;
System.out.println() ;
System.out.println(frac) ; // in ra dia chi
System.out.println(frac.toString()) ; // khong in ra gia tri cua mang va cung khong in ra dia chi cua mang
}
}