Khóa học free Bài 18: Ghi đè phương thức (Overriding Method) trong Java

Thảo luận trong 'Java cơ bản' bắt đầu bởi Tiasangmoi92, 16/7/13.

  1. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Lượt xem: 17,974
    /* Bài viết thuộc loạt bài hướng dẫn trong "Khóa Học Lập Trình Java Miễn Phí"
    trên diễn đàn Android.Vn, bạn có thể vào đây đọc

    để hiểu hơn về khóa học và tham gia ngay cùng mọi người;) */

    overloading-vs-overriding
    1, Khái niệm ghi đè – override:

    - Đó là khi phương thức đã xuất hiện ở lớp cha và xuất hiện tiếp ở lớp con.
    - Khi đối tượng thuộc lớp con gọi phương thức thì sẽ chọn lựa và chạy theo phương thức trong lớp con.
    - Nếu lớp con không có phương thức đó thì mới lên kiếm ở lớp cha để chạy.
    - Phương thức ghi đè có cùng tên, cùng tham số truyền vào, cùng kiểu giá trị trả về với phương thức ở lớp cha!
    - Ghi đè là hình thức đa hình (polymorphism) trong quá trình thực thi (Runtime)

    Ở bài trước, ta biết đến cách nạp chồng phương thức (Overloading method), nó cùng nằm trong 1 lớp. Còn ghi đè ở đây, là sau khi lớp con kế thừa lớp cha của nó, ta chỉnh lại 1 phương thức nào đó cần thiết, tức là ghi đè để đạt được theo ý muốn!

    2, Ví dụ:

    Ví dụ 1: Sự khác nhau giữa Override và Overload

    Untitled

    Ví dụ 2:
    - Lớp "tên người Việt" gồm 2 thuộc tính: "họ" và "tên" và phương thức hiển thị tên đầy đủ theo thứ tự họ + tên
    - Lớp "tên người nước ngoài" kế thừa từ lớp "tên người Việt" , phương thức hiển thị tên đầy đủ lại theo thứ tự tên + họ
    - Như vậy, sau khi kế thừa ta chỉ cần ghi đè lại phương thức hiển thị là xong!
    Code:
    PHP:
    package javademoandroidvn;
     
    class 
    tenNguoiViet {
     
        public 
    String tenho;
     
        public 
    void show() {
            
    System.out.println("Tên đầy đủ là: " this.ho " "+this.ten);
        }
    }
     
    class 
    tenNguoiNuocNgoai extends tenNguoiViet {
     
        @
    Override
        
    public void show() {
            
    System.out.println("Full name: " this.ten " " this.ho);
        }
    }
     
    public class 
    JavaDemoAndroidVn {
     
        public static 
    void main(String[] args) {
            
    tenNguoiViet nguoiV = new tenNguoiViet();
            
    nguoiV.ho "Nguyen";
            
    nguoiV.ten "Hung";
            
    nguoiV.show();
     
            
    tenNguoiNuocNgoai nguoiNN = new tenNguoiNuocNgoai();
            
    nguoiNN.ho "Nguyen";
            
    nguoiNN.ten "Hung";
            
    nguoiNN.show();
        }
    }
    Ví dụ 3:
    - Lớp HocSinh gồm các thuộc tính: hoTen, lop, toan, ly, hoa và phương thức điểm trung bình là trung bình cộng 3 môn
    - Lớp HocSinhChuyenToan kế thừa từ phương thức HocSinh, nhưng khi tính điểm trung bình nhân đôi hệ số môn Toán rồi cộng tất cả, chia cho 4. Như vậy cần ghi đè phương thức điểm trung bình ở lớp HocSinhChuyenToan
    Code:
    PHP:
    package javademoandroidvn;
     
    class 
    HocSinh {
     
        private 
    String hoTen;
        private 
    String lop;
        private 
    float toanlyhoa;
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    String getLop() {
            return 
    lop;
        }
     
        public 
    void setLop(String lop) {
            
    this.lop lop;
        }
     
        public 
    float getToan() {
            return 
    toan;
        }
     
        public 
    void setToan(float toan) {
            
    this.toan toan;
        }
     
        public 
    float getLy() {
            return 
    ly;
        }
     
        public 
    void setLy(float ly) {
            
    this.ly ly;
        }
     
        public 
    float getHoa() {
            return 
    hoa;
        }
     
        public 
    void setHoa(float hoa) {
            
    this.hoa hoa;
        }
     
        public 
    float diemTrungBinh() {
            return (float) (
    this.toan this.ly this.hoa) / 3;
        }
    }
     
    class 
    HocSinhChuyenToan extends HocSinh {
     
        @
    Override
        
    public float diemTrungBinh() {
            return (float) (
    this.getHoa() + this.getLy() + this.getToan() * 2) / 4;
        }
    }
     
    public class 
    JavaDemoAndroidVn {
     
        public static 
    void main(String[] args) {
            
    HocSinh a = new HocSinh();
            
    a.setHoTen("Vu Van Tuong");
            
    a.setLop("At7a");
            
    a.setToan(10.0f);
            
    a.setLy(9.0f);
            
    a.setHoa(8.0f);
            
    System.out.println("Diem trung binh cua hoc sinh a la: " a.diemTrungBinh());
     
            
    HocSinhChuyenToan b = new HocSinhChuyenToan();
            
    b.setHoTen("Nguyen Van B");
            
    b.setToan(9.0f);
            
    b.setHoa(7.0f);
            
    b.setLy(8.0f);
            
    System.out.println("Diem trung binh cua hoc sinh chuyen Toan b la: " b.diemTrungBinh());
     
        }
    }

    Tham khảo thêm 2 video bên blog StudyAndShare:





    [​IMG]

    Bài tập về nhà::D

    Bài 1:
    - Class USB có các thuộc tính: mã hàng, giá, số lượng. Phương thức tổng tiền = giá * số lượng, phương thức show in ra toàn bộ thông tin đơn hàng mua USB
    - Class Mouse kế thừa từ class USB, ghi đè 2 phương thức tổng tiền (do chuột được giảm giá 20%) và show in toàn bộ thông tin đơn hàng khi khách hàng mua chuột máy tính.
    - Tạo mỗi lớp 1 đối tượng, nhập thông tin từ bàn phím, in thông tin đơn hàng ra màn hình!
    - Code hướng đối tượng, các thuộc tính để private!

    Đọc thêm: Nâng cấp đối tượng của bạn

    (Chú ý: Các bạn nên tự giác làm bài tập, hoàn thiện rồi đăng lên, các bài bạn đã làm, nên để code trong thẻ code - chọn thẻ PHP cho rõ ràng và để ẩn code trong thẻ ẩn spoiler, để khi click vào mới hiện code lên , trước khi thử sức tự làm, bạn không nên nhìn code của các bạn khác đã đăng nhé;))

    [​IMG]

    My Facebook: https://www.facebook.com/tiasangmoi

    Bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: Android.Vn
    override method java, overload in java, overriding phương thức trong java, java, ghi đè phương thức trong java, phương thức ghi đè java, nạp chồng phương thức java, khóa học java, học java online, khóa học java giá rẻ
  2. Sky6596

    Sky6596 Member

    Bài viết dễ hiểu ghê. :)
    Quagn1998 thích bài này.
  3. Vjrus.HT

    Vjrus.HT Member

    Show Spoiler

    PHP:
    package DemoJava.Android.Vn;
     
    import java.util.Scanner;
     
    class 
    USB {
     
        private 
    String maHang;
        private 
    long donGia;
        private 
    int soLuong;
     
        public 
    String getMaHang() {
            return 
    maHang;
        }
     
        public 
    void setMaHang(String maHang) {
            
    this.maHang maHang;
        }
     
        public 
    long getDonGia() {
            return 
    donGia;
        }
     
        public 
    void setDonGia(long donGia) {
            
    this.donGia donGia;
        }
     
        public 
    int getSoLuong() {
            return 
    soLuong;
        }
     
        public 
    void setSoLuong(int soLuong) {
            
    this.soLuong soLuong;
        }
     
        public 
    long total(int soLuonglong donGia) {
            return (
    this.soLuong this.donGia);
        }
     
        public 
    void show() {
            
    System.out.println("Mã hàng: " getMaHang());
            
    System.out.println("Số lượng: " getSoLuong());
            
    System.out.println("Đơn giá: " getDonGia());
            
    long total total(getSoLuong(), getDonGia());
            
    System.out.println("Thành tiền: " total);
            
    System.out.println("");
        }
     
        public 
    void Input() {
            
    Scanner inp = new Scanner(System.in);
     
            
    System.out.println("Nhập mã hàng: ");
            
    setMaHang(inp.nextLine());
            
    System.out.println("Nhập số luọng: ");
            
    setSoLuong(inp.nextInt());
            
    System.out.println("Nhập đơn giá: ");
            
    setDonGia(inp.nextLong());
            
    System.out.println("");
        }
    }
     
    class 
    Mouse extends USB {
     
        @
    Override
        
    public long total(int soLuonglong donGia) {
            return (
    this.getSoLuong() * this.getDonGia()) * 80 100;
        }
    }
     
    public class 
    Unit18 {
     
        public static 
    void main(String[] args) {
            
    USB usb = new USB();
            
    System.out.println("Mua USB");
            
    usb.Input();
            
    System.out.println("Hoá đơn mua USB");
            
    usb.show();
     
            
    Mouse mouse = new Mouse();
            
    System.out.println("Mua Mouse");
            
    mouse.Input();
            
    System.out.println("Hoá đơn mua Mouse");
            
    mouse.show();
        }
    }
    tuanleedragon, nqteo110, TaHuy2 others thích bài này.
  4. Quagn1998

    Quagn1998 New Member

    Code của em:
    Show Spoiler

    PHP:
    package Unit18_GhiDePhuongThuc;
     
    import java.util.Scanner;
     
    class 
    USB {
        private 
    String maHang;
        private 
    long giasoLuong;
     
        public 
    void setMaHang(String maHang) {
            
    this.maHang maHang;
        }
     
        public 
    String getMaHang() {
            return 
    maHang;
        }
     
        public 
    void setGia(long gia) {
            
    this.gia gia;
        }
     
        public 
    long getGia() {
            return 
    gia;
        }
     
        public 
    void setSoLuong(long soLuong) {
            
    this.soLuong soLuong;
        }
     
        public 
    long getSoLuong() {
            return 
    soLuong;
        }
     
        public 
    void Input() {
            
    Scanner inp = new Scanner(System.in);
            
    System.out.print("Nhâp mã hàng: ");
            
    setMaHang(inp.next());
            
    System.out.print("Nhập giá: ");
            
    setGia(inp.nextLong());
            
    System.out.print("Nhập số lượng: ");
            
    setSoLuong(inp.nextLong());
        }
     
        public 
    long tongTien(long gialong soLuong) {
            return 
    gia soLuong;
        }
     
        public 
    void Show() {
            
    System.out.println("Thông tin đơn hàng: ");
            
    System.out.println("Mã hàng: " getMaHang());
            
    System.out.println("Giá: " getGia() + " Số lượng: " getSoLuong());
            
    System.out.println("Thành tiền: " tongTien(giasoLuong));
        }
     
    }
     
    class 
    Mouse extends USB {
        public 
    long tongTien(long gialong soLuong) {
            return (
    long) (gia soLuong 80 100);
        }
    }
     
    public class 
    QuanLyBanHang {
        public static 
    void main(String[] args) {
            
    System.out.println("USB: ");
            
    USB a = new USB();
            
    a.Input();
            
    a.Show();
            
    System.out.println();
            
    System.out.println("Mouse: ");
            
    Mouse b = new Mouse();
            
    b.Input();
            
    b.Show();
        }
    }
    tuanleedragon, Tiasangmoi92Vjrus.HT thích bài này.
  5. diepthanh94

    diepthanh94 New Member

    Code của e
    // hơi dài :)
    Show Spoiler

    Mã:
    package bai18;
     
    import java.util.Scanner;
     
    class USB{
        private String maHang;
        private int gia;
        private int soLuong;
     
            public void setMaHang(String maHang) {
                this.maHang = maHang;
            }
     
            public void setGia(int gia) {
                this.gia = gia;
            }
     
            public void setSoLuong(int soLuong) {
                this.soLuong = soLuong;
            }
     
            public String getMaHang() {
                return maHang;
            }
     
            public int getGia() {
                return gia;
            }
     
            public int getSoLuong() {
                return soLuong;
            }
       
        public float tinh(){
            return soLuong*gia;
        }
       
        public void show(){
                System.out.println(" Mã hàng: "+maHang);
                System.out.println(" Giá: "+gia);
                System.out.println(" Số lượng: "+soLuong);
                System.out.println("    Tổng tiền: "+tinh());
    }
        }
    class Mouse extends USB{
       
        public float tinh(){
            return (float) this.getGia()*this.getSoLuong()-this.getGia()*this.getSoLuong()*0.2f;
        }
    }
    public class Bai18 {
        public static void main(String[] args) {
            // TODO code application logic here
            Scanner nhap = new Scanner(System.in);
            USB usb = new USB();
            System.out.println("// class USB:");
            System.out.print(" Mã hàng: ");
            usb.setMaHang(nhap.nextLine());
            System.out.print(" Giá: ");
            usb.setGia(nhap.nextInt());
            System.out.print(" Số lượng: ");
            usb.setSoLuong(nhap.nextInt());
           
            System.out.println("// class MOUSE: ");
            Mouse mouse = new Mouse();
            System.out.print(" Mã Hàng: ");
            // máy của e nó hay bỏ qua câu lệnh này nên e phải để 2 câu lệnh này 1 chỗ :)
            mouse.setMaHang(nhap.nextLine()); mouse.setMaHang(nhap.nextLine());
            System.out.print(" Giá: ");
            mouse.setGia(nhap.nextInt());
            System.out.print(" Số lượng: ");
            mouse.setSoLuong(nhap.nextInt());
            //
            System.out.println("Thông tin class USB:");
            usb.show();
            System.out.println("Thông tin class Mouse: ");
            mouse.show();
        }
    }
    
    Tiasangmoi92 thích bài này.
  6. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Các bạn cố gắng tìm lỗi của nhau nhé, mình dạo này hơi bận, chỉ có thể viết bài thôi :D
  7. tiennguyen

    tiennguyen New Member

    Code của mình.
    Show Spoiler

    PHP:
    package bai18;
     
    import java.io.InputStreamReader;
    import java.util.Scanner;
     
    public class 
    Overriding_Method {
     
        
    /**
        * @param args
        */
        
    public static void main(String[] args) {
            
    // TODO Auto-generated method stub
     
            
    USB ub=new USB();
            
    Mouse m=new Mouse();
            
    System.out.println("Nhap thong tin USB: ");
            
    ub.input();
            
    System.out.println("Nhap thong tin Mouse: ");
            
    m.input();
            
    System.out.println("-----------------------------------");
            
    System.out.println("Hoa don: ");
            
    System.out.println("USB: ");
            
    ub.show();
            
    System.out.println("-----------");
            
    System.out.println("Mouse: ");
            
    m.show();
        }
     
    }
    class 
    USB{
        private 
    String mahang;
        private 
    float gia;
        private 
    int soluong;
        public 
    String getMahang() {
            return 
    mahang;
        }
        public 
    void setMahang(String mahang) {
            
    this.mahang mahang;
        }
        public 
    float getGia() {
            return 
    gia;
        }
        public 
    void setGia(float gia) {
            
    this.gia gia;
        }
        public 
    int getSoluong() {
            return 
    soluong;
        }
        public 
    void setSoluong(int soluong) {
            
    this.soluong soluong;
        }
        public 
    float tongtien(float gia,int soluong){
            return (float) 
    this.gia*this.soluong;
        }
       
        public 
    void input(){
            
    Scanner scr=new Scanner(System.in);
            
    System.out.print("Nhap ma hang: ");
            
    this.mahang=scr.nextLine();
            
    System.out.print("Nhap gia tien: ");
            
    this.gia=scr.nextFloat();
            
    System.out.print("Nhap so luong: ");
            
    this.soluong=scr.nextInt();
        }
        public 
    void show(){
            
    System.out.println("Ma hang: "+this.mahang);
            
    System.out.println("Gia tien: "+this.gia);
            
    System.out.println("So luong: "+this.soluong);
            
    System.out.println("Tong tien: "+this.tongtien(giasoluong));
        }
    }
    class 
    Mouse extends USB{
        public 
    float tongtien(){
            return (float)(
    0.8*this.getGia()*this.getSoluong());
        }
    }
  8. phongdt

    phongdt New Member

    Chỗ này không cần parameter list đâu bạn vì, bạn đã dùng this.gia với this.soluong rồi thì cần truyền vào làm gì nữa :)
    tiennguyen thích bài này.
  9. tiennguyen

    tiennguyen New Member

    hi, ừm, thanks bạn nhé.
  10. nguyensong.lhd

    nguyensong.lhd New Member

  11. viet55pm

    viet55pm New Member

  12. viet55pm

    viet55pm New Member

    Mới học Java Mong được nhập hội :)

    Show Spoiler

    PHP:
    import java.util.Scanner;
     
    public class 
    VD8 {
     
        public static 
    void main(String[] args) {
     
            
    USB usb = new USB();
     
            
    Mouse chuot = new Mouse();
     
            
    System.out.println("Nhap thong tin cho USB:");
     
            
    usb.Nhap();
     
            
    System.out.println("Co phai ban vua nhap nhu the nay:");
     
            
    usb.InRa();
     
            
    System.out.println("Tong tien cua ban la:" usb.TongTien(usb.getGia(), usb.getSoLuong()));
     
            
    System.out.println("Nhap thong tin cho Mouse:");
     
            
    chuot.Nhap();
     
            
    System.out.println("Co phai ban vua nhap nhu the nay:");
     
            
    chuot.InRa();
     
            
    System.out.println("Ban da duoc giam 20%:");
     
            
    System.out.println("Tong tien cua ban la:" chuot.TongTien(chuot.getGia(), chuot.getSoLuong()));
     
        }
     
    }
     
    class 
    USB {
     
        private 
    String maHang;
     
        private 
    int giasoLuong;
     
        public 
    String getMaHang() {
     
            return 
    maHang;
     
        }
     
        public 
    void setMaHang(String maHang) {
     
            
    this.maHang maHang;
     
        }
     
        public 
    int getGia() {
     
            return 
    gia;
     
        }
     
        public 
    void setGia(int gia) {
     
            
    this.gia gia;
     
        }
     
        public 
    int getSoLuong() {
     
            return 
    soLuong;
     
        }
     
        public 
    void setSoLuong(int soLuong) {
     
            
    this.soLuong soLuong;
     
        }
     
        public 
    void Nhap() {
     
            
    Scanner nhap = new Scanner(System.in);
     
            
    System.out.println("Ma Hang:");
     
            
    setMaHang(nhap.nextLine());
     
            
    System.out.println("Gia:");
     
            
    setGia(nhap.nextInt());
     
            
    System.out.println("So Luong:");
     
            
    setSoLuong(nhap.nextInt());
     
        }
     
        public 
    void InRa() {
     
            
    System.out.println("Ma Hang:" getMaHang());
     
            
    System.out.println("Gia:" getGia());
     
            
    System.out.println("So Luong:" getSoLuong());
     
        }
     
        public 
    double TongTien(int aint b) {
     
            return 
    b;
     
        }
     
    }
     
    class 
    Mouse extends USB {
     
        public 
    void Nhap() {
     
            
    Scanner nhap = new Scanner(System.in);
     
            
    System.out.println("Ma Hang:");
     
            
    setMaHang(nhap.nextLine());
     
            
    System.out.println("Gia:");
     
            
    setGia(nhap.nextInt());
     
            
    System.out.println("So Luong:");
     
            
    setSoLuong(nhap.nextInt());
     
        }
     
        public 
    void InRa() {
     
            
    System.out.println("Ma Hang:" getMaHang());
     
            
    System.out.println("Gia:" getGia());
     
            
    System.out.println("So Luong:" getSoLuong());
     
        }
     
        @
    Override
     
        
    public double TongTien(int aint b) {
     
            return (double) 
    * (0.8d);
     
        }
     
    }
    Tiasangmoi92 thích bài này.
  13. maket

    maket New Member

    nộp bài nè :)
    Mã:
    package ep7;
    import java.util.Scanner;
     
    class usb{
        private String mahang;
        private int soluong;
        private float gia;
        public void setmahang(String Mahang){
            this.mahang=Mahang;
        }
        public void setsoluong(int Soluong){
            this.soluong=Soluong;
        }
        public void setgia(float Gia){
            this.gia=Gia;
        }
        public String getMahang(){
            return mahang;
        }
        public int getSoluong(){
            return soluong;
        }
        public float getGia(){
            return gia;
        }
        public float tonggia(){
            return (float) gia*soluong;
        }
    }
    class chuot extends usb{
        @Override
        public float tonggia(){
            return(float) this.getGia()*this.getSoluong()*80/100;
        }
    }
    public class vd1 {
     
        public static void main(String[] args) {
            usb a= new usb();
            chuot b=new chuot();
            Scanner dl= new Scanner(System.in);
            System.out.print("Ma hang usb: ");
            a.setmahang(dl.nextLine());
            System.out.print("Don gia: ");
            a.setgia(dl.nextFloat());
            System.out.print("So luong: ");
            a.setsoluong(dl.nextInt());
            System.out.println("Tong gia mat hang USB: "+a.tonggia());
           
            System.out.print("Ma hang chuot: ");
            b.setmahang(dl.nextLine());
            b.setmahang(dl.nextLine());
            System.out.print("Don gia: ");
            b.setgia(dl.nextFloat());
            System.out.print("So luong: ");
            b.setsoluong(dl.nextInt());
            System.out.println("Tong gia mat hang USB: "+b.tonggia());
     
        }
     
    }
    
    Tiasangmoi92 thích bài này.
  14. dienlh93

    dienlh93 New Member

    Show Spoiler

    PHP:
    import java.util.*;
    class 
    HHUSB{
        private 
    String maHang;
        private 
    int gia,soLuong;
        public 
    void setMaHang(String mahang){  this.maHang=mahang;}
        public 
    String getMaHang(){  return this.maHang;}
        public 
    void setGia(int gia){    this.gia=gia;}
        public 
    int getGia(){    return this.gia;}
        public 
    void setSoLuong(int soluong){    this.soLuong=soluong;}
        public 
    int getSoLuong(){    return this.soLuong;}
        public 
    void NhapTT(){
            
    Scanner scanf=new Scanner(System.in);
            
    System.out.print("Nhap ma hh      : ");setMaHang(scanf.nextLine());
            
    System.out.print("Nhap gia hh      : ");setGia(scanf.nextInt());
            
    System.out.print("Nhap so luong hh : ");setSoLuong(scanf.nextInt());
        }
        public 
    float TongTien(){ return this.gia*this.soLuong;}
        public 
    void showHH(){
            
    System.out.println("MaHH\tGia\tSoLuong\tThanhTien");
            
    System.out.println(getMaHang()+"\t"+getGia()+"\t"+getSoLuong()+"\t"+TongTien());
        }
    }
    class 
    Mouse extends HHUSB{
            @
    Override
            
    public float TongTien(){return getGia()*getSoLuong()*0.8f;}
            @
    Override
            
    public void NhapTT(){  super.NhapTT();}
            @
    Override
            
    public void showHH(){
                
    super.showHH();
            }
    }
    public class 
    USB {
        public static 
    void main(String[] args){
            
    HHUSB usb=new HHUSB();
            
    usb.NhapTT();
            
    usb.showHH();
            
    Mouse mouse=new Mouse();
            
    mouse.NhapTT();
            
    mouse.showHH();
        }
    }
    Tiasangmoi92 thích bài này.
  15. Show Spoiler

    Mã:
    package javaandroid.vn;
     
    import java.util.Scanner;
     
    public class BTBai18 {
        public static void main(String []args){
            USB u=new USB();
            Mouse m=new Mouse();
            //Nhap thong tin sp USB
            System.out.println("Nhap thong tin  sp USB: ");
            u.nhap();
            System.out.println("Nhap thong tin  sp Mouse: ");
            m.nhap();
            //in thong tin sp
            System.out.println("In thong tin  sp USB: ");
            u.show();
            System.out.println("In thong tin  sp Mouse: ");
            m.show();
        }
    }
     
    class USB{
        Scanner in=new Scanner(System.in);
        private int mahang;
        private float gia;
        private int soluong;
        public int getMahang() {
            return mahang;
        }
        public void setMahang(int mahang) {
            this.mahang = mahang;
        }
        public float getGia() {
            return gia;
        }
        public void setGia(float gia) {
            this.gia = gia;
        }
        public int getSoluong() {
            return soluong;
        }
        public void setSoluong(int soluong) {
            this.soluong = soluong;
        }
        //tinh tien
        public float tongtien(float gia,int soluong)
        {
            return gia*soluong;
        }
        public void nhap()
        {
                System.out.println("Ma hang: ");
                setMahang(in.nextInt());
                System.out.println("Gia :");
                setGia(in.nextFloat());
                System.out.println("So luong :");
                setSoluong(in.nextInt());
        }
        public void show()
        {
            System.out.println("Ma hang: "+getMahang());
            System.out.println("Gia :"+getGia());
            System.out.println("So luong :"+getSoluong());
            System.out.println("Tong tien : "+tongtien(getGia(),getSoluong()));
        }
    }
    class Mouse extends USB{
        public float tongtien(float gia,int soluong)
        {
            return (gia*soluong*80)/100;
        }
    }
    
  16. haizax

    haizax New Member

    Show Spoiler

    PHP:
    //- Class USB có các thuộc tính: mã hàng, giá, số lượng.
    //- Phương thức tổng tiền = giá * số lượng,
    //- phương thức show in ra toàn bộ thông tin đơn hàng mua USB
    //- Class Mouse kế thừa từ class USB, ghi đè 2 phương thức tổng tiền (do chuột được giảm giá 20%)
    //- và show in toàn bộ thông tin đơn hàng khi khách hàng mua chuột máy tính.
    //- Tạo mỗi lớp 1 đối tượng, nhập thông tin từ bàn phím, in thông tin đơn hàng ra màn hình!
    //- Code hướng đối tượng, các thuộc tính để private!
    package bai18;
    import java.util.Scanner;
     
    class 
    USB{
        private 
    String maHang;
        private 
    float gia;
        private 
    int soLuong;
     
        public 
    void setMaHang(String maHang) {
            
    this.maHang maHang;
        }
     
        public 
    void setGia(float gia) {
            
    this.gia gia;
        }
     
        public 
    void setSoLuong(int soLuong) {
            
    this.soLuong soLuong;
        }
     
        public 
    String getMaHang() {
            return 
    maHang;
        }
     
        public 
    float getGia() {
            return 
    gia;
        }
     
        public 
    int getSoLuong() {
            return 
    soLuong;
        }
       
        public 
    float tongTien(){
            return 
    this.getGia()*this.getSoLuong();
        }
       
        public 
    void nhapTT(){
            
    Scanner in = new Scanner(System.in);
            
    System.out.println("Nhap thong tin: ");
            
    System.out.println("Nhap Ma Hang: ");
            
    setMaHang(in.nextLine());
            
    System.out.println("Nhap So Luong: ");
            
    setSoLuong(in.nextInt());
            
    System.out.println("Nhap Gia: ");
            
    setGia(in.nextFloat());
        }
        public 
    void showTT(){
            
    System.out.println("Thong Tin USB: ");
            
    System.out.println("Ma Hang: "+getMaHang() + "      -So Luong: "+getSoLuong()+"    -Gia: "+getGia());
            
    System.out.println("Thanh Tien: "+tongTien());
        }
    }
    class 
    Mouse extends USB{
        public 
    float tongTien(){
            return (
    this.getGia()*this.getSoLuong()*80)/100;
        }
        public 
    void showTT(){
            
    System.out.println("Thong Tin Mouse: ");
            
    System.out.println("Ma Hang: "+getMaHang() + "      -So Luong: "+getSoLuong()+"    -Gia: "+getGia());
            
    System.out.println("Thanh Tien: "+tongTien());
    }
    }
     
    public class 
    Bai18 {
     
        public static 
    void main(String[] args) {
            
    USB a = new USB();
            
    Mouse b = new Mouse();
            
    a.nhapTT();
            
    b.nhapTT();
            
    a.showTT();
            
    b.showTT();
        }
    }
  17. try_again

    try_again New Member

    Show Spoiler

    PHP:
    package abc;
     
    import java.util.*;
    class 
    USB {
        private 
    String maHang;
        private 
    int soLuong;
        private 
    float gia;
        public 
    void setMaHang(String maHang){
            
    this.maHang maHang;
        }
        public 
    String getMaHang(){
            return 
    maHang;
        }
        public 
    void setSoLuong(int soLuong){
            
    this.soLuong soLuong;
        }
        public 
    int getSoLuong(){
            return 
    soLuong;
        }
        public 
    void setGia(float gia){
            
    this.gia gia;
        }
        public 
    float getGia(){
            return 
    gia;
        }
        public 
    float tongTien(){
            return 
    soLuong gia;
        }
        public 
    void nhap(){
            
    Scanner nhapDuLieu = new Scanner(System.in);
            
    System.out.println("nhap ma hang: ");
            
    maHang nhapDuLieu.nextLine();
            
    System.out.println("nhap gia hang: ");
            
    gia nhapDuLieu.nextFloat();
            
    System.out.println("nhap so luong hang: ");
            
    soLuong nhapDuLieu.nextInt();
        }
        public 
    void show(){
            
    System.out.println("Ma Hang "+maHang);
            
    System.out.println("so luong: "+soLuong);
            
    System.out.println("Gia: "+gia);
            
    System.out.println("tong tien: "+tongTien());
        }
    }
    class 
    Mouse extends USB {
        public 
    float tongTien(){
            return(float) (
    getSoLuong() * getGia() * 0.8);
        }
    }
    public class 
    BaiTap {
        public static 
    void main(String[] args) {
            
    USB a = new USB();
            
    Mouse b = new Mouse();
            
    System.out.println("USB:");
            
    a.nhap();
            
    a.show();
            
    System.out.println("MOUSE:");
            
    b.nhap();
            
    b.show();
           
        }
    }
     
  18. hanhnv87

    hanhnv87 New Member

    Đây là bài của mình, còn hơi sơ sài do mình mới học: :D
    Show Spoiler

    PHP:
    package com.hanhnv.bai18;
     
    import java.util.Scanner;
     
    public class 
    Bai18 {
        public static 
    void main(String[] args){
            
    USB usb = new USB();
            
    Mouse mouse = new Mouse();
           
            
    usb.inputInfo();
            
    mouse.inputInfo();
           
            
    usb.outputInfo();
            
    mouse.outputInfo();
        }
    }
     
    class 
    USB{
        private 
    String productCode;
        private 
    int productPriceproductQuantity;
       
        public 
    String getCode(){
            return 
    productCode;
        }
       
        public 
    void setCode(String code){
            
    this.productCode code;
        }
       
        public 
    int getPrice(){
            return 
    productPrice;
        }
       
        public 
    void setPrice(int price){
            
    this.productPrice price;
        }
       
        public 
    int getQuantity(){
            return 
    productQuantity;
        }
       
        public 
    void setQuantity(int quantity){
            
    this.productQuantity quantity;
        }
       
        public 
    int doSum(int quantityint price){
            
    int total quantity*price;
            return 
    total;
        }
       
        public 
    void inputInfo(){
            
    System.out.println("Please enter some information about product!");
            
    Scanner s = new Scanner(System.in);
            
    System.out.println("Enter code of the product:");
            
    setCode(s.nextLine());
            
    System.out.println("Enter quantity of the product:");
            
    setQuantity(s.nextInt());
            
    System.out.println("Enter price of the product:");
            
    setPrice(s.nextInt());
            
    System.out.println("Thanks!");
        }
       
        public 
    void outputInfo(){
            
    System.out.println("And here are detail information about product you had entered!");
            
    System.out.println("Code of the product:"+getCode());
            
    System.out.println("Quantity of the product had bought:"+getQuantity());
            
    System.out.println("Price of the product you have to pay:"+getPrice());
            
    System.out.println("Total of money you have to pay:"+doSum(getQuantity(), getPrice()));
            
    System.out.println("");
        }
    }
     
    class 
    Mouse extends USB{
        @
    Override
        
    public int doSum(int quantityint price) {
            
    int sum = (quantity*price) - (quantity*price*20/100);
            return 
    sum;
        }
    }
    Tiasangmoi92 thích bài này.
  19. Donansub

    Donansub New Member

    Mã:
    /*
    Class USB có các thuộc tính: mã hàng, giá, số lượng.
    Phương thức tổng tiền = giá * số lượng, phương thức show in ra toàn bộ thông tin đơn hàng mua USB
    - Class Mouse kế thừa từ class USB, ghi đè 2 phương thức tổng tiền (do chuột được giảm giá 20%)
    và show in toàn bộ thông tin đơn hàng khi khách hàng mua chuột máy tính.
    - Tạo mỗi lớp 1 đối tượng, nhập thông tin từ bàn phím, in thông tin đơn hàng ra màn hình!
    - Code hướng đối tượng, các thuộc tính để private!
    */
     
    package Ghide;
     
    class USB{
        String maHang;
        int gia;
        int soLuong;
        public void set(String mh, int g, int sl){
            this.maHang=mh;
            this.gia=g;
            this.soLuong=sl;
        }
        public String getMaHang(){
            return maHang;
        }
        public int getGia(){
            return gia;
        }
        public int getSoLuong(){
            return soLuong;
        }
        public float tinhTongTien(int sl,int g){
            float sum;
            sum= sl*g;
            return sum;
        }
        public void in(){
              System.out.println("SAN PHAM USB");
            System.out.println("Ma-Hang    SoLuong      Gia      ");
            System.out.println(maHang+"\t"+"\t"+soLuong+"\t"+gia+"\t");
        }
    }
    class Mouse extends USB{
     
        @Override
        public float tinhTongTien(int sl, int g){
            float s;
            s= (float) (sl*g- sl*g*0.02);
            return s;
        }
        @Override
        public void in(){
            System.out.println("\n\nSAN PHAM MOUSE (giam gia 20%)");
            System.out.println("Ma-Hang    SoLuong      Gia      ");
            System.out.println(maHang+"\t"+"\t"+soLuong+"\t"+gia+"\t");
           
        }
       
       
    }
    public class MainGhiDe {
        public static void main(String []args){
        USB u= new USB();
        u.set("123T",100,2);
        u.in();
        float tong = u.tinhTongTien(u.soLuong,u.gia);
        System.out.print("Thanh Tien: ");
        System.out.print(tong);
        Mouse m=new Mouse();
        m.set("chuot", 200, 2);
        m.in();
        float tongt=m.tinhTongTien(m.soLuong, m.gia);
        System.out.print("Thanh Tien: ");
        System.out.print(tongt);
       
       
        }
    }
    Mong được các bạn góp ý! :D
  20. Kull_J

    Kull_J New Member

    Các bạn rảnh đọc qua code mình phát :D.Mình có bổ xung thêm switch-case để khi mới vào chọn luôn là mua USB hay Mouse nên có thể code hơi dài tý nhưng khá sạch :D

    Show Spoiler

    Mã:
    /*
        - Class USB có các thuộc tính: mã hàng, giá, số lượng. Phương thức tổng tiền = giá * số lượng,
          phương thức show in ra toàn bộ thông tin đơn hàng mua USB
        - Class Mouse kế thừa từ class USB, ghi đè 2 phương thức tổng tiền (do chuột được giảm giá 20%)
          và show in toàn bộ thông tin đơn hàng khi khách hàng mua chuột máy tính.
        - Tạo mỗi lớp 1 đối tượng, nhập thông tin từ bàn phím, in thông tin đơn hàng ra màn hình!
        - Code hướng đối tượng, các thuộc tính để private!
    */
    package Demo_Overriding;
     
    import java.util.Scanner;
     
    class USB
    {
        private String maHang;
        private long giaHang;
        private int soLuong;
     
        public String getMaHang() {
            return maHang;
        }
        public long getGiaHang() {
            return giaHang;
        }
        public int getSoLuong() {
            return soLuong;
        }
     
        public void setMaHang(String maHang) {
            this.maHang = maHang;
        }
        public void setGiaHang(long giaHang) {
            this.giaHang = giaHang;
        }
        public void setSoLuong(int soLuong) {
            this.soLuong = soLuong;
        }
     
        public void input() {
            Scanner input = new Scanner(System.in);
            System.out.println("=== Nhập thông tin đơn hàng ===");
            System.out.print("Nhập mã hàng: ");
            setMaHang (input.nextLine());
            System.out.print("Nhập giá hàng: ");
            setGiaHang (input.nextLong());
            System.out.print("Nhập số lượng: ");
            setSoLuong (input.nextInt());
        }
     
        public void show() {
            System.out.println("=== Thông tin đơn hàng ===");
            System.out.println("Mã Hàng: "+getMaHang());
            System.out.println("Giá Hàng: "+getGiaHang()+" VND/chiếc");
            System.out.println("Số Lượng: "+getSoLuong()+" chiếc");
            System.out.println("");
            long total = tongTien();
            System.out.println("Thành tiền: "+total+" VND");
        }
     
        public long tongTien()
        {
            return (long) (giaHang*soLuong);
        }
    }
     
    class Mouse extends USB
    {
        @Override
        public void show() {
            System.out.println("=== Thông tin đơn hàng ===");
            System.out.println("Mã Hàng: "+getMaHang());
            System.out.println("Giá Hàng: "+getGiaHang()+" VND/chiếc");
            System.out.println("Số Lượng: "+getSoLuong()+" chiếc");
            System.out.println("");
            long total = tongTien();
            System.out.println("Thành tiền: "+total+" VND");
        }
        @Override
        public long tongTien()
        {
            return (long) (this.getGiaHang()*this.getSoLuong()-(this.getGiaHang()*this.getSoLuong()*0.2));
        }
    }
     
    public class Bai_Tap {
        public static void main(String[] args) {
            while (true)
            {
            int a;
            Scanner chon = new Scanner(System.in);
            System.out.println("1  Mua USB");
            System.out.println("2  Mua Mouse");
            System.out.print("Chọn ");
            a= chon.nextInt();
         
            switch (a)
            {
                case (1):
                {
                    USB usb = new USB();
                    System.out.println("Mua USB");
                    usb.input();
                    System.out.println("Hoá đơn mua USB");
                    System.out.println("");
                    usb.show();
                    break;
                }
                case (2):
                {
                    Mouse mouse = new Mouse();
                    System.out.println("Mua Mouse");
                    mouse.input();
                    System.out.println("Hoá đơn mua Mouse");
                    System.out.println("");
                    mouse.show();
                    break;
                }
                default:
                {
                    System.out.println("Chọn 1 hoặc 2");
                    System.out.println("");
                    break;             
                }   
            }//switch
            }
        }
    }
    
    phamhaidang thích bài này.

Chia sẻ trang này