1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo lập trình java về Lambda Expressions

18 347 2

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 260 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung chính trong chương: A. Why Lambdas??? B. The syntax of Lambda Expressions C. Functional interfaces A. Why Lambdas??? Quan sát 3 ví dụ sau: Ví dụ 1: Tạo một lớp Worker, cấp phát cho một đối tượng của lớp đó 1 vùng nhớ, thiết lập cho nó một luồng riêng class Worker implements Runnable { public void run() { for (int i = 0; i < 1000; i++) doWork();… }… } Worker w = new Worker(); new Thread(w).start();

Trang 1

CHƯƠNG 1: LAMBDA

EXPRESSIONS

Giáo viên hướng dẫn : Nguyễn Hồng Quang

1

Trang 2

Nội dung

2

Trang 3

I Mô tả yêu cầu

A Mô tả yêu cầu

B Nội dung chính trong phần lý thuyết

C Nội dung bài tập

3

Trang 4

I Mô tả yêu cầu

A Mô tả yêu cầu

 Yêu cầu:

 Làm báo cáo

 Trình bày slide phần lý thuyết chương 1 (1.1  1.3)

 Tự đặt ra 3 câu hỏi trắc nghiệm liên quan đến phần mình làm

4

Trang 5

I Mô tả yêu cầu

B Nội dung chính trong phần lý thuyết

 Why Lambdas???

 The Syntax of Lambda Expressions

 Functional Interfaces

5

Trang 6

I Mô tả yêu cầu

C Nội dung bài tập

Tự đặt ra 3 câu hỏi trắc nghiệm liên quan đến

phần mình làm và trong mỗi câu có 4 đáp án

6

Trang 7

II Nội dung chính trong chương I

A Why Lambdas???

B The syntax of Lambda Expressions

C Functional interfaces

Trang 8

II Nội dung chính trong

chương I

A Why Lambdas???

Quan sát 3 ví dụ sau:

Ví dụ 1: Tạo một lớp Worker, cấp phát cho một đối tượng của

lớp đó 1 vùng nhớ, thiết lập cho nó một luồng riêng

class Worker implements Runnable {

public void run() {

for (int i = 0; i < 1000; i++)

doWork();…

}…

}

Worker w = new Worker();

new Thread(w).start();

Trang 9

II Nội dung chính trong

chương I

A Why Lambdas???

Quan sát 3 ví dụ sau:

Ví dụ 2: Tạo một lớp sắp xếp xâu theo độ dài của nó

class LengthComparator implements Comparator <String>

{

public int compare(String first, String second) {

return Integer.compare(first.length(), second.length());

} }

Arrays.sort(strings, new LengthComparator());

Trang 10

II Nội dung chính trong

chương I

A Why Lambdas???

Quan sát 3 ví dụ sau:

Ví dụ 3: Tạo một button để gọi lại hoạt động trong một

phương thức của một lớp thực thi việc lắng nghe các hoạt động của giao diện

button.setOnAction(new EventHandler<ActionEvent>() {

public void handle(ActionEvent event) {

System.out.println("Thanks for clicking!"); }

}

Trang 11

II Nội dung chính trong

chương I

A Why Lambdas???

 Ta có thể thấy một số đặc điểm:

 Muốn thêm chức năng khác nữa ta phải tạo thêm một phương thức.

 Có khi cả chương trình ta chỉ sử dụng phương thức đó 1 lần

 Lập trình viên phải code mệt hơn

 Trình biên dịch chạy tốn tài nguyên hơn vì còn phải rà soát lỗi cú pháp trong từng dòng

Trang 12

II Nội dung chính trong

chương I

B The syntax of Lambda Expressions

(arguments)  (body)

Ví dụ

(String first, String second)  {

if (first.length() < second.length()) return -1;

else if (first.length() > second.length()) return 1; else return 0;

}

()  { for (int i = 0; i < 1000; i++) doWork(); }

Trang 13

II Nội dung chính trong

chương I

B The syntax of Lambda Expressions

 Từ đó ta có thể suy ra cấu trúc của biểu thức lambda:

 Biểu thức có thể cần hoặc không cần, cần nhiều tham số

 Kiểu dữ liệu của tham số có thể được định nghĩa rõ ràng hoặc được suy đoán từ ngữ cảnh

 Tham số đặt trong các dấu ngoặc đơn phải được phân cách nhau bằng dấu “phẩy”

 Nếu kiểu dữ liệu của tham số không rõ ràng thì dấu ngoặc đơn là không bắt buộc

 Phần thân (body) của biểu thức có thể có hoặc không có hoặc

có một khối lệnh

 Nếu phần thân (body) chỉ là một dòng mã lệnh thì dấu ngoặc đơn là không cần thiết

Trang 14

II Nội dung chính trong

chương I

C Functional interfaces

 Chúng ta cũng có thể thêm 1 biểu thức lambdas mọi nơi trong các phương thức của 1 lớp giao diện.

 Ví dụ:

public class Main{

Processor stringProcessor = (String str)  str.length();

String name = “Java Lambda”;

int length = stringProcessor.getStringLength (name);

} }

@FunctionalInterface interface Processor{

int getStringLength(String str);

}

Trang 15

I Câu hỏi trắc nghiệm

 Câu 1: Tại sao java lại bổ sung thêm biểu thức

lambda vào???

A Họ cảm thấy thích thú với nó thì họ thêm vào

B Để giúp cho lập trình viên dễ dàng hơn trong khi lập trình và để chương trình dễ compiler hơn

C Do Sun muốn thu hút thêm lập trình viên java

D Do Oracle muốn thu hút thêm lập trình viên java

III Bài tập

Trang 16

I Câu hỏi trắc nghiệm

 Câu 2: Trong các câu sau, câu nào viết sai cú

pháp của biểu thức lambda.

A (int a; int b)  { return a+b;}

B ()  system.out.println(“hello world”);

C (String s)  { system.out.println(s);}

D ()  42;

III Bài tập

Trang 17

I Câu hỏi trắc nghiệm

 Câu 3: Phát biểu nào là đúng

A Ta cũng có thể thêm 1 biểu thức lambdas mọi nơi trong các phương thức của 1 lớp giao diện

B Ta chỉ được thêm biểu thức lambda vào hàm main

C Ta chỉ được thêm biểu thức lambda vào những phương thức nào được public

D Ta chỉ được thêm vào comment

III Bài tập

Trang 18

I Câu hỏi trắc nghiệm

 Đáp án đúng của cả 3 câu trắc nghiệm:

 Câu 1 – B

 Câu 2 – A

 Câu 3 – A

III Bài tập

Ngày đăng: 05/10/2015, 23:05

TỪ KHÓA LIÊN QUAN

w