NỘI DUNG: + Invoking Methods + Constructing Objects + Strings 1. Invoking Methods Nếu có đoạn mã Java sau: engine.put(stage, stage); thì đoạn mã JavaScript có thể gọi stage.setTitle(Hello); Trong thực tế, bạn cũng có thể sử dụng cú pháp stage.title = Hello; Nashorn hỗ trợ cú pháp thuận tiện cho các hàm getters và setters. Nếu stage.title xuất hiện bên trái toán tử ‘=‘ tương đương setTitle xuất hiện bên phải toán tử ‘=‘ tương đương getTitle
Trường Đại học Bách Khoa Hà Nội Viện Công nghệ thông tin & Truyền thông ---------------------IT4784 – LẬP TRÌNH JAVA Chương 7. The Nashorn JavaScript Engine Sinh viên : Phạm Tiến Dũng MSSV :20130694 Lớp : CNTT2.03 – K58 Giáo Viên: TS. Nguyễn Hồng Quang 1 NỘI DUNG NỘI DUNG I. Mô tả yêu cầu II. Nội dung III.Bài tập 2 I.I. MÔ TẢ YÊU CẦU MÔ TẢ YÊU CẦU 1. Làm báo cáo 2. Trình bày slide lý thuyết chương 7 (7.3-7.5) 3. Tự đặt ra 3 câu hỏi trắc nghiệm liên quan đến phần mình làm 3 NỘI DUNG NỘI DUNG 1. Invoking Methods 2. Constructing Objects 3. Strings 4 1. Invoking Methods 1. Invoking Methods -Nếu có đoạn mã Java sau: engine.put("stage", stage); thì đoạn mã JavaScript có thể gọi stage.setTitle('Hello'); -Trong thực tế, bạn cũng có thể sử dụng cú pháp stage.title = 'Hello'; -Nashorn hỗ trợ cú pháp thuận tiện cho các hàm getters và setters. -Nếu stage.title xuất hiện bên trái toán tử ‘=‘ tương đương setTitle xuất hiện bên phải toán tử ‘=‘ tương đương getTitle 5 1. Invoking Methods 1. Invoking Methods Quan sát ví dụ sau: 6 1. Invoking Methods 1. Invoking Methods -JavaScript không có khái niệm về nạp chồng phương thức -Nashorn cố gắng chọn phương thức Java phù hợp, dựa theo số lượng và kiểu của các tham số. 7 2. Constructing Objects 2. Constructing Objects -Khi bạn muốn khởi tạo các đối tượng trong JavaScript Có hai cơ chế. Cách 1:Sử dụng biến toàn cục Packages var URL = java.net.URL ;// 1 đối tượng lớp java Cách 2:Sử dụng phương thức Java.type var URL = Java.type('java.net.URL'); -Để khởi tạo một đối tượng ,ta sử dụng toán tử new var url = new URL('http://horstmann.com'); 8 2. Constructing Objects 2. Constructing Objects -Cách 2 giúp xử lý lỗi tốt hơn nhưng cú pháp phức tạp Ví dụ: var url = new (Java.type ('java.net.URL')) ('http://horstmann.com'); -Nếu bạn sử dụng Java.type với toán tử new, bạn cần thêm một bộ dấu ngoặc đơn 9 2. 2.Constructing ConstructingObjects Objects -Để imports inner class ta dùng var entry = new java.util.AbstractMap.SimpleEntry('hello', 42); -Nếu bạn sử dụng Java.type thì sử dụng ký tự $: var entry = new (Java.type ('java.util.AbstractMap$SimpleEntry'))('hello', 42); 10 3. Strings 3. Strings -Strings trong Nashorn là một đối tượng JavaScript. Ví dụ, hãy xem xét lệnh sau 'Hello'.slice (-2) // Yield ‘ lo ' -Ở đây, chúng ta gọi phương thức JavaScript slice. Không có phương pháp như vậy trong Java -Nhưng gọi 'Hello'.compareTo (' thế giới ') cũng làm việc, mặc dù trong JavaScript không có phương thức compareTo. (Bạn chỉ cần sử dụng các toán tử [...]... chức năng,không cùng kết quả đầu ra hoặc báo lỗi) var Entry = Java. type( 'java. util.AbstractMap$SimpleEntry'); var entry=new Entry(‘hello’,42); A.var entry = new java. util.AbstractMap.SimpleEntry('hello', 42); B.var entry = new java. util.AbstractMap$SimpleEntry('hello', 42); C.var Entry = new Java. type( 'java. util.AbstractMap$SimpleEntry')(‘hello’,42); D.var Entry = java. util.AbstractMap$SimpleEntry; var... đối tượng JavaScript Ví dụ, hãy xem xét lệnh sau 'Hello'.slice (-2) // Yield ‘ lo ' -Ở đây, chúng ta gọi phương thức JavaScript slice Không có phương pháp như vậy trong Java -Nhưng gọi 'Hello'.compareTo (' thế giới ') cũng làm việc, mặc dù trong JavaScript không có phương thức compareTo (Bạn chỉ cần sử dụng các toán tử