Cách Nạp chồng phương thức trong lập trình Java

Thảo luận trong 'Chợ Laptop & PC' bắt đầu bởi Tech360, 7/5/16.

  1. Tech360

    Tech360 Thần Tài

    Nếu như một lớp có một số phương thức cùng tên nhưng có số thông số khác nhau , thì đó là nạp chồng phương thức ( Method Overloading ). Gỉa sử mọi người phải thực hành chỉ một hoạt động , có cùng tên phương thức , thì kỹ thuật này làm tăng tính có xác xuất đọc cho thời hạn. Giả thử bạn viết phương thức như a( int , int ) cho hai thông số , và b( int , int , int ) cho ba thông số , thì khi đó điều này có xác xuất gây có nhiều trở ngại hoặc thiếu thốn cho bạn cũng như cho các lập trình viên khác để hiểu hành vi của phương thức , vì tên của nó là khác nhau. Vì thế , chúng ta thực hành nạp chồng phương thức để giúp việc phân tích thời hạn nhanh hơn.

    Có hai cách để nạp chồng phương thức trong tự học Java, đó là:

    Bằng việc thay đổi số thông số

    Bằng việc thay đổi kiểu dữ liệu

    Ghi chú: Trong Java , nạp chồng phương thức là chẳng thể bằng việc thay đổi kiểu trả về của phương thức.
    Nạp chồng phương thức và TypePromotion trong Java
    Một kiểu được promote thành một kiểu khác không có một sự hạn chế hay một trường hợp ngoại lệ nào cả nếu không tìm thấy kiểu dữ liệu nào được kết nối. Bạn theo dõi lược đồ sau để hiểu khái niệm này.
    Như lược đồ trên , byte có xác xuất được promote thành short , int , long , float , hoặc double. Kiểu dữ liệu short có xác xuất được promote thành int , long , float , hoặc double. Kiểu dữ liệu char có xác xuất được promote thành kiểu int , long , float hoặc double và …
    nếu về nạp chồng phương thức với TypePromotion nếu kết nối là không được tìm thấy
    Nếu có kết nối về các thông số kiểu trong phương thức , thì TypePromotion không được thực hiện.

    class OverloadingCalculation2
    void sum( int a , int b )System.out.println( "phuong thuc int arg duoc trieu hoi" );
    void sum( long a , long b )System.out.println( "phuong thuc long arg duoc trieu hoi" );

    public static void main( String args[] )
    OverloadingCalculation2 obj=new OverloadingCalculation2( );
    obj.sum( 20 , 20 ); //Bay gio phuong thuc int arg sum( ) duoc trieu hoi


    nếu về nạp chồng phương thức với TypePromotion trong trường hợp lưỡng nghĩa
    Học viện vietpro chia sẻ tài liệu học java >>> tự học java cơ bản
    Nếu không có kết nối các thông số kiểu trong phương thức , và mỗi phương thức promote số thông số giống nhau , thì đó là trường hợp lưỡng nghĩa.

    class OverloadingCalculation3
    void sum( int a , long b )System.out.println( "Phuong thuc a duoc trieu hoi" );
    void sum( long a , int b )System.out.println( "Phuong thuc b duoc trieu hoi" );

    public static void main( String args[] )
    OverloadingCalculation3 obj=new OverloadingCalculation3( );
    obj.sum( 20 , 20 ); //Khong co tinh luong nghia o day


    kết quả là:

    Output:Compile Time Error