• Thứ Năm, 02/07/2009 14:30 (GMT+7)

    Hàm tạo mảng Java có phần tử là phân số

    Câu hỏi :
    Xin hướng dẫn viết hàm Java tạo ra 1 mảng gồm 10 phần tử là các phân số và cách để gọi nó trong hàm main().
     

    Trả lời :
    Java là ngôn ngữ lập trình thuần hướng đối tượng, một ứng dụng Java là tập các class chức năng cấu thành ứng dụng đó. Thí dụ để giải quyết vấn đề bạn yêu cầu, bạn cần xây dựng ít nhất 2 class: class phanso miêu tả đối tượng phân số, class PhansoApp miêu tả ứng dụng của bạn.

    Tuỳ nhu cầu cụ thể mà bạn sẽ hiện thực từng class như thế nào. Thí dụ sau đây là đoạn code Java demo cho việc miêu tả class phân số có 4 tác vụ thực hiện 4 phép tính cơ bản là cộng, trừ, nhân và chia cùng với ứng dụng nhỏ demo việc tạo ra các đối tượng phanso:

     //mã nguồn của class phanso
     package phanso;
     import java.lang.*;
     
     public class phanso {
     //đặc tả các thuộc tính cần dùng
     private int tuso;
     private int mauso;
     //hàm contructor khởi tạo giá trị phân số
     public phanso(int tu, int mau) {
     tuso = tu; mauso = mau;
     }
     
     //hàm cong thực hiện phép cộng
     public phanso cong(phanso p) {
     phanso kq = new phanso(0,0);
     kq.tuso = tuso*p.mauso + p.tuso*mauso;
     kq.mauso = mauso*p.mauso;
     return kq;
     }
     
     //hàm tru thực hiện phép trừ
     public phanso tru(phanso p) {
     phanso kq = new phanso(0,0);
     kq.tuso = tuso*p.mauso - p.tuso*mauso;
     kq.mauso = mauso*p.mauso;
     return kq;
     }
     
     //hàm nhan thực hiện phép nhan
     public phanso nhan(phanso p) {
     phanso kq = new phanso(0,0);
     kq.tuso = tuso*p.tuso;
     kq.mauso = mauso*p.mauso;
     return kq;
     }
     
     //hàm chia thực hiện phép chia
     public phanso chia(phanso p) {
     phanso kq = new phanso(0,0);
     kq.tuso = tuso*p.mauso;
     kq.mauso = mauso*p.tuso;
     return kq;
     }
     } //kết thúc class phân số
     
     //class miêu tả ứng dụng demo
     public class PhansoApp {
     //điểm nhập của ứng dụng
     public static void main(String[] args) {
     //khai báo các biến phanso đơn
     phanso a, b, c;
     //khởi tạo thử 2 phân số
     a = new phanso(1,2);
     b = new phanso(2,3);
     //cộng thử 2 phân số
     c = a.cong(b);
     //in kết quả để kiểm tra
     System.out.println("Ket qua Cong : tuso =" + c.tuso + ", mauso = " + c.mauso);
     //trừ thử 2 phân số
     c = a.tru(b);
     //in kết quả để kiểm tra
     System.out.println("Ket qua tru : tuso =" + c.tuso + ", mauso = " + c.mauso);
     //nhân thử 2 phân số
     c = a.nhan(b);
     //in kết quả để kiểm tra
     System.out.println("Ket qua nhan : tuso =" + c.tuso + ", mauso = " + c.mauso);
     //chia thử 2 phân số
     c = a.chia(b);
     //in kết quả để kiểm tra
     System.out.println("Ket qua chia : tuso =" + c.tuso + ", mauso = " + c.mauso);
     //khai báo dãy 10 phân số
     phanso ds[] = new phanso[10];
     //khởi tạo 2 phanso ở chỉ số 1 và 2
     ds[1] = new phanso(1,2);
     ds[2] = new phanso(3,4);
     //cộng thử 2 phân số ds[1] và ds[2], chứa kết quả vào ds[0]
     ds[0] = ds[1].cong(ds[2]);
     //in kết quả để kiểm tra
     System.out.println("Ket qua cong : tuso =" + ds[0].tuso + ", mauso = " + ds[0].mauso);
     }
     }
     Lưu ý rằng số lượng phần tử của biến dãy (array) trong Java được phân phối động (thay vì khai báo tĩnh) và biến đối tượng cần được thiết lập giá trị trước khi dùng, giá trị của biến đối tượng luôn là tham khảo đến đối tượng, đối tượng phải được tạo ra tường minh bằng lệnh new.
     
    Chuyên mục: Lập trình