1. Trang chủ
  2. » Thể loại khác

NỀN TẢNG CỦA NGÔN NGỮ JAVA

28 175 0

Đ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 28
Dung lượng 259,5 KB

Nội dung

chương trình được chia thành các lớp hoặc các gói riêng biệt. Những gói này sẽ được chỉ dẫn trong chương trình. Thông tin này được chỉ ra với sự trợ giúp của phát biểu nhập “import”. Mỗi chương trình có thể có nhiều hơn một phátchương trình được chia thành các lớp hoặc các gói riêng biệt. Những gói này sẽ được chỉ dẫn trong chương trình. Thông tin này được chỉ ra với sự trợ giúp của phát biểu nhập “import”. Mỗi chương trình có thể có nhiều hơn một phát

Chương NỀN TẢNG CỦA NGÔN NGỮ JAVA Mục tiêu bài: Kết thúc chương bạn :  Đọc hiểu chương trình viết Java  Nắm bắt khái niệm ngôn ngữ Java  Nhận dạng kiểu liệu  Nhận dạng toán tử  Định dạng kết xuất liệu (output) sử dụng chuỗi thoát (escape sequence)  Nhận biết cấu trúc lập trình 3.1 Cấu trúc chương trình Java Phần đầu chương trình Java xác định thơng tin mơi trường Để làm việc này, chương trình chia thành lớp gói riêng biệt Những gói dẫn chương trình Thơng tin với trợ giúp phát biểu nhập “import” Mỗi chương trình có nhiều phát biểu nhập Dưới ví dụ phát biểu nhập: import java awt.*; Phát biểu nhập gói ‘awt’ Gói dùng để tạo đối tượng GUI Ở java tên thư mục chứa tất gói ‘awt’ Ký hiêu “*” tất lớp thuộc gói Trong java, tất mã,bao gồm biến, cách khai báo nên thực phạm vi lớp Bởi vậy, khai báo lớp tiến hành sau phát biểu nhập Một chương trình đơn giản có vài lớp Những lớp mở rộng thành lớp khác Mỗi phát biểu kết thúc dấu chấm phảy “;” Chương trình bao gồm ghi chú, dẫn Khi dịch, chương trình dịch tự loại bỏ ghi Dạng lớp xác định sau : Class classname { /* Đây dòng ghi chú*/ int num1,num2; // Khai báo biến với dấu phảy biến Show() { // Method body statement (s); // Kết thúc dấu chấm phảy } } Chương 3: Nền Tảng Của Ngôn Ngữ Java 33 “Token” đơn vị riêng lẻ, nhỏ nhất, có ý nghĩa trình biên dịch chương trình Java Một chương trình java tập hợp “token” Các “token” chia thành năm loại:  Định danh (identifiers): Dùng để thể tên biến, phương thức, lớp Chương trình biên dịch xác định tên chương trình Khi khai báo định danh cần lưu ý điểm sau đây:  Mỗi định danh bắt đầu chữ cái, ký tự gạch hay dấu đơla ($) Các ký tự chữ cái, chữ số, dấu $ ký tự gạch  Mỗi định danh chứa hai ký tự đặc biệt, tức chứa ký tự gạch ký tự dấu $ Ngồi khơng phép sử dụng ký tự đặc biệt khác  Các định danh không sử dụng dấu cách “ ” (space)  Từ khố/từ dự phòng (Keyword/Reserve Words): Một số định danh Java xác định trước Người lập trình khơng phép sử dụng chúng định danh Ví dụ ‘class’, ‘import’ từ khoá  Ký tự phân cách (separator): Thơng báo cho trình biên dịch việc phân nhóm phần tử chương trình Một vài ký tự phân cách java đây: { };,  Nguyên dạng (literals): Là giá trị khơng đổi chương trình Ngun dạng số, chuỗi, ký tự giá trị Boolean Ví dụ 21, ‘A’, 31.2, “This is a sentence” nguyên dạng  Các toán tử: Các q trình xác định, tính tốn hình thành liệu đối tượng Java có tập lớn toán tử Chúng ta thảo luận chi tiết chương 3.2 Chương trình JAVA Chúng ta chương trình Java cổ điển với ứng dụng đơn giản Chương trình sau cho phép hiển thị thông điệp: Chương trình 3.1 // This is a simple program called “First.java” class First { public static void main(String args[]) { System.out.println(“My first program in Java”); } } Tên file đóng vai trò quan trọng Java Chương trình biên dịch Java chấp nhận phần mở rộng java Trong Java mã cần phải gom thành lớp Bởi tên lớp tên file trùng Do Java phân biệt rạch ròi chữ in hoa chữ in thường (case- 34 Core Java sensitive) Nói chung tên lớp tên file nên khác Ví dụ tên file ‘First’ ‘first’ hai file khác Để biên dịch mã nguồn, ta xử dụng trình biên dịch java Trình biên dịch xác định tên file nguồn dòng lệnh mơ tả đây: C:\jdk1,2,1\bin>javac First.Java Trình dịch java tạo file First.class chứa mã “bytecodes” Những mã chưa thể thực thi Để chương trình thực thi ta cần dùng trình thơng dịch “java interpreter” Lệnh thực sau: C:\jdk1,1,1\bin>java First Kết hiển thị sau: My first program in Java 3.2.1 Phân tích chương trình // This is a simple program called “First.java” Ký hiệu “// ” dùng để thuyết minh dòng lệnh Trình biên dịch bỏ qua dòng thuyết minh Java hỗ trợ thuyết minh nhiều dòng Loại thuyết minh bắt đầu với /* kết thúc với */ /*This is a comment that extends to two lines*/ / *This is a multi line comment */ Dòng khai báo lớp có tên ‘First’ Để tạo lớp thêm ta bắt đầu với từ khố ‘class’, tên lớp (và tên file) class First Tên lớp nói chung nên bắt đầu chữ in hoa Từ khoá ‘class’ khai báo định nghĩa lớp ‘First’ định danh cho tên lớp Một định nghĩa lớp trọn vẹn không nằm hai ngoặc móc (curly braces) đóng mở Các ngoặc đánh dấu bắt đầu kết thúc khối lớp định nghiã public static void main(String args[ ]) Đây phương thức chính, từ chương trình bắt đầu việc thực thi Tất ứng dụng java sử dụng phương pháp “main” Chúng ta tìm hiểu từ phát biểu Từ khoá ‘public’ định truy xuất Nó cho biết thành viên lớp truy xuất từ đâu chương trình Trong trường hợp này, phương thức “main” khai báo ‘public’, JVM truy xuất phương thức Từ khoá ‘static’ cho phép main gọi tới mà không cần tạo thể (instance) lớp Nhưng trường hợp này, copy phương thức main phép tồn nhớ, chí khơng có thể lớp tạo Điều quan trọng JVM trước tiên gọi phương thức main để thực thi chương trình Vì lý Chương 3: Nền Tảng Của Ngôn Ngữ Java 35 phương thức main cần phải tĩnh (static) Nó khơng phụ thuộc vào thể lớp tạo Từ khố ‘void’ thơng báo cho máy tính biết phương thức khơng trả lại giá trị thực thi chương trình Phương thức ‘main()’ thực số tác vụ đó, điểm mốc mà từ tất ứng dụng Java khởi động ‘String args[]’ tham số dùng phương thức ‘main’ Các biến số dấu ngoặc đơn nhận thông tin chuyển vào ‘main’ Những biến tham số phương thức Thậm chí khơng có thơng tin chuyển vào ‘main’, phương thức thực với liệu rỗng – khơng có dấu ngoặc đơn ‘args[]’ mảng kiểu “String” Các đối số (arguments) từ dòng lệnh lưu vào mảng Mã nằm dấu ngoặc móc ‘main’ goi ‘method block’ Các phát biểu thực thi ‘main’ cần rõ khối System.out.println(“My first program in Java”); Dòng lệnh hiển thị chuỗi “My first program in Java” hình Phát biểu ‘println()’ tạo cổng xuất (output) Phương thức cho phép hiển thị chuỗi chuỗi đưa vào với trợ giúp ‘System.out’ Ở ‘System’ lớp định trước, cho phép truy nhập vào hệ thống ‘out’ chuỗi xuất kết nối với dấu nhắc (console) 3.2.2 Truyền đối số dòng lệnh Các mã sau cho ta thấy tham số (argument) dòng lệnh tiếp nhận phương thức ‘main’ Program 3.2 class Pass{ public static void main(String parameters[]) { System.out.println(“This is what the main method received”); System.out.println(parameters [0 ]); System.out.println(parameters [1 ]); System.out.println(parameters [2 ]); } } Hình vẽ sau mơ tả đối tượng thực dòng lệnh 36 Core Java Hình 3.1 Passing command line arguments Khi gặp dấu trắng (space), hiểu chuỗi kết thúc Nhưng thông thường chuỗi kết thúc gặp dấu nháy kép Hình vẽ mơ tả đìều Hình 3.2 Passing a string argument 3.3 Cơ ngôn ngữ Java Chương trình tập hợp hành động xếp theo trật tự định để máy tính thực Chương trình coi tài liệu hướng dẫn có chứa thành phần gọi biến danh sách hướng dẫn gọi phát biểu Các phát biểu nói cho máy tính biết cần phải làm với biến Biến giá trị thay đổi phụ thuộc vào điều kiện thông tin nhập vào máy tính Các biến xác định nhờ kiểu liệu Kiểu liệu tập liệu với giá trị có đặc tính xác định trước Các phát biểu dạng điều khiển định việc thực thi phần chương trình Chúng định trật tự việc thực thi chương trình số lần chương trình cần thực Giá trị nạp vào biến định hướng cho chương trình hoạt động Chúng ta bắt đầu với khái niệm tảng ngôn ngữ Java lớp phương thức, kiểu liệu, biến, toán tử cấu trúc điều khiển Chương 3: Nền Tảng Của Ngôn Ngữ Java 37 3.4 Các lớp đối tượng Java Trong ngôn ngữ Java, lớp đơn vị mẫu có chứa số liệu mã liên quan đến thực thể Chúng hình thành tảng tồn ngơn ngữ Java Dữ liệu mã nguồn viết đặt bên lớp Khi xác định lớp, bạn thực chất xác định kiểu liệu Loại liệu sử dụng để xác định biến mà ta thương gọi “đối tượng” Đối tượng thể (instance) lớp Tất đối tượng thuộc lớp có chung đặc tính hành vi Mỗi lớp xác định thực thể, đối tượng thể thực Bạn định nghĩa lớp bên Đây lớp kiểu xếp lồng vào nhau, thể (instance) lớp tồn bên thể lớp che phủ chúng Nó chi phối việc truy nhập đến thể thành phần thể bao phủ chúng 3.4.1 Khai báo lớp Khi ban khai báo lớp, bạn cần xác định liệu phương thức xây dựng nên lớp Cú pháp: class name { var_datatype variablename; : met_datatype methodname(parameter_list) : } Trong đó: class - Từ khoá xác định lớp classname - Tên lớp var_datatype - kiểu liệu biến variablename - Tên biến met_datatype - Kiểu liệu trả phương thức methodname - Tên phương thức parameter_lits – Các tham số dùng phương thức Hình 3.3 mơ tả hình ảnh lớp “Khách hàng” Những đặc điểm lớp xác định khoản mục liệu lưu cất, hành vi xác định phương thức tính đến Đối tượng lớp lưu lạị chi tiết cá nhân cuả khách hàng 38 Core Java Hình 3.3 Trong lớp “Khách hàng”, khoản mục liệu bao gồm:  Tên khách hàng  Địa  Kiểu xe  Tên người bán hàng Các phương thức gồm:  Chấp thuận chi tiết khách hàng  In hoá đơn 3.4.2 Các lớp xếp lồng vào (nested classes) Việc định nghĩa lớp bên lớp khác gọi lớp lồng (nesting) Lớp lồng nằm phạm vi lớp bao quanh nó.Có hai loại lớp lồng:  Lớp kiểu tĩnh (static) Lớp kiểu tĩnh định nghĩa với từ khố static Lớp tĩnh truy nhập vào thành viên lớp phủ thông qua đối tượng Do lớp tĩnh thường sử dụng  Lớp kiểu động (non static) Lớp bên (inner) thuộc loại quan trọng lớp kiểu lồng Đó lớp nonstatic Định nghĩa lớp bên xác định phạm vi lớp ngồi Lớp bên truy nhập tất thành viên lớp bao nó, song khơng thể ngược lại Đoạn chương trình sau mô tả lớp tạo lập sử dụng nào: class Outer { //Outer class constructor class Inner { //Inner class constructor Chương 3: Nền Tảng Của Ngôn Ngữ Java 39 } } Cú pháp sau cho phép truy nhập vào lớp bên Outer.Inner obj=new Outer().new Inner(); 3.5 Kiểu liệu Các ứng dụng yêu cầu cổng xuất (output) Cổng nhập, cổng xuất, kết q trình tính tốn tạo liệu Trong mơi trường tính tốn, liệu phân lớp theo tiêu chí khác phụ thuộc vào chất Ở tiêu chí, liệu có tính chất xác định có kiểu thể riêng biệt Java cung cấp vài kiểu liệu Chúng hỗ trợ tất Ví dụ, liệu loại int (integer) Java thể bytes nhớ tất loại máy đâu chạy chương trình Java Bởi chương trình Java khơng cần phải thay đổi chạy khác Trong Java kiểu liệu chia thành hai loại:  Các kiểu liệu nguyên thủy (primitive)  Các kiểu liệu tham chiếu (reference) 3.5.1 Dữ liệu kiểu nguyên thuỷ Java cung cấp tám kiểu liệu nguyên thuỷ Kiểu Độ liệu theo bit dài Phạm vi số Mô tả byte -128 đến 127 Số liệu kiểu byte loại điển hình dùng để lưu trữ giá tri byte Chúng sử dụng rộng rãi xử lý file văn Char 16 ‘\uoooo’ to ’u\ffff ’ Kiểu Char sử dụng để lưu tên liệu ký tự Ví dụ tên ngườI lao động Boolea n “True” “False” Dữ liệu boolean dùng để lưu giá trị “Đúng” “sai” Ví dụ : Người lao đơng có đáp ứng u cầu công ty hay không ? short 16 -32768 đến 32767 Kiểu short dùng để lưu số có giá trị nhỏ 32767.Ví dụ số lượng người lao động Int 32 -2,147,483,648 40 đến Kiểu int dùng để lưu số có Core Java +2,147,483,648 giá trị lớn đến 2,147,483,648.Ví dụ tổng lương mà cơng ty phải trả cho nhân viên Kiểu long sử dụng để lưu số cố giá trị lớn đến 9,223,372,036’854,775,808 Ví dụ dân số nước Long 64 9,223,372,036’854,775,80 đến +9,223,372,036’854,775, 808 Float 32 -3.40292347E+38 +3.40292347E+38 double 64 1,79769313486231570E+ 308 đến +1,79769313486231570E +308 đến Kiểu float dùng để lưu số thập phân đến 3.40292347E+38 Ví dụ : giá thành sản phẩm Kiểu double dùng để lưu số thập phân có giá trị lớn đến 1,79769313486231570E+308 Ví dụ giá trị tín dụng ngân hàng nhà nước Bảng 3.1 Dữ liệu kiểu nguyên thuỷ 3.5.2 Kiểu liệu tham chiếu (reference) Trong Java có kiểu liệu tham chiếu Kiểu liệu Mô tả Mảng (Array) Tập hợp liệu loại.Ví dụ : tên sinh viên Lớp (Class) Tập hợp biến phương thức.Ví dụ : lớp “Sinhviên” chứa tồn chi tiết sinh viên phương thức thực thi chi tiết Giao diện Là lớp trừu tượng tạo để bổ sung cho (Interface) kế thừa đa lớp Java Bảng 3.2 Dữ liệu kiểu tham chiếu 3.5.3 Ép kiểu (Type casting) Có thể bạn gặp tình cộng biến có dạng integer với biến có dạng float Để xử lý tình này, Java sử dụng tính ép kiểu (type casting) phần mềm trước C, C++ Lúc kiểu liệu chuyển đổi sang kiểu khác Khi sử dụng tính chất này, bạn cần thận trọng điều chỉnh liệu bị Chương 3: Nền Tảng Của Ngôn Ngữ Java 41 Đoạn mã sau thực phép cộng giá trị dấu phẩy động (float) với giá trị nguyên (integer) Float c=34.896751F; Int b = (int)c +10; Đầu tiên giá trị dấu phảy động c đổi thành giá trị nguyên 34 Sau cộng với 10 kết giá trị 44 lưu vào b Sự nới rộng (widening) – q trình làm tròn số theo hướng nới rộng khơng làm thông tin độ lớn giá trị.Biến đổi theo hướng nới rộng chuyển giá trị sang dạng khác có độ rộng phù hợp so với nguyên bản.Biến đổi theo hướng lại thu nhỏ lại (narrowwing) làm thông tin độ lớn giá trị chuyển đổi.Chúng không thực thực phép gán Ở ví dụ giá trị thập phân sau dấu phảy bị 3.6 Các biến Các ứng dụng sử dụng biến để lưu trữ liệu cần thiết liệu tạo trình thực thi chương trình Các biến xác định tên biến có phạm vi tác động Phạm vi tác động biến xác định cách rõ ràng chương trình Mỗi biến khai báo khối chương trình có tác động phạm vi khối đó, khơng có ý nghĩa khơng phép truy nhập từ bên khối Việc khai báo biến bao gồm thành phần: kiểu biến, tên giá trị ban đầu gán cho biến (không bắt buộc) Để khai báo nhiều biến ta sử dụng dấu phẩy để phân cách biến, Khi khai báo biến, nhớ Java phân biệt chữ thường chữ in hoa (case -sensitive) Cú pháp: Datatype indentifier [=value] [, indentifier[=value]… ]; Để khai báo biến nguyên (int) có tên counter dùng để lưu giá trị ban đầu 1, ta thực phát biểu sau đây: int counter = 1; Java có yêu cầu hạn chế đặt tên biến mà bạn gán giá trị vào Những hạn chế giống hạn chế đặt tên cho định danh mà ta thảo luận phần trước chương 3.6.1 Khai báo mảng Mảng dùng để lưu trữ khoản mục (items) kiểu liệu vùng nhớ liên tục.Mỗi lần ta khai báo kích thước mảng , khơng bị thay đổi.Dữ liệu mảng kiểu liệu nguyên thuỷ đối tượng.Cũng biến ,ta gán giá trị vào mảng phần tử tạo mảng.Nếu giá trị không tồn , Java gán giá trị mặc định vào tất phần tử mảng phụ thuộc vào kiểu liệu.Ví dụ : kiểu liệu nguyên (int) giá trị mặc định ban đầu “zero” Mảng khai báo ba cách : Cách khai báo Chỉ đơn khai báo Khai báo 42 Mô tả Cú pháp Chỉ đơn khai Datatype identifier[] báo mảng Khai báo cấp Datatype identifier[] Ví dụ char ch[ ];khai báo mảng ký tự có tên ch char ch[] = new Core Java } Phương thức khởi tạo (Contructor) lớp bị nạp chồng (overload) Phương thức ghi đè (Overriden) định nghĩa lại lớp Đoạn mã sau mô tả phương thức ghi đè Ở ta dùng từ khoá “this” biểu thị đối tượng hành, ‘super’ sử dụng để đối tượng lớp cha Phương thức ghi đè khơng phải phương thức tĩnh (static) Nó loại động (non-static) Các đoạn mã sau mô tả việc thực thi ghi đè phương thức Java class SupperClass // Tạo lớp { int a; SuperClass() // constuctor { } SuperClass(int b) //overloaded constructor { a=b; } class Subclass Extends SuperClass {// derriving a class int a; SubClass(int a) {//subclass constructor This.a; } public void message(){ // overiding the base class message() System.out.prinln(“In the sub class”); } } Bây tạo đối tượng lớp cha gán lớp nhỏ tham chiếu đến sau: SuperClasss spObj=new Subclass(22); Câu lệnh ‘spObj.message’ thuộc phương thức nhóm Ở kiểu đối tượng gán cho ‘spObj’ xác định chương trình thực thi Điều biết khái niệm ‘liên kết động’ (dinamic binding) 3.7.4 Phương thức khởi tạo lớp Phương thức khởi tạo lớp loại phương thức đặc biệt khác với kiểu khởi tạo Nó khơng có kiểu trả Nó có tên trùng với tên lớp Hàm khởi tạo lớp thực thi 46 Core Java phương thức chức bình thường song khơng trả giá trị Nói chung chúng dùng để khởi tạo biến thành viên lớp gọi lúc bạn tạo đối tượng lớp Phương thức khởi tạo lớp có hai loại:  Tường minh (explicit): Bạn lập trình phương thức khởi tạo lớp định nghĩa lớp Khi tạo đối tượng lớp, giá trị mà bạn truyền vào phải khớp với tham số phương thức khởi tạo (số lượng, thứ tự kiểu liệu tham số)  Ngầm định (Implicit): Khi bạn không định nghĩa hàm khởi tạo cho lớp, JVM cung cấp giá trị mặc định hay phương thức khởi tạo ngầm định Bạn định nghĩa nhiều phương thức khởi tạo cho lớp Giống phương thức khác, phương thức khởi tạo lớp bị nạp chồng (overload) Ví dụ phương thức khởi tạo: Đoạn mã sau định nghĩa phương thức khởi tạo tường minh (explicit) cho lớp Employee Phương thức khởi tạo bao gồm tên tuổi Chúng coi tham số gán giá trị chúng vào biến lớp Chú ý từ khoá ‘this’ sử dụng để tham chiếu đến đối tượng hành lớp Chương trình 3.4 Class Employee { String name; int age; Employee (String varname,int varage) { this.name = varname; this.age = varage; } public static void main (String arg[]) { Employee e = new Employee (‘Allen”.30); } } 3.7.5 Phương thức khởi tạo lớp dẫn xuất Phương thức khởi tạo lớp dẫn xuất có tên trùng với tên lớp dẫn xuất Câu lệnh dùng để gọi phương thức khởi tạo lớp dẫn xuất phải câu lệnh phương thức khởi tạo lớp Lý lớp cha hình thành trước có lớp dẫn xuất 3.8 Các tốn tử Một chương trình thực tế bao hàm việc tạo biến Các toán tử kết hợp giá trị đơn giản biểu thức thành biểu thức mới, phức tạp trả Chương 3: Nền Tảng Của Ngôn Ngữ Java 47 giá trị Điều có hàm ý tạo toán tử luận lý, số học, quan hệ so sánh biểu thức Java cung cấp nhiều dạng toán tử.Chúng bao gồm:       Toán Toán Toán Toán Toán Toán tử tử tử tử tử tử 3.8.1 số học dạng bit quan hệ luận lý điều kiện gán Các toán tử số học Các toán hạng toán tử số học phải dạng số Các tốn hạng kiểu Boolean khơng sử dụng được, song toán hạng ký tự cho phép sử dụng loại toán tử Một vài kiểu toán tử liệt kê bảng Toán tử + * / % ++ -+= -= *= /= 48 Mơ tả Cộng.Trả giá trị tổng hai tốn hạng Ví dụ 5+3 trả kết Trừ Trả giá trị khác hai toán hạng giá trị phủ định tốn hạng Ví dụ 5-3 kết –10 trả giá trị âm 10 Nhân Trả giá trị tích hai tốn hạng Ví dụ 5*3 kết 15 Chia Trả giá trị thương phép chia Ví dụ 6/3 kết Phép lấy modulo Giá trị trả phần dư toán tử chia Ví dụ 10%3 giá trị trả Tăng dần Tăng giá trị biến lên Ví dụ a++ tương đương với a= a+1 Giảm dần Giảm giá trị biến đơn vị Ví dụ a tương đương với a=a-1 Cộng gán giá trị Cộng giá trị toán hạng bên trái vào toán hạng bên phải gán giá trị trả vào tốn hạng bên trái Ví dụ c+=a tương đương c=c+a Trừ gán giá trị Trừ giá trị toán hạng bên trái vào toán toán hạng bên phải gán giá trị trả vào toán hạng bên trái Ví dụ c-= a tương đương vớI c=c-a Nhân gán Nhân giá trị toán hạng bên trái với toán toán hạng bên phải gán giá trị trả vào toán hạng bên trái Ví dụ c *= a tương đương với c=c*a Chia gán Chia giá trị toán hạng bên trái cho toán toán hạng bên phải gán giá trị trả vào tốn hạng bên trái Ví dụ c /= a tương đương với c=c/a Core Java %= Lấy số dư gán Chia giá trị toán hạng bên trái cho toán toán hạng bên phải gán giá trị số dư vào tốn hạng bên trái Ví dụ c%=a tương đương với c=c%a Bảng 3.5 Các toán tử số học Chương trình sau mơ tả việc sử dụng toán tử số học class ArithmeticOp { public static void main(String args[]){ int p=5,q=12,r=20,s; s=p+q; System.out.println(“p+q is”+s); s=p%q; System.out.println(“p%q is”+s); s*=r; System.out.println(“s*=r is”+s); System.out.println(“Value of p before operation is”+p); p++; System.out.println(“Value of p after operation is”+p); double x=25.75,y=14.25,z; z=x-y; System out.println(“x-y is” +z); z-=2.50; System.out.println(“z-=2.50 is “+z); System.out.println(“Value of z before operation is”+z); z ; System.out.println(“Value of z after operation is”+z); Z=x/y; System out.println(“x/y is” +z); } } Đầu chương trình p+q is 17 p%q is s*=r is 100 Value of p before operation is 9.0 Chương 3: Nền Tảng Của Ngôn Ngữ Java 49 Value of z after operation is 8.0 x/y is 1.8070175438596429 3.8.2 Toán tử Bit Các toán tử dang Bit cho phép ta tạo Bit riêng biệt kiểu liệu nguyên thuỷ Toán tử Bit dựa sở đại số Boolean Nó thực phép tính hai đối số bit để tạo kết qủa Một vài dạng toán tử kiểu liệt kê Toán tử ~ & I ^ >> >2 00000111 Dịch sang trái Chuyển toàn bít cuả số sang trái vị trí, giữ nguyên dấu cuả số âm Toán hạng bên trái số bị dịch số bên phải số vị trí mà bít cần dịch Bảng 3.6 Các toán tử Bit 3.8.3 Các toán tử quan hệ Các toán tử quan hệ kiểm tra mối quan hệ hai tốn hạng Kết biểu thức có dùng toán tử quan hệ giá trị Boolean (logic “đúng” “sai”) Các toán tử quan hệ sử dụng cấu trúc điều khiển Toán tử == != > < 50 Mô tả So sánh Toán tử kiểm tra tương đương hai tốn hạng Ví dụ if (a= =b) trả giá tri “True” giá trị a b So sánh khác Kiểm tra khác hai tốn hạng Ví dụ if(a!=b) Trả giá trị “true” a khác b Lớn Kiểm tra giá trị toán hạng bên phải lớn toán hạng bên trái hay khơng Ví du if(a>b) Trả giá trị “true” a lớn b,ngựơc lai (nhỏ ), trả ‘False’ Nhỏ Kiểm tra giá trị tốn hạng bên phải có nhỏ tốn hạng bên trái Core Java hay khơng Ví du if(a=b) Trả giá trị “true” a lớn b , ngựơc lại (nhỏ trả ‘False’ Nhỏ Kiểm tra giá trị tốn hạng bên phải có nhỏ tốn hạng bên trái hay khơng Ví du if(a= 90) AND (mathmarks>75) gán “Y” cho biến “được nhận học bổng” Hoặc (OR) Trả giá trị “True” giá trị True hai True Chương 3: Nền Tảng Của Ngơn Ngữ Java 51 Ví dụ Nếu age_category is ‘Senior_citizen’ OR special_category is ‘handicapped’ giảm giá tua lữ hành Giá giảm hai điều kiện thỏa mãn XOR Trả giá trị True giá trị True, trường hợp lại cho giá trị False (sai) Toán hạng đơn tử NOT Chuyển giá trị từ True sang False ngược lại Ví dụ: Q trình thực thi dòng lệnh tiếp tục kết thúc chương trình ^ ! Bảng 3.8 Các tốn tử logic 3.8.5 Các toán tử điều kiện Toán tử điều kiện loại tốn tử đặc biệt gồm ba thành phần cấu thành biểu thức điều kiện Cú pháp : biểu thức 1?biểu thức 2: biểu thức 3; biểu thức Điều kiện luận lý (Boolean) mà trả giá trị True False biểu thức Giá trị trả biểu thức xác định True biểu thức Giá trị trả biểu thức xác định False Câu lệnh sau kiểm tra có người làm vé tháng có tuổi lớn 65 khơng gán tiêu chuẩn cho họ Nếu người có tuổi 55, tiêu chuẩn gán “Regular” CommuterCategory=(CommuterAge>65)?”Senior Citizen”: “Regular” 3.8.6 Toán tử gán Toán tử gán (=) dùng để gán giá trị vào biến Bạn nên gán nhiều giá trị đến nhiều biến lúc Ví dụ đoạn lệnh sau gán giá trị cho biến num Thì giá trị biến num gán cho nhiều biến dòng lệnh đơn int num = 20000; int p,q,r,s; p=q=r=s=num; Dòng lệnh cuối thực từ phải qua trái Đầu tiên giá trị biến num gán cho ‘s’, sau giá trị ‘s’ gán cho ‘r’ tiếp 52 Core Java 3.8.7 Thứ tự ưu tiên toán tử Các biểu thức viết nói chung gồm nhiều tốn tử Thứ tự ưu tiên định trật tự thực toán tử biểu thức Bảng liệt kê thứ tự thực toán tử Java Thứ tự Toán tử Các toán tử đơn +,-,++,-Các toán tử số học toán tử dịch *,/,+,-, Các toán tử quan hệ >,=,= 1) { fact *=a; a ; } System.out.println(The Factorial of is “+fact); } } Ở ví dụ trên, vòng lặp thực thi điều kiện a>=1 True Biến a khai báo bên ngồi vòng lặp gán giá trị Cuối vòng lặp, giá tri a giảm Sau năm vòng giá trị a Điều kiện trả giá trị False vòng lặp kết thúc Kết hiển thị “ The factorial of is 120” Đoạn chương trình sau hiển thi tổng số chẵn Chương trình 3.11 Class ForDemo { public static viod main(String args[]) { int i=1,sum=0; for (i=1;i

Ngày đăng: 05/06/2018, 21:55

TỪ KHÓA LIÊN QUAN

w