Khóa học free Bài 16: Tính kế thừa (inheritance) trong Java

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

  1. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Lượt xem: 21,417
    /* 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;) */

    20111012_Java-Ltrinhhuongdoituong-p3_11
    Tính kế thừa trong Java cũng tương tự như mô hình trên!
    1, Khái niệm:

    Một lớp con (subclass) có thể kế thừa tất cả những vùng dữ liệu và phương thức của một lớp khác (siêu lớp - superclass).
    Như vậy việc tạo một lớp mới từ một lớp đã biết sao cho các thành phần (fields và methods) của lớp cũ cũng sẽ thành các thành phần (fields và methods) của lớp mới. Khi đó ta gọi lớpmới là lớp dẫn xuất (derived class) từ lớp cũ (superclass).
    Có thể lớp cũ cũng là lớp được dẫn xuất từ một lớp nào đấy, nhưng đối với lớp mới vừa tạo thì lớp cũ đó là một lớp siêu lớp trực tiếp (immediate supperclass).

    Dùng từ khóa extends để chỉ lớp dẫn xuất.
    PHP:
    class {
          
    //...
    }
    class 
    extends A{
          
    //...
    }
    Như trên class B đã kết thừa từ class A.

    ** Chú ý: Java cung cấp 3 tiền tố/từ khóa để hỗ trợ tính kế thừa của lớp:
    - public: lớp có thể truy cập từ các gói, chương trình khác.
    - final: Lớp hằng, lớp không thể tạo dẫn xuất (không thể có con), hay đôi khi người ta gọi là lớp “vô sinh”.
    - abstract: Lớp trừu tượng (không có khai báo các thành
    phần và các phương thức trong lớp trừu tượng). Lớp dẫn xuất sẽ khai báo, cài đặt cụ thể các thuộc tính, phương thức của lớp trừu tượng.
    (Những điều này ta sẽ bàn đến ở những bài sau)

    2, Ví dụ:

    Tạo 3 class gồm các thuộc tính tương ứng:
    Class "nhân sự" gồm: họ tên, năm sinh, quê quán.
    Class "học sinh" gồm: họ tên, năm sinh, quê quán, điểm trung bình.
    Class "giáo viên" gồm: họ tên, năm sinh, quê quán, lương hàng tháng.

    Như vậy, nếu như chúng ta không sử dụng tính kế thừa thì sẽ xảy ra tình trạng lặp code, nghĩa là khi khai báo 2 lớp "học sinh" và "giáo viên" sẽ khai báo lại các thuộc tính họ tên, năm sinh, quê quán
    Để sử dụng tính kế thừa, ta chỉ cần khai báo lớp "nhân sự", sau đó 2 lớp còn lại ta kế thừa từ lớp "nhân sự" , thiếu thuộc tính, phương thức nào thì sẽ bổ sung vào lớp đó.

    Xem bài làm dưới đây:

    a, Tạo các thuộc tính để public, và kế thừa: (Để thuộc tính public như này cho ngắn gọn, các bạn dễ hiểu trước)
    PHP:
    package javademoandroidvn;
     
    class 
    NhanSu {
     
        public 
    String hoTen;
        public 
    int namSinh;
        public 
    String queQuan;
    }
    class 
    HocSinh extends NhanSu{
        public 
    float diemTb;
    }
    class 
    GiaoVien extends NhanSu{
        public 
    int luong;
    }
     
    public class 
    JavaDemoAndroidVn {
     
        public static 
    void main(String[] args) {
            
    NhanSu ns = new NhanSu();
            
    ns.hoTen "Nhân Sự A";
            
    ns.namSinh 1990;
            
    ns.queQuan "Hải Dương";
     
            
    HocSinh hs = new HocSinh();
            
    hs.hoTen "Vũ Văn A";        // Đối tượng tạo ra từ lớp "học sinh" kế thừa, sử dụng các thuộc tính của lớp "nhân sự"
            
    hs.namSinh 1992;
            
    hs.queQuan "Hải Dương";
            
    hs.diemTb 9.5f;
     
            
    GiaoVien gv = new GiaoVien();
            
    gv.hoTen "Nguyễn Văn B";    // Đối tượng tạo ra từ lớp "giáo viên" kế thừa, sử dụng các thuộc tính của lớp "nhân sự"
            
    gv.namSinh 1980;
            
    gv.queQuan "Hà Nội";
            
    gv.luong 300000000;
        }
    }
    b, Tạo các thuộc tính để private, các phương thức cũng sẽ được kế thừa:
    (Cụ thể là các phương thức getter và setter ở ví dụ này)

    PHP:
    package javademoandroidvn;
     
    class 
    NhanSu {
     
        private 
    int namSinh;
        private 
    String queQuan;
        private 
    String hoTen;
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    int getNamSinh() {
            return 
    namSinh;
        }
     
        public 
    void setNamSinh(int namSinh) {
            
    this.namSinh namSinh;
        }
     
        public 
    String getQueQuan() {
            return 
    queQuan;
        }
     
        public 
    void setQueQuan(String queQuan) {
            
    this.queQuan queQuan;
        }
    }
     
    class 
    HocSinh extends NhanSu {
     
        private 
    float diemTb;
     
        public 
    float getDiemTb() {
            return 
    diemTb;
        }
     
        public 
    void setDiemTb(float diemTb) {
            
    this.diemTb diemTb;
        }
    }
     
    public class 
    JavaDemoAndroidVn {
     
        public static 
    void main(String[] args) {
            
    NhanSu ns = new NhanSu();
            
    ns.setHoTen("Nhân Sự A");
            
    ns.setNamSinh(1990);
            
    ns.setQueQuan("Hải Dương");
     
            
    HocSinh hs = new HocSinh();
            
    hs.setHoTen("Vũ Văn A");      // Đối tượng tạo ra từ lớp "học sinh" kế thừa, sử dụng các thuộc tính, phương thức của lớp "nhân sự"
            
    hs.setNamSinh(1992);
            
    hs.setQueQuan("Hải Dương");
            
    hs.setDiemTb(9.5f);
     
            
    System.out.println("Thông tin học học sinh: ");
            
    System.out.println("Họ tên: " hs.getHoTen());
            
    System.out.println("Năm sinh: " hs.getNamSinh());
            
    System.out.println("Quê quán: " hs.getQueQuan());
            
    System.out.println("Điểm trung bình: " hs.getDiemTb());
        }
    }
    Tham khảo thêm video bên blog StudyAndShare, có thể có 1 vài khái niệm bạn sẽ chưa hiểu, sau vài bài nữa, bạn nên xem lại video này!


    [​IMG]

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

    Bài 1: Dùng tính kế thừa khai báo 3 class:
    Class "Sinh Viên" gồm các thuộc tính: Họ tên, năm sinh, mã thẻ, tiền học phí còn nợ.
    Class "Giảng Viên" gồm các thuộc tính: Họ tên, năm sinh, mã thẻ, tiền lương hàng tháng.
    Class "Giám Đốc" gồm các thuộc tính: Họ tên, năm sinh, mã thẻ, tiền tiêu hàng tháng.

    Các thuộc tính để private, truy cập các thuộc tính sử dụng phương thức getter và setter
    Tạo 1 đối tượng giảng viên, giá trị nhập vào từ bàn phím, in thông tin ra ngoài
    màn hình console

    Đọc thêm: Tính kế thừa và tính trừu tượng trong Java

    (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]

    Bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: Android.Vn
    kế thừa, tính kế thừa, tính kế thừa trong java, kế thừa trong java, inheritance in java, inheritance trong java, khóa học lập trình java, khóa học java, khóa học lập trình java giá rẻ, khóa học lập trình java tốt nhất
    nguyenthanhTuyen, Quagn1998Sky6596 thích bài này.
  2. Vjrus.HT

    Vjrus.HT Member

    Show Spoiler

    PHP:
    package DemoJava.Android.Vn;
     
    import java.util.Scanner;
     
    class 
    ThongTin {
     
        private 
    String hoTen;
        private 
    int namSinh;
        private 
    String maThe;
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    int getNamSinh() {
            return 
    namSinh;
        }
     
        public 
    void setNamSinh(int namSinh) {
            
    this.namSinh namSinh;
        }
     
        public 
    String getMaThe() {
            return 
    maThe;
        }
     
        public 
    void setMaThe(String maThe) {
            
    this.maThe maThe;
        }
     
        public 
    void Input(){
            
    Scanner inp = new Scanner(System.in);
           
            
    System.out.print("Nhập Họ tên: ");
            
    setHoTen(inp.nextLine());
           
            
    System.out.print("Nhập Năm sinh: ");
            
    setNamSinh(inp.nextInt());
            
    inp.nextLine();
            
    System.out.print("Nhập mã thẻ: ");
            
    setMaThe(inp.nextLine());
           
        }
       
        public 
    void Output() {
            
    System.out.println("Họ tên: " getHoTen());
            
    System.out.println("Năm sinh: " getNamSinh());
            
    System.out.println("Mã thẻ: " getMaThe());
        }
    }
     
    class 
    SinhVien extends ThongTin {
     
        private 
    long hocPhi;
     
        public 
    long getHocPhi() {
            return 
    hocPhi;
        }
     
        public 
    void setHocPhi(long hocPhi) {
            
    this.hocPhi hocPhi;
        }
    }
     
    class 
    GiangVien extends ThongTin {
     
        private 
    long tienLuong;
     
        public 
    long getTienLuong() {
            return 
    tienLuong;
        }
     
        public 
    void setTienLuong(long tienLuong) {
            
    this.tienLuong tienLuong;
        }
     
        public 
    void InputGiangVien() {
            
    Scanner inp = new Scanner(System.in);
            
    System.out.print("Tiền lương hàng tháng: ");
            
    setTienLuong(inp.nextLong());
        }
     
        public 
    void OutputGiangVien() {
            
    System.out.println("Tiền lương hàng tháng: "+getTienLuong());
        }
    }
     
    class 
    GiamDoc extends ThongTin {
     
        private 
    long tienTieu;
     
        public 
    long getTienTieu() {
            return 
    tienTieu;
        }
     
        public 
    void setTienTieu(long tienTieu) {
            
    this.tienTieu tienTieu;
        }
    }
     
    public class 
    Unit16 {
     
        public static 
    void main(String[] args) {
            
    ThongTin tTin = new ThongTin();
            
    GiangVien gVien = new GiangVien();
            
    //Input
            
    tTin.Input();
            
    gVien.InputGiangVien();
            
    //Output
            
    tTin.Output();
            
    gVien.InputGiangVien();   
     
        }
    }
    Darkness, Quagn1998Tiasangmoi92 thích bài này.
  3. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Mình bổ sung thêm chút nhé, đã update lại ở trên, trước viết thiếu chút :)
    DarknessQuagn1998 thích bài này.
  4. Quagn1998

    Quagn1998 New Member

    Có tham khảo bài anh Vjrus.HT

    Show Spoiler

    PHP:
    package Unit16_KeThua;
     
    import java.util.Scanner;
     
    class 
    Chuan {
        private 
    String hoTenmaThe;
        private 
    long namSinh;
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    String getMaThe() {
            return 
    maThe;
        }
     
        public 
    void setMaThe(String maThe) {
            
    this.maThe maThe;
        }
     
        public 
    long getNamSinh() {
            return 
    namSinh;
        }
     
        public 
    void setNamSinh(long namSinh) {
            
    this.namSinh namSinh;
        }
     
        public 
    void Input() {
            
    Scanner nhapDuLieu = new Scanner(System.in);
            
    System.out.print("Nhập họ tên: ");
            
    setHoTen(nhapDuLieu.next());
            
    System.out.print("Nhập năm sinh: ");
            
    setNamSinh(nhapDuLieu.nextLong());
            
    System.out.print("Nhập mã thẻ: ");
            
    setMaThe(nhapDuLieu.next());
        }
       
        public 
    void Output() {
            
    System.out.println("Họ tên: " hoTen);
            
    System.out.println("Năm sinh: " namSinh);
            
    System.out.println("Mã thẻ: " maThe);
        }
    }
     
    class 
    SinhVien extends Chuan {
        private 
    long noHocPhi;
     
        public 
    long getNoHocPhi() {
            return 
    noHocPhi;
        }
     
        public 
    void setNoHocPhi(long noHocPhi) {
            
    this.noHocPhi noHocPhi;
        }
    }
     
    class 
    GiangVien extends Chuan {
        private 
    long luong;
     
        public 
    long getLuong() {
            return 
    luong;
        }
     
        public 
    void setLuong(long luong) {
            
    this.luong luong;
        }
       
        public 
    void InputGiangVien() {
            
    Scanner nhapDuLieu2 = new Scanner(System.in);
            
    System.out.print("Nhập tiền lương hàng tháng: ");
            
    setLuong(nhapDuLieu2.nextLong());
        }
       
        public 
    void OutputGiangVien() {
            
    System.out.println("Tiền lương của giảng viên: " getLuong());
        }
    }
     
    class 
    GiamDoc extends Chuan {
        private 
    long tienTieu;
     
        public 
    long getTienTieu() {
            return 
    tienTieu;
        }
     
        public 
    void setTienTieu(long tienTieu) {
            
    this.tienTieu tienTieu;
        }
    }
     
    public class 
    QuanLy {
        public static 
    void main(String[] args) {
            
    GiangVien a = new GiangVien();
            
    a.Input();
            
    a.InputGiangVien();
            
    a.Output();
            
    a.OutputGiangVien();
        }
    }


    P/s: Anh Vjrus.HT và anh Tiasangmoi92 cho em xin cái địa chỉ facebook ạ.
    Tiasangmoi92 thích bài này.
  5. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Quagn1998 thích bài này.
  6. phongdt

    phongdt New Member

    Mình thấy hơi lạ là sau bài inheritance thì không thấy bài nào về polymorphism :)
    Show Spoiler

    PHP:
    package basic;
     
    import java.util.Scanner;
    import java.util.InputMismatchException;
    import java.util.ArrayList;
     
    public class 
    Universities {
     
    private static 
    Scanner input = new ScannerSystem.in );
    private static 
    ArrayListString idOfPeople;// ensure 2 different people haven't same id
     
    public Universities()
    {
    idOfPeople = new ArrayListString >();
    }
     
    public class 
    Person
    {
    private 
    String name;
    private 
    int birthYear;
    private 
    String id;
     
    public 
    Person()
    {
    setName();
    setBirthYear();
    setId();
    }
     
    // get and set methods
    public String getName()
    {
    return 
    name;
    }
     
    public 
    void setName()
    {
    System.out.print( "\nEnter name: " );
    name input.nextLine();
    }
     
    public 
    int getBirthYear()
    {
    return 
    birthYear;
    }
     
    public 
    void setBirthYear()
    {
    System.out.printf"Enter year of birth: " );
    boolean continueLoop true;
    while ( 
    continueLoop )
    {
    try
    {
    birthYear Integer.parseIntinput.nextLine() );
    if( 
    birthYear )
    throw new 
    IllegalArgumentException();
    continueLoop false;
    }
    catch ( 
    InputMismatchException IllegalArgumentException e )
    {
    System.out.println"Invalid! Please enter again!" );
    }
    }
    }
     
    public 
    String getId()
    {
    return 
    id;
    }
     
    // insert id into idOfPeople when id isn't used
    public void setId()
    {
    System.out.printf"Enter id: " );
    boolean continueLoop true;
    while ( 
    continueLoop )
    {
    String str input.nextLine();
    if ( 
    idOfPeople.isEmpty() )// has not people
    {
    id str;
    idOfPeople.addstr );
    continueLoop false;
    }
     
    else
    {
    boolean found false;
    int i 0;
    while( !
    found && idOfPeople.size() )
    {
    if ( 
    str.equalsidOfPeople.get) ) )// id is already used by anyone else
    {
    System.out.println(str " is already used");
    found true;
    }
    else
    i++;
    }
     
    if ( !
    found )
    {
    id str;
    idOfPeople.addstr );
    continueLoop false;
    }
    else
    System.out.printf"Please enter id again: " );
    }
    }
    }
     
    @
    Override
    public String toString()
    {
    return 
    String.format"\n" name "( born: " birthYear " )" " has id " id );
    }
    }
     
    // class Student is subclass of class Person
    public class Student extends Person
    {
    private 
    float tuitionDebt;
     
    // constructor
    public Student()
    {
    super();
    setTuitionDebt();
    }
     
    public 
    float getTuitionDebt()
    {
    return 
    tuitionDebt;
    }
     
    public 
    void setTuitionDebt()
    {
    System.out.print( "Enter tuition debt: " );
    tuitionDebt inputMoneyHandling();
    }
     
    @
    Override
    public String toString()
    {
    return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id " this.getId() +
    " and has $" tuitionDebt " als debt in tuiton fees");
    }
    }
     
    // class Lecturer is subclass of person
    public class Lecturer extends Person
    {
    private 
    float salary;
     
    public 
    Lecturer()
    {
    super();
    setSalary();
    }
     
    public 
    float getSalary()
    {
    return 
    salary;
    }
     
    public 
    void setSalary()
    {
    System.out.print( "Enter salary: " );
    salary inputMoneyHandling();
    }
     
    @
    Override
    public String toString()
    {
    return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id - " this.getId() +
    " and has $" salary " als monthly salary");
    }
    }
     
    public class 
    Director extends Person
    {
    private 
    float paid;
     
    public 
    Director()
    {
    super();
    setPaid();
    }
     
    public 
    float getPaid()
    {
    return 
    paid;
    }
     
    public 
    void setPaid()
    {
    System.out.print( "Enter monthly paid money: " );
    paid inputMoneyHandling();
    }
     
    @
    Override
    public String toString()
    {
    return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id " this.getId() +
    " and has $" paid " als monthly paid money");
    }
    }
     
    // ensure entered money is greater than 0
    private static float inputMoneyHandling()
    {
    float temp 0;
    boolean continueLoop true;
    while( 
    continueLoop )
    {
    try
    {
    temp Integer.parseIntinput.nextLine() );
    if ( 
    temp )
    throw new 
    IllegalArgumentException();
    continueLoop false;
    }
    catch ( 
    InputMismatchException IllegalArgumentException e )
    {
    System.out.println"Invalid! Please enter again!" );
    }
    }
     
    return 
    temp;
    }
     
    public static 
    void main(String[] args) {
    Universities newTest = new Universities();
    Person su1 newTest.new Student();
    Person lec1 newTest.new Lecturer();
    Director di1 newTest.new Director();
     
    System.out.printlnsu1.toString() );
    System.out.printlnlec1.toString() );
    System.out.printlndi1.toString() );
    }
     
    }
  7. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Bạn xem mấy bài sau ấy, 3 - 4 bài thể hiện tính đa hình của Java :D
    P/s: Bạn có thể chèn code dễ nhìn hơn được không? :(
  8. phongdt

    phongdt New Member

    Mình cũng ko hiểu nổi là tại sao paste code từ eclipse vào thì mất sạch cách dòng???
  9. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Bạn thử copy cho vào notetpad rồi mới copy vào đây xem!
  10. phongdt

    phongdt New Member

    Hình như là do mình không dùng toolbar mà tự gõ BB code
    Show Spoiler

    PHP:
    package basic;
     
    import java.util.Scanner;
    import java.util.InputMismatchException;
    import java.util.ArrayList;
     
    public class 
    Universities {
     
        private static 
    Scanner input = new ScannerSystem.in );
        private static 
    ArrayListString idOfPeople;                        // ensure 2 different people haven't same id
       
        
    public Universities()
        {
            
    idOfPeople = new ArrayListString >();
        }
       
        public class 
    Person
        
    {
            private 
    String name;
            private 
    int birthYear;
            private 
    String id;
           
            public 
    Person()
            {
                
    setName();
                
    setBirthYear();
                
    setId();
            }
           
            
    // get and set methods
            
    public String getName()
            {
                return 
    name;
            }
           
            public 
    void setName()
            {
                
    System.out.print( "\nEnter name: " );
                
    name input.nextLine();
            }
           
            public 
    int getBirthYear()
            {
                return 
    birthYear;
            }
           
            public 
    void setBirthYear()
            {
                
    System.out.printf"Enter year of birth: " );
                
    boolean continueLoop true;
                while ( 
    continueLoop )
                {
                    try
                    {
                        
    birthYear Integer.parseIntinput.nextLine() );
                        if( 
    birthYear )
                            throw new 
    IllegalArgumentException();
                        
    continueLoop false;
                    }
                    catch ( 
    InputMismatchException IllegalArgumentException e )
                    {
                        
    System.out.println"Invalid! Please enter again!" );
                    }
                }
            }
           
            public 
    String getId()
            {
                return 
    id;
            }
           
            
    // insert id into idOfPeople when id isn't used
            
    public void setId()
            {
                
    System.out.printf"Enter id: " );
                
    boolean continueLoop true;
                while ( 
    continueLoop )
                {
                    
    String str input.nextLine();
                    if ( 
    idOfPeople.isEmpty() )                                    // has not people
                    
    {
                        
    id str;
                        
    idOfPeople.addstr );
                        
    continueLoop false;
                    }
                       
                    else
                    {
                        
    boolean found false;
                        
    int i 0;
                        while( !
    found && idOfPeople.size() )
                        {
                            if ( 
    str.equalsidOfPeople.get) ) )                    // id is already used by anyone else
                            
    {
                                
    System.out.println(str " is already used");
                                
    found true;
                            }
                            else
                                
    i++;
                        }
                       
                        if ( !
    found )   
                        {
                            
    id str;
                            
    idOfPeople.addstr );
                            
    continueLoop false;
                        }
                        else
                            
    System.out.printf"Please enter id again: " );
                    }
                }
            }
           
            @
    Override
            
    public String toString()
            {
                return 
    String.format"\n" name "( born: " birthYear " )" " has id " id );
            }
        }
       
        
    // class Student is subclass of class Person
        
    public class Student extends Person
        
    {
            private 
    float tuitionDebt;
                   
            
    // constructor
            
    public Student()
            {
                
    super();
                
    setTuitionDebt();
            }
                   
            public 
    float getTuitionDebt()
            {
                return 
    tuitionDebt;
            }
                   
            public 
    void setTuitionDebt()
            {
                
    System.out.print( "Enter tuition debt: " );
                
    tuitionDebt inputMoneyHandling();
            }
           
            @
    Override
            
    public String toString()
            {
                return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id " this.getId() +
                        
    " and has $" tuitionDebt " als debt in tuiton fees");
            }
        }
               
        
    // class Lecturer is subclass of person
        
    public class Lecturer extends Person
        
    {
            private 
    float salary;
                   
            public 
    Lecturer()
            {
                
    super();
                
    setSalary();
            }
                   
            public 
    float getSalary()
            {
                return 
    salary;
            }
                   
            public 
    void setSalary()
            {
                
    System.out.print( "Enter salary: " );
                
    salary inputMoneyHandling();
            }
           
            @
    Override
            
    public String toString()
            {
                return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id - " this.getId() +
                        
    " and has $" salary " als monthly salary");
            }
        }
       
        public class 
    Director extends Person
        
    {
            private 
    float paid;
           
            public 
    Director()
            {
                
    super();
                
    setPaid();
            }
           
            public 
    float getPaid()
            {
                return 
    paid;
            }
           
            public 
    void setPaid()
            {
                
    System.out.print( "Enter monthly paid money: " );
                
    paid inputMoneyHandling();
            }
           
            @
    Override
            
    public String toString()
            {
                return 
    String.format"\n" this.getName() + "( born: " this.getBirthYear() + " )" " has id " this.getId() +
                        
    " and has $" paid " als monthly paid money");
            }
        }
       
        
    // ensure entered money is greater than 0
        
    private static float inputMoneyHandling()
        {
            
    float temp 0;
            
    boolean continueLoop true;
            while( 
    continueLoop )
            {
                try
                {
                    
    temp Integer.parseIntinput.nextLine() );
                    if ( 
    temp )
                        throw new 
    IllegalArgumentException();
                    
    continueLoop false;
                }
                catch ( 
    InputMismatchException IllegalArgumentException e )
                {
                    
    System.out.println"Invalid! Please enter again!" );
                }
            }
           
            return 
    temp;
        }
       
        public static 
    void main(String[] args) {
            
    Universities newTest = new Universities();
            
    Person su1 newTest.new Student();
            
    Person lec1 newTest.new Lecturer();
            
    Director di1 newTest.new Director();
           
            
    System.out.printlnsu1.toString() );
            
    System.out.printlnlec1.toString() );
            
    System.out.printlndi1.toString() );
        }
     
    }
  11. tiennguyen

    tiennguyen New Member

    Mình nộp bài, bạn xem giúp mình với nha.
    Show Spoiler

    PHP:
    package bai16;
     
    import java.util.Scanner;
     
    public class 
    inheritance {
        
    /**
        * @param args
        */
        
    public static void main(String[] args) {
            
    // TODO Auto-generated method stub
            
    Scanner it=new Scanner(System.in);
            
    giangvien gv=new giangvien();
            
    gv.input();
            
    gv.display();
        }
    }
    class 
    sinhvien{
        private 
    String hoten,mathe;
        private 
    int namsinh;
        private 
    float tienthieu;
     
        public 
    String getHoten(){
            return 
    hoten;
        }
        public 
    String getMathe(){
            return 
    mathe;
        }
        public 
    int getNamsinh(){
            return 
    namsinh;
        }
        public 
    float getTienthieu(){
            return 
    tienthieu;
        }
        public 
    void setHoten(String hoten){
            
    this.hoten=hoten;
        }
        public 
    void setMathe(String mathe){
            
    this.mathe=mathe;
        }
        public 
    void setNamsinh(int namsinh){
            
    this.namsinh=namsinh;
        }
        public 
    void setTienthieu(float tienthieu){
            
    this.tienthieu=tienthieu;
        }
    }
    class 
    giangvien extends sinhvien{
        private 
    float tienluong;
        public 
    float getTienluong(){
            return 
    tienluong;
        }
        public 
    void setTienluong(float tienluong){
            
    this.tienluong=tienluong;
        }
        public 
    void input(){
            
    Scanner ipt=new Scanner(System.in);
            
    System.out.println("Nhap ho ten giang vien: ");
            
    setHoten(ipt.nextLine());
            
    System.out.println("Nhap ma the: ");
            
    setMathe(ipt.nextLine());
            
    System.out.println("Nhap nam sinh: ");
            
    setNamsinh(ipt.nextInt());
            
    System.out.println("Nhap tien luong: ");
            
    tienluong=ipt.nextFloat();
        }
        public 
    void display(){
            
    System.out.println("Ho ten: "+getHoten());
            
    System.out.println("Ma the: "+getMathe());
            
    System.out.println("Nam sinh: "+getNamsinh());
            
    System.out.println("Tien luong: "+tienluong);
        }
    }
    class 
    giamdoc extends sinhvien{
        private 
    float tientieu;
        public 
    float getTientieu(){
            return 
    tientieu;
        }
        public 
    void setTientieu(float tientieu){
            
    this.tientieu=tientieu;
        }
    }
  12. gaquayroti

    gaquayroti New Member

    Mình nộp bài.
    Show Spoiler

    Mã:
    package QuanLy;
     
    import java.util.Scanner;
     
    public class NhanSu {
     
        /**
        * @param args
        */
        private String hoTen;
        private int namSinh;
        private int maThe;
       
        public static void main(String[] args) {
            // TODO Code Application logic here
            Scanner inPut = new Scanner(System.in);
           
            GiangVien a = new GiangVien();
            System.out.println("Nhập họ và tên: ");
            a.setHoTen(inPut.nextLine());
            System.out.println("Nhập năm sinh: ");
            a.setNamSinh(inPut.nextInt());
            System.out.println("Nhập mã thẻ: ");
            a.setMaThe(inPut.nextInt());
            System.out.println("Nhập tiền lương: ");
            a.setTienLuong(inPut.nextInt());
           
            System.out.println("Thông tin vừa nhập: ");
            System.out.println("Họ và tên: " + a.getHoTen());
            System.out.println("Năm sinh: " + a.getNamSinh());
            System.out.println("Mã thẻ: " + a.getMaThe());
            System.out.println("Tiền lương: " + a.getTienLuong());
           
        }
     
        public String getHoTen() {
            return hoTen;
        }
     
        public void setHoTen(String hoTen) {
            this.hoTen = hoTen;
        }
     
        public int getNamSinh() {
            return namSinh;
        }
     
        public void setNamSinh(int namSinh) {
            this.namSinh = namSinh;
        }
     
        public int getMaThe() {
            return maThe;
        }
     
        public void setMaThe(int maThe) {
            this.maThe = maThe;
        }
     
    }
     
    class SinhVien extends NhanSu{
        private int tienHocPhi;
     
        public int getTienHocPhi() {
            return tienHocPhi;
        }
     
        public void setTienHocPhi(int tienHocPhi) {
            this.tienHocPhi = tienHocPhi;
        }
       
    }
     
    class GiangVien extends NhanSu{
        private int tienLuong;
     
        public int getTienLuong() {
            return tienLuong;
        }
     
        public void setTienLuong(int tienLuong) {
            this.tienLuong = tienLuong;
        }
       
    }
     
    class GiamDoc extends NhanSu{
        private int tienTieu;
     
        public int getTienTieu() {
            return tienTieu;
        }
     
        public void setTienTieu(int tienTieu) {
            this.tienTieu = tienTieu;
        }
       
    }
  13. Binly

    Binly Hãy theo đuổi đam mê,thành công sẽ theo đuổi bạn!

    Show Spoiler
    Show Spoiler

    PHP:
    package unit16;
     
    import java.util.Scanner;
     
    /**
    *
    * @author Binly
    */
    class ConNguoi {
       
        private 
    String hoTen;
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    String getNamSinh() {
            return 
    namSinh;
        }
     
        public 
    void setNamSinh(String namSinh) {
            
    this.namSinh namSinh;
        }
     
        public 
    String getMaThe() {
            return 
    maThe;
        }
     
        public 
    void setMaThe(String maThe) {
            
    this.maThe maThe;
        }
        private 
    String namSinh;
        private 
    String maThe;
       
        public 
    void nhap(){
            
    Scanner s=new Scanner(System.in);
            
    System.out.println("nhập vào họ tên :");
            
    hoTen=s.nextLine();
            
    System.out.println("Nhập vào năm sinh: ");
            
    namSinh=s.nextLine();
            
    System.out.println("Nhập vào mã thẻ: ");
            
    maThe=s.nextLine();
           
        }
        public 
    void xuat(){
           
            
    System.out.println("Họ tên:"+hoTen);
            
    System.out.println("Năm Sinh: "+namSinh);
            
    System.out.println("mã Thẻ: "+maThe);
        }
            }
        class 
    SinhVien extends ConNguoi
        
    {
            private 
    float tienHP;
     
        public 
    float getTienHP() {
            return 
    tienHP;
        }
     
        public 
    void setTienHP(float tienHP) {
            
    this.tienHP tienHP;
        }
        }
        class 
    GiangVien extends ConNguoi
        
    {
            private 
    float tienLuong;
     
        public 
    float getTieLuong() {
            return 
    tienLuong;
        }
     
        public 
    void setTieLuong(float tieLuong) {
            
    this.tienLuong tieLuong;
        }
        public 
    void nhapGV(){
            
    Scanner s=new Scanner(System.in);
            
    System.out.println("nhập vào tiền lương tháng:");
            
    tienLuong=s.nextFloat();
        }
        public 
    void xuatGV(){
            
    System.out.println("Tiền Lương tháng là: "+tienLuong);
        }
        }
        class 
    GiamDoc extends ConNguoi
        
    {
            private 
    float tienTieu;
     
        public 
    float getTienTieu() {
            return 
    tienTieu;
        }
     
        public 
    void setTienTieu(float tienTieu) {
            
    this.tienTieu tienTieu;
        }
        }


    hàm main
    Show Spoiler

    PHP:
    [CODE]package unit16;
     
    /**
    *
    * @author Binly
    */
    public class Unit16 {
     
        
    /**
        * @param args the command line arguments
        */
        
    public static void main(String[] args) {
            
    GiangVien gv=new GiangVien();
            
    gv.nhap();
            
    gv.nhapGV();
            
    gv.xuat();
            
    gv.xuatGV();
        }
    }
    [/CODE]
    Tiasangmoi92 thích bài này.
  14. Show Spoiler

    Mã:
    package javaandroid.vn;
     
    import java.util.Scanner;
     
    public class BTBai16 {
        public static void main(String[]args){
            Scanner in=new Scanner(System.in);
            Giangvien1 gv=new Giangvien1();
            System.out.println("Nhap thong tin Giang vien gv:");
            System.out.println("Ho ten :");
            gv.setHoten(in.nextLine());
            System.out.println("Nam sinh :");
            gv.setNamsinh(in.nextInt());
            System.out.println("Ma the :");
            gv.setMathe(in.nextInt());
            System.out.println("Tien luong hang thang :");
            gv.setTienluonghangthang(in.nextFloat());
            in.nextLine();
     
            System.out.println("Thong tin Giang vien gv da nhap:");
            System.out.println("Ho ten :"+gv.getHoten());
            System.out.println("Nam sinh :"+gv.getNamsinh());
            System.out.println("Ma the :"+gv.getMathe());
            System.out.println("Tien luong hang thang :"+gv.getTienluonghangthang());
        }
    }
    class Sinhvien1
    {
        private String Hoten;
        private int Namsinh;
        private int Mathe;// ma the dang so
        private float tienhocphiconno;
        public String getHoten() {
            return Hoten;
        }
        public void setHoten(String hoten) {
            Hoten = hoten;
        }
        public int getNamsinh() {
            return Namsinh;
        }
        public void setNamsinh(int namsinh) {
            Namsinh = namsinh;
        }
        public int getMathe() {
            return Mathe;
        }
        public void setMathe(int mathe) {
            Mathe = mathe;
        }
        public float getTienhocphiconno() {
            return tienhocphiconno;
        }
        public void setTienhocphiconno(float tienhocphiconno) {
            this.tienhocphiconno = tienhocphiconno;
        }
       
    }
    class Giangvien1 extends Sinhvien1
    {
        private float tienluonghangthang;
     
        public float getTienluonghangthang() {
            return tienluonghangthang;
        }
     
        public void setTienluonghangthang(float tienluonghangthang) {
            this.tienluonghangthang = tienluonghangthang;
        }
    }
    class Giamdoc extends Sinhvien1
    {
        private float tientieuhangthang;
     
        public float getTientieuhangthang() {
            return tientieuhangthang;
        }
     
        public void setTientieuhangthang(float tientieuhangthang) {
            this.tientieuhangthang = tientieuhangthang;
        }
    }
    Tiasangmoi92 thích bài này.
  15. KIetHoHoai

    KIetHoHoai New Member

    PHP:
    Từ từ rồi cũng chiền hết mà thôi.
    Show Spoiler

    PHP:
    package General;
    import java.util.Scanner;
     
    class 
    GiamDoc {
       
        private 
    String namemathe;
        private 
    int yeartientieu;
        
    Scanner on = new Scanner(System.in);
       
        public 
    void setNameMathe() {
            
    System.out.println("Nhap Name: ");
            
    this.name on.nextLine();
            
    System.out.println("Nhap Mathe: ");
            
    this.mathe on.nextLine();
        }
       
        public 
    void setYearTienTieu() {
            
    System.out.println("Nhap Nam: ");
            
    this.year on.nextInt();
            
    System.out.println("Nhap TienTieu: ");
            
    this.tientieu on.nextInt();
        }
       
        public 
    String getNameMathe() {
            return (
    "Name: "+name+" Mathe: "+mathe);
        }
       
        public 
    int getYear() {
            return 
    year;
        }
       
        public 
    int getTientieu() {
            return 
    tientieu;
        }
    }
     
    class 
    GiangVien extends GiamDoc {
        private 
    int luong;
       
        public 
    void setLuong() {
            
    System.out.println("Nhap Luong: ");
            
    this.luong on.nextInt();
        }
       
        public 
    int getLuong() {
            return 
    luong;
        }
    }
     
    class 
    SinhVien extends GiamDoc {
        private 
    int tienno;
       
        public 
    void setTienno() {
            
    System.out.println("Nhap TienNo: ");
            
    this.tienno on.nextInt();
        }
       
        public 
    int getTienno() {
            return 
    tienno;
        }
    }
     
    public class 
    ThuNghiem {
        public static 
    void main(String args []) {
           
            
    GiangVien in = new GiangVien();
            
    in.setNameMathe();
            
    in.setYearTienTieu();
            
    in.setLuong();
           
            
    System.out.println("Name+Mathe: "+in.getNameMathe());
            
    System.out.println("Year: "+in.getYear()+" Luong: "+in.getLuong() );
            
    System.out.println("TienTieu: "+in.getTientieu());
           
        }
    //Method Main.
    }//Class ThuNghiem
    Tiasangmoi92 thích bài này.
  16. KIetHoHoai

    KIetHoHoai New Member

    Trời là load lâu quá....
  17. haizax

    haizax New Member

    Show Spoiler

    Class Nguoi
    Show Spoiler

    PHP:
    package Bai16;
     
    import java.util.Scanner;
    public class 
    Nguoi {
            private 
    String hoTen;
            private 
    int namSinh;
     
        public 
    void setHoTen(String hoTen) {
            
    this.hoTen hoTen;
        }
     
        public 
    void setNamSinh(int namSinh) {
            
    this.namSinh namSinh;
        }
     
        public 
    void setMaThe(int maThe) {
            
    this.maThe maThe;
        }
            private 
    int maThe;
     
        public 
    String getHoTen() {
            return 
    hoTen;
        }
     
        public 
    int getNamSinh() {
            return 
    namSinh;
        }
     
        public 
    int getMaThe() {
            return 
    maThe;
        }
           
                    public 
    void NhapTT(){
                    
    Scanner in = new Scanner(System.in);
                    
    System.out.println("Nhap Ho Ten: ");
                    
    setHoTen(in.nextLine());
                    
    System.out.println("Nhap Nam Sinh: ");
                    
    setNamSinh(in.nextInt());
                    
    System.out.println("Nhap Ma The: ");
                    
    setMaThe(in.nextInt());
                }
               
                public 
    void ShowTT(){
                    
    System.out.println("Thong tin: ");
                    
    System.out.println("Ho ten: " getHoTen()+ "      Nam Sinh: "getNamSinh());
                    
    System.out.println("Ma the: " getMaThe());
                }
           
    }

    Class SinhVien
    Show Spoiler

    PHP:
    package Bai16;
     
     
    public class 
    HocSinh extends Nguoi {
          private 
    float tienNo;
     
        public 
    void setTienNo(float tienNo) {
            
    this.tienNo tienNo;
        }
     
        public 
    float getTienNo() {
            return 
    tienNo;
        }
       
         
    }

    Class GiamDoc
    Show Spoiler

    PHP:
    package Bai16;
     
     
    public class 
    GiamDoc extends Nguoi{
        private 
    float tienTieu;
     
        public 
    void setTienTieu(float tienTieu) {
            
    this.tienTieu tienTieu;
        }
     
        public 
    float getTienTieu() {
            return 
    tienTieu;
        }
       
    }

    Class GiangVien
    Show Spoiler

    PHP:
    package Bai16;
     
    import java.util.Scanner;
     
     
    public class 
    GiangVien extends Nguoi {
        private 
    float luong;
                public 
    void setLuong(float luong){
                    
    this.luong luong;
                }
                public 
    float getLuong(){
                    return 
    luong;
                }
               
                public 
    void NhapGV(){
                    
    Scanner in1 = new Scanner(System.in);
                    
    System.out.println("Nhap Luong Hang Thang: ");
                    
    setLuong(in1.nextFloat());
                }
               
                public 
    void showGV(){
                    
    System.out.println("Luong hang thang: " +getLuong());
                }
               
    }

    Class Main
    Show Spoiler

    PHP:
    package Bai16;
     
     
    public class 
    Main {
        public static 
    void main(String [] args){
            
    GiangVien a = new GiangVien();
            
    a.NhapTT();
            
    a.NhapGV();
            
    a.ShowTT();
            
    a.showGV();
        }
    }

  18. KIetHoHoai

    KIetHoHoai New Member

    Show Spoiler
    haizax thích bài này.
  19. duytan248

    duytan248 New Member

    rất hay
  20. try_again

    try_again New Member

    Show Spoiler

    PHP:
    package abc;
     
    import java.util.*;
    class 
    NhanSu {
        private 
    String hoTen;
        private 
    int namSinh;
        private 
    String maThe;
       
        public 
    String getHoten(){
            return 
    hoTen;
        }
        public 
    void setHoten(String hoTen){
            
    this.hoTen hoTen;
        }
       
        public 
    int getNamSinh(){
            return 
    namSinh;
        }
        public 
    void setNamSinh(int namSinh){
            
    this.namSinh namSinh;
        }
       
        public 
    String getMaThe() {
            return 
    maThe;
        }
        public 
    void setMaThe(String maThe){
            
    this.maThe maThe;
        }
       
        public 
    void nhap(){
            
    Scanner nhapDuLieu = new Scanner(System.in);
           
            
    System.out.print("nhap ten  ");
            
    setHoten(nhapDuLieu.nextLine());
            
    System.out.print("nhap nam sinh ");
            
    setNamSinh(nhapDuLieu.nextInt());
            
    nhapDuLieu.nextLine();
            
    System.out.print("nhap ma the ");
            
    setMaThe(nhapDuLieu.nextLine());
        }
        public 
    void xuat(){
            
    System.out.println("Ho ten : "+getHoten());
            
    System.out.println("Nam sinh : "+getNamSinh());
            
    System.out.println("Ma the : "+getMaThe());
        }
    }
     
    class 
    GiangVien extends NhanSu {
        private 
    float luong;
       
        public 
    float getluong(){
            return 
    luong;
        }
        public 
    void setluong(float luong){
            
    this.luong luong;
        }
        public 
    void nhapGV(){
            
    Scanner nhapDuLieu = new Scanner(System.in);
            
    System.out.println("nhap tien luong hang thang ");
            
    setluong(nhapDuLieu.nextFloat());
        }
        public 
    void xuatGV(){
            
    System.out.println("tien luong thang : "+luong);
        }
    }
     
    class 
    GiamDoc extends NhanSu {
        private 
    float tienTieu;
       
        public 
    float getTienTieu(){
            return 
    tienTieu;
        }
        public 
    void setTienTieu(float tienTieu){
            
    this.tienTieu tienTieu;
        }
        public 
    void nhapGD(){
            
    Scanner nhapDuLieu = new Scanner(System.in);
            
    System.out.print("nhap tien tieu hang thang ");
            
    setTienTieu(nhapDuLieu.nextFloat());
        }
        public 
    void xuatGD(){
            
    System.out.println("tien tieu hang thang :  "+tienTieu);
        }
    }
     
    public class 
    BaiTap {
        public static 
    void main(String[] args) {
            
    GiangVien gv = new GiangVien();
            
    gv.nhap();
            
    gv.nhapGV();
            
    gv.xuat();
            
    gv.xuatGV();
        }
    }
     

Chia sẻ trang này