Generic trong Java - 155 bài học Java miễn phí hay nhất PDF

5 172 0
Generic trong Java - 155 bài học Java miễn phí hay nhất PDF

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/java/index.jsp Copyright © vietjack.com Generic Java Nó thú vị viết phương thức sort đơn mà xếp thứ tự phần tử mảng integer, mảng String, mảng kiểu mà hỗ trợ xếp thứ tự Các phương thức Generic Java lớp Generic Java cho nhà lập trình khả xác định, với khai báo phương thức đơn, tập hợp phương thức liên quan hoặc/với khai báo lớp đơn, tập hợp kiểu liên quan, tương ứng Generic Java cung cấp tính an toàn kiểu thời điểm biên dịch mà cho phép nhà lập trình bắt kiểu khơng hợp lệ thời điểm Sử dụng khái niệm Generic Java, viết phương thức chung để xếp thứ tự mảng đối tượng, sau gọi phương thức generic với mảng integer, mảng Double, mảng String, … để xếp thứ tự phần tử mảng Các phương thức generic Java Bạn viết khai báo phương thức generic đơn mà gọi với tham số kiểu khác Dựa kiểu tham số truyền tới phương thức generic này, biên dịch xử lý lần gọi phương thức cách thích hợp Dưới qui tắc để định nghĩa phương thức Generic:  Tất khai báo phương thức generic có khu vực tham số kiểu giới hạn dấu ngoặc nhọn (< >) mà đứng trước kiểu trả phương thức ( < E > ví dụ sau đây)  Mỗi khu vực tham số kiểu chứa nhiều tham số kiểu phân biệt dấu phảy Một tham số kiểu, biết biến kiểu, định danh mà xác định tên kiểu generic  Các tham số kiểu sử dụng để khai báo kiểu trả hoạt động nơi giữ (placeholder) cho kiểu tham số truyền tới phương thức generic, mà biết tham số kiểu thực  Phần thân phương thức generic khai báo giống phương thức khác Ghi tham số kiểu biểu diễn kiểu tham chiếu, kiểu gốc (như int, double, char) http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Ví dụ: Ví dụ minh họa cách in mảng kiểu khác sử dụng phương thức generic đơn public class GenericMethodTest { // generic method printArray public static < E > void printArray( E[] inputArray ) { // Display array elements for ( E element : inputArray ){ System.out.printf( "%s ", element ); } System.out.println(); } public static void main( String args[] ) { // Create arrays of Integer, Double and Character Integer[] intArray = { 1, 2, 3, 4, }; Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 }; Character[] charArray = { 'H', 'E', 'L', 'L', 'O' }; System.out.println( "Array integerArray contains:" ); printArray( intArray ); // pass an Integer array System.out.println( "\nArray doubleArray contains:" ); printArray( doubleArray ); // pass a Double array System.out.println( "\nArray characterArray contains:" ); printArray( charArray ); // pass a Character array } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Nó cho kết quả: Array integerArray contains: Array doubleArray contains: 1.1 2.2 3.3 4.4 Array characterArray contains: H E L L O Các tham số kiểu giới hạn (bounded type) Java Nhiều bạn muốn giới hạn loại kiểu mà cho phép để truyền tới tham số kiểu Ví dụ, phương thức mà hoạt động số muốn chấp nhận Number lớp phụ Đó lý có tham số Bounded Type Để khai báo tham số bounded type, liệt kê tên tham số kiểu, theo sau từ khóa extends, theo sau giới hạn chữ hoa Ví dụ: Ví dụ sau minh họa cách extends sử dụng: “extends” lớp “implements” interface Ví dụ phương thức generic trả giá trị lớn ba đối tượng Comparable public class MaximumTest { // determines the largest of three Comparable objects public static T maximum(T x, T y, T z) { T max = x; // assume x is initially the largest if ( y.compareTo( max ) > ){ max = y; // y is the largest so far } if ( z.compareTo( max ) > ){ max = z; // z is the largest now http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com } return max; // returns the largest object } public static void main( String args[] ) { System.out.printf( "Max of %d, %d and %d is %d\n\n", 3, 4, 5, maximum( 3, 4, ) ); System.out.printf( "Maxm of %.1f,%.1f and %.1f is %.1f\n\n", 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) ); System.out.printf( "Max of %s, %s and %s is %s\n","pear", "apple", "orange", maximum( "pear", "apple", "orange" ) ); } } Nó cho kết sau: Maximum of 3, and is Maximum of 6.6, 8.8 and 7.7 is 8.8 Maximum of pear, apple and orange is pear Các lớp Generic Java Một khai báo lớp Generic trông giống khai báo lớp Generic, ngoại trừ tên lớp theo sau khu vực tham số kiểu Như với phương thức Generic, khu vực tham số kiểu lớp Generic có nhiều tham số kiểu phân biệt dấu phảy Những lớp biết lớp tham số hóa kiểu tham số hóa chúng chấp nhận nhiều tham số Ví dụ: Ví dụ minh họa cách định nghĩa lớp Generic Java: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com public class Box { private T t; public void add(T t) { this.t = t; } public T get() { return t; } public static void main(String[] args) { Box integerBox = new Box(); Box stringBox = new Box(); integerBox.add(new Integer(10)); stringBox.add(new String("Hello World")); System.out.printf("Integer Value :%d\n\n", integerBox.get()); System.out.printf("String Value :%s\n", stringBox.get()); } } Nó cho kết quả: Integer Value :10 String Value :Hello World http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... Các lớp Generic Java Một khai báo lớp Generic trông giống khai báo lớp Generic, ngoại trừ tên lớp theo sau khu vực tham số kiểu Như với phương thức Generic, khu vực tham số kiểu lớp Generic có... tham số Ví dụ: Ví dụ minh họa cách định nghĩa lớp Generic Java: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com public class... > ){ max = z; // z is the largest now http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com } return max; // returns the largest

Ngày đăng: 03/12/2017, 00:01

Từ khóa liên quan

Mục lục

  • Generic trong Java

    • Các phương thức generic trong Java

    • Ví dụ:

    • Các tham số kiểu giới hạn (bounded type) trong Java

    • Ví dụ:

    • Các lớp Generic trong Java

    • Ví dụ:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan