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

Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)

98 12 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

Tiêu đề Giáo Trình Môn Học Lập Trình Java
Tác giả Phạm Đình Nam, Ngô Thiên Hoàng, Nguyễn Quỳnh Nguyên, Phan Ngọc Bảo
Trường học Trường Cao Đẳng Nghề Đà Lạt
Chuyên ngành Thiết Kế Trang Web
Thể loại Giáo Trình
Năm xuất bản 2019
Thành phố Lâm Đồng
Định dạng
Số trang 98
Dung lượng 1,57 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH JAVA (4)
    • 1. Gi ớ i thi ệ u v ề ngôn ng ữ l ậ p trình Java (7)
    • 2. Các ứng dụng Java (8)
    • 3. D ị ch và th ự c thi m ột chương trình viế t b ằ ng Java (10)
    • 4. Công cụ lập trình và chương trình dịch (10)
    • 5. Bài t ậ p (11)
  • CHƯƠNG 2 NỀ N T Ả NG C Ủ A JAVA (4)
    • 2.1 T ậ p ký t ự , t ừ khóa, đị nh danh (12)
    • 2.2 C ấ u trúc c ủ a m ột chương trình Java (13)
    • 2.3 Chương trình java đầu tiên (13)
    • 2.4 Bi ế n, h ằ ng (14)
    • 2.5 Các ki ể u d ữ li ệu cơ sở (16)
    • 2.6 L ệ nh, kh ố i l ệ nh trong java (17)
    • 2.7 Toán t ử và bi ể u th ứ c (18)
    • 2.8 C ấu trúc điề u khi ể n (20)
    • 2.9 Bài t ậ p (26)
  • CHƯƠNG 3: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA (4)
    • 3.1. M ở đầ u (28)
    • 3.2. L ớ p (Class) (28)
    • 3.3. Đặc điểm hướ n g đối tượ ng trong java (32)
    • 3.4. Gói (packages) (36)
    • 3.5. Giao di ệ n (interface) (37)
    • 3.6. M ả ng, xâu ký t ự (38)
    • 3.7 Bài tập (40)
  • CHƯƠNG 4: THIẾ T K Ế GIAO DI ỆN NGƯỜ I DÙNG (4)
    • 4.1. M ở đầ u (48)
    • 4.2. Giới thiệu thƣ viện awt (48)
    • 4.5. X ử lý bi ế n c ố /s ự ki ệ n (61)
    • 4.6. Bài tập (68)
  • CHƯƠNG 5: LUỒ NG VÀ T Ậ P TIN (4)
    • 5.1. M ở đầ u (77)
    • 5.2. Luồng (Streams) (77)
    • 5.3. S ử d ụ ng lu ồ ng Byte (80)
    • 5.4. File truy cập ngẫu nhiên (Random Access Files) (88)
    • 5.5. S ử d ụ ng lu ồ ng ký t ự (90)
    • 5.6. Lớp File (95)

Nội dung

GIỚI THIỆU TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH JAVA

Gi ớ i thi ệ u v ề ngôn ng ữ l ậ p trình Java

Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem đưa ra vào giữa thập niên 90

Chương trình viết bằng ngôn ngữ lập trình java có thể chạy trên bất kỳ hệ thống nào có cài máy ảo java (Java Virtual Machine)

1.2 Lịch sử phát triển của ngôn ngữ lập trình Java

Ngôn ngữ lập trình Java được phát triển bởi James Gosling và nhóm Green Team tại Công ty Sun Microsystems vào đầu thập niên 90 Nhóm này được thành lập nhằm xây dựng công nghệ mới cho ngành điện tử tiêu dùng và đã phát triển ngôn ngữ lập trình Oak, tương tự như C++ nhưng loại bỏ một số tính năng nguy hiểm Nhận thấy tiềm năng của Oak trong bối cảnh World Wide Web đang phát triển, Sun Microsystems đã đầu tư vào việc cải tiến ngôn ngữ này Chỉ sau một thời gian ngắn, Java ra đời và được giới thiệu vào năm 1995.

Java là một hòn đảo nổi tiếng ở Indonesia, nơi nhóm nghiên cứu phát triển đã chọn làm nguồn cảm hứng để đặt tên cho ngôn ngữ lập trình Java Hòn đảo này được biết đến với nhiều vườn cà phê, do đó biểu tượng ly cà phê thường xuất hiện trong các sản phẩm phần mềm và công cụ lập trình Java của Sun cũng như của nhiều hãng phần mềm khác.

1.3 Một sốđặc điểm nổi bậc của Java

Máy ảo Java (JVM - Java Virtual Machine)

Tất cả các chương trình muốn thực thi được thì phải được biên dịch ra mã máy

Mỗi kiến trúc CPU có mã máy khác nhau, ví dụ như CPU Intel, Solarix và Macintosh, dẫn đến việc chương trình chỉ có thể chạy trên một kiến trúc cụ thể Chẳng hạn, trên CPU Intel, các hệ điều hành như Microsoft Windows, Unix, Linux và OS/2 có định dạng file khác nhau (.EXE cho Windows và ELF cho Linux), yêu cầu phải chỉnh sửa và biên dịch lại chương trình để chạy trên hệ điều hành khác Tuy nhiên, ngôn ngữ lập trình Java đã giải quyết vấn đề này thông qua máy ảo Java Chương trình Java được biên dịch thành mã java bytecode, và máy ảo Java sẽ chuyển đổi mã này thành mã máy tương ứng Sun Microsystems phát triển các máy ảo Java cho phép chạy trên nhiều hệ điều hành và kiến trúc CPU khác nhau.

Java là ngôn ngữ lập trình kết hợp giữa biên dịch và thông dịch Các chương trình Java, với đuôi tệp *.java, được biên dịch thành tệp *.class trước khi được trình thông dịch chuyển đổi thành mã máy Một điểm nổi bật của Java là tính độc lập nền tảng.

Chương trình được viết bằng ngôn ngữ Java có khả năng chạy trên nhiều hệ điều hành khác nhau như Windows, Unix, và Linux, miễn là có cài đặt Java Virtual Machine (JVM) Đặc điểm nổi bật của Java là "viết một lần, chạy mọi nơi" (write once, run anywhere).

Hướng đối tượng trong Java tương tự như C++, nhưng Java là ngôn ngữ lập trình hướng đối tượng hoàn toàn, với tất cả mọi thứ đều liên quan đến các đối tượng đã được định nghĩa Hàm main trong Java cũng phải nằm trong một lớp Java không hỗ trợ tính đa kế thừa như C++, mà thay vào đó sử dụng khái niệm interface để giải quyết vấn đề này, sẽ được thảo luận chi tiết trong chương 3 Ngoài ra, Java còn hỗ trợ đa nhiệm và đa luồng, giúp tối ưu hóa hiệu suất chương trình.

Java hỗ trợ lập trình đa nhiệm và đa luồng, cho phép nhiều tiến trình và tiểu trình chạy song song và tương tác với nhau.

Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy trên máy ảo Java có thể hoạt động trên bất kỳ máy tính hay hệ điều hành nào Điều này thể hiện nguyên tắc "Viết một lần, chạy mọi nơi" (Write Once, Run Anywhere), mang lại tính linh hoạt và tiện lợi cho lập trình viên.

Hỗ trợ mạnh cho việc phát triển ứng dụng:

Công nghệ Java đã phát triển mạnh mẽ nhờ vào sự hỗ trợ từ Sun Microsystems, cung cấp nhiều công cụ và thư viện lập trình đa dạng Các phiên bản như J2SE (Java 2 Standard Edition) cho phép phát triển ứng dụng đơn và ứng dụng client-server, trong khi J2EE (Java 2 Enterprise Edition) chuyên hỗ trợ phát triển các ứng dụng thương mại Bên cạnh đó, J2ME (Java 2 Micro Edition) được thiết kế để phát triển ứng dụng cho các thiết bị di động và không dây.

Các ứng dụng Java

2.1 Java và ứng dụng Console Ứng dụng Console là ứng dụng nhập xuất ở chế độ văn bản tương tự như màn hình Console của hệđiều hành MS-DOS Lọai chương trình ứng dụng này thích hợp với những ai bước đầu làm quen với ngôn ngữ lập trình java Các ứng dụng kiểu Console thường được dùng để minh họa các ví dụ cơ bản liên quan đến cú pháp ngôn ngữ, các thuật toán, và các chương trình ứng dụng không cần thiết đến giao diện người dùng đồ họa

{ public static void main(String args[])

System.out.print("Hello World! Chao cac ban lop Cao Dang Lap Trinh May Tinh\n");

2.2 Java và ứng dụng Applet

Java Applet là ứng dụng có thể nhúng vào trang web và chạy trong trình duyệt Từ những ngày đầu của internet, Java Applet đã mang đến khả năng lập trình mạnh mẽ cho các trang web Tuy nhiên, với sự phát triển của các trình duyệt và sự xuất hiện của các ngôn ngữ lập trình như VB Script, Java Script, HTML, DHTML và XML, Java Applet đã dần trở nên ít phổ biến hơn.

 cùng với sự canh tranh khốc liệt của Microsoft và Sun đã làm cho Java Applet lu mờ

Hiện nay, hầu hết các lập trình viên không còn quan tâm đến Java Applet, đặc biệt khi trình duyệt Internet Explorer trong Windows 2000 đã ngừng hỗ trợ thực thi ứng dụng này Dưới đây là hình minh họa cho một chương trình Java Applet hoạt động trên trang web.

2.3 Java và phát triển ứng dụng Desktop dùng AWT và JFC

Java đã cung cấp giải pháp cho việc phát triển các ứng dụng có giao diện người dùng đồ họa trực quan thông qua thư viện AWT và JFC Trong đó, JFC nổi bật với sự phong phú và hỗ trợ mạnh mẽ hơn AWT, cho phép lập trình viên tạo ra giao diện trực quan cho bất kỳ ứng dụng nào Chúng ta sẽ tìm hiểu chi tiết về phát triển ứng dụng với giao diện người dùng đồ họa trong chương 4.

2.4 Java và phát triển ứng dụng Web

Java cung cấp hỗ trợ mạnh mẽ cho việc phát triển ứng dụng Web thông qua công nghệ J2EE (Java 2 Enterprise Edition) J2EE cho phép tạo ra các ứng dụng Web hiệu quả, cạnh tranh trực tiếp với công nghệ NET của Microsoft.

Hiện nay, nhiều trang web nổi tiếng tại Việt Nam và trên toàn thế giới được phát triển dựa trên công nghệ Java Số lượng ứng dụng web sử dụng công nghệ này là rất lớn và khó có thể thống kê chính xác.

Trang 8 xác là bao nhiêu, nhƣng chúng tôi đƣa ra đây vài ví dụ để thấy rằng công nghệ Java của Sun là một "đối thủđáng gờm" của Microsoft http://java.sun.com/ http://e-docs.bea.com/ http://www.macromedia.com/software/jrun/ http://tomcat.apache.org/index.html

Trang web thông tin nhà đất nổi tiếng tại TPHCM, http://www.nhadat.com/, là một ứng dụng được phát triển dựa trên công nghệ Java Để tìm hiểu thêm về công nghệ J2EE, bạn có thể truy cập vào địa chỉ: http://java.sun.com/j2ee/.

2.5 Java và phát triển các ứng dụng nhúng

Công nghệ J2ME (Java 2 Platform, MicroEdition) do Java Sun phát triển hỗ trợ việc xây dựng các phần mềm nhúng J2ME tạo ra một môi trường cho các ứng dụng có thể hoạt động trên các thiết bị cá nhân như điện thoại di động, PDA, Palm và nhiều thiết bị nhúng khác Để tìm hiểu thêm về J2ME, bạn có thể truy cập vào trang web: http://java.sun.com/j2me/.

D ị ch và th ự c thi m ột chương trình viế t b ằ ng Java

Việc xây dựng, dịch và thực thi một chương trình viết bằng ngôn ngữ lập trình java có thể tóm tắt qua các bước sau:

- Viết mã nguồn: dùng một chương trình soạn thảo nào đấy (NotePad hay Jcreator chẳng hạn) để viết mã nguồn và lưu lại với tên có đuôi ".java"

- Biên dịch ra mã máy ảo: dùng trình biên dịch javac để biên dịch mã nguồn

".java" thành mã của máy ảo (java bytecode) có đuôi ".class" và lưu lên đĩa

- Thông dịch và thực thi: ứng dụng đƣợc load vào bộ nhớ, thông dịch và thực thi dùng trình thông dịch Java thông qua lệnh "java"

Đưa mã java bytecode vào bộ nhớ là bước "loading", nơi chương trình cần được nạp vào bộ nhớ trước khi thực thi "Loader" sẽ lấy các tệp có đuôi ".class" chứa mã java bytecode và nạp chúng vào bộ nhớ.

Trước khi trình thông dịch chuyển đổi mã bytecode Java thành mã máy để thực thi, việc kiểm tra tính hợp lệ của mã bytecode là rất quan trọng.

Dưới sự điều khiển của CPU, trình thông dịch sẽ chuyển đổi bytecode thành mã máy và thực thi nó.

Công cụ lập trình và chương trình dịch

Tải xuống phiên bản JDK mới nhất phù hợp với hệ điều hành của bạn từ java.sun.com và tiến hành cài đặt (chúng tôi đã sử dụng JDK 1.7.0 trong giáo trình này) Sau khi cài đặt xong, hãy cập nhật biến PATH trong hệ thống để trỏ đến thư mục chứa chương trình biên dịch Java.

Hình 1.3 Cập nhật đường dẫn

4.2.Công cụ soạn thảo mã nguồn Java Để viết mã nguồn java chúng ta có thể sử dụng trình soạn thảo NotePad hoặc một số môi trường phát triển hỗ trợ ngôn ngữ java như: Jbuilder của hãng Borland, Visual Café của hãng Symantec, JDeveloper của hãng Oracle, Visual J++ của Microsoft,

Trong giáo trình này, chúng tôi sử dụng công cụ JCreator LE của hãng XINOX Software để hướng dẫn sinh viên thực hành Các bạn có thể tải xuống công cụ này để bắt đầu học tập.

JCreator từ http://www.jcreator.com/download.htm.

NỀ N T Ả NG C Ủ A JAVA

T ậ p ký t ự , t ừ khóa, đị nh danh

Ngôn ngữ Java đƣợc xây dựng từ bộ ký hiệu cơ sở sau:

 Bộ 26 chữ cái La-Tinh viết thường (nhỏ): a,b, ,z

 Bộ 26 chữ cái La-Tinh viết hoa (lớn): A,B, ,Z

 Bộ 10 chữ số hệ thập phân : 0,1, ,9

 Bộ dấu các toán tử số học : + - * /

 Bộ dấu các toán tử so sánh: < >  Ký tự gạch nối: _ ( Khác dấu trừ - )

 Các ký hiệu khác: ' " ; ,.: [ ] # $ & { } % ! Đặc biệt có khoảng trắng dùng để ngăn cách các từ (phím Space) Các ký hiệu cơ sở đều có trên bàn phím

Từ trong Java đƣợc xây dựng bởi các ký hiệu cơ sở trên Có 2 loại từ: Từ khóa và tên a Từ khóa (Key Word)

Keywords in Java are terms with specific meanings, commonly used to declare data types, write operators, and create statements Some of the important Java keywords include: asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, and private.

Prot ected publ ic regi ster retu rn shor t sign ed

Size of stati c stru swit ct ch tem plate this thro w try type unio def n unsi gned virt ual void vola tile whil e cdec l

_cs _ds _es _ex port far hug e inter rupt

_seg _ss b Tên hoặc danh hiệu (identifier):

Là từdo người sử dụng tựđặt để giải quyết bài toán của mình Từ tựđặt dùng để đặt tên cho hằng, biến, hàm, tên kiểu dữ liệu mới,

Tên phải được đặt theo quy tắc: bắt đầu bằng một chữ cái hoặc dấu gạch nối, tiếp theo là các chữ cái, chữ số hoặc dấu gạch nối, và không được trùng với từ khóa.

Tên có thể viết bằng chữ thường hoặc chữ hoa Trong java có phân biệt chữ thường và chữ hoa.

C ấ u trúc c ủ a m ột chương trình Java

Java là một ngôn ngữ lập trình thuần đối tượng, trong đó tất cả các thành phần như hằng, biến và hàm thủ tục đều phải được khai báo trong một lớp cụ thể.

Một ứng dụng Java bao gồm nhiều lớp liên quan, bao gồm các lớp từ thư viện Java và các lớp do lập trình viên định nghĩa Trong mỗi ứng dụng, chỉ có một lớp thực thi duy nhất, đây là lớp đầu tiên được xem xét khi thực hiện ứng dụng.

Lớp thực thi đƣợc này có các đặc điểm sau:

 Có tên lớp trùng với tên tập tin chứa nó

 Phải khai báo phạm vi là public

 Có chứa phương thức: public static void main (String args[]){

} là phương thức được thực thi đầu tiên

Nếu nhiều lớp đƣợc định nghĩa trong một tập tin, chỉ có một lớp đƣợc khai báo public.

Chương trình java đầu tiên

Trong ví dụ này, chúng ta sẽ tạo một ứng dụng đơn giản in ra dòng chữ "Hello World !" Ứng dụng này bao gồm một lớp công khai có tên là HelloWorld, trong đó chứa phương thức main() Tập tin chứa lớp này phải có tên là HelloWorld.java, với phần mở rộng bắt buộc là java.

Hình 2.1 Dùng Notepad biên soạn tập tin cùng tên là HelloWorld.java

Phương thức System.out.print() sẽ in tất cả các tham số trong dấu () của nó ra màn hình

Ta có thể dùng bất kỳ chương trình sọn thảo nào để biên soạn chương trình, nhưng chú ý phải ghi lại chương trình với phần mở rộng là java

2.3.2 Biên soạn chương trình bằng phần mềm Notepad của Ms Windows

Notepad là trình soạn thảo đơn giản có sẵn trong MS Windows mà ta có thể dùng để biên soạn chương trình HelloWorld Hãy thực hiện các bước sau:

+ Chọn menu Start \ Programs \ Accessories \ Notepad

 Nhập nội dung sau vào Notepad public class HelloWorld { public static void main(String args[]) {

System.out.print("Hello World! Chao cac ban lop Cao Dang Lap Trinh May Tinh\n");

 Save tập tin với tên HelloWorld.java

+ Tại cửa sổ Save As hãy nhập vào:

 Save in: Thư mục nơi sẽ lưu tập tin

 Save as type: All Files

2.3.4 Biên dịch và thực thi chương trình

 Mở cửa sổ MS-DOS: Chọn menu Start \ Programs \ Accessories \ Command Prompt

 Chuyển vào thƣ mục chứa tập tin HelloWorld.java

 Dùng chương trình javac để biên dịch tập tin HelloWorld.java javac HelloWorld.java

Khi có lỗi, thông báo lỗi sẽ hiển thị trên màn hình với dấu ^ chỉ rõ vị trí lỗi Ngược lại, nếu không có lỗi, tập tin thực thi HelloWorld.class sẽ được tạo ra.

 Thực thi chương trình HelloWorld.class java HelloWorld

Hình 2.2 Kết quả thực thi chương trình HelloWorld

Trên màn hình sẽ xuất hiện dòng chữ Hello World! Chao cac ban lop Cao Dang Lap Trinh May Tinh

Bi ế n, h ằ ng

Biến là vùng nhớ lưu trữ giá trị trong chương trình, mỗi biến có kiểu dữ liệu và tên biến duy nhất.

- Tên biến thông thường là một chuỗi các ký tự

 Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dưới hay dấu dollar

 Tên biến không đƣợc trùng với các từ khóa (xem phụ lục các từ khóa trong java)

 Tên biến không có khoảng trắng ở giữa tên

- Trong java, biến có thể được khai báo ở bất kỳ nơi đâu trong chương trình

;

= ;

Gán giá trị cho biến

Biến công cộng (toàn cục) là loại biến có thể truy cập từ bất kỳ đâu trong chương trình, thường được khai báo bằng từ khóa public hoặc được đặt trong một lớp (class).

Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo

Trong ngôn ngữ lập trình Java, việc phân biệt chữ in hoa và in thường là rất quan trọng Do đó, khi đặt tên cho các đối tượng dữ liệu và thực hiện các xử lý trong chương trình, chúng ta cần chú ý đến quy tắc này để đảm bảo tính chính xác và hiệu quả của mã nguồn.

Import java.lang.*; import java.io.*; class VariableDemo

{ static int x, y; public static void main(String[] args)

System.out.println("So nho hon la so:" + Math.min(x, y)); char c = 80;

System.out.println("ky tu c la: " + c);

- Hằng là một giá trị bất biến trong chương trình

- Tên hằng đƣợc đặt theo qui ƣớc giống nhƣ tên biến

- Hằng sốnguyên: trường hợp giá trị hằng ở dạng long ta thêm vào cuối chuỗi số chữ “l” hay “L” (ví dụ: 1L)

- Hằng số thực: truờng hợp giá trị hằng có kiểu float ta thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu số double thì ta thêm tiếp vĩ ngữ “d” hay “D”

- Hằng Boolean: java có 2 hằng boolean là true, false

- Hằng ký tự: là một ký tự đơn nằm giữa nằm giữa 2 dấu ngoặc đơn. o Ví dụ: „a‟: hằng ký tự a o Một số hằng ký tựđặc biệt

- Hằng chuỗi: là tập hợp các ký tự đƣợc đặt giữa hai dấu nháy kép “” Một hằng chuỗi không có ký tự nào là một hằng chuỗi rỗng

 Lưu ý: Hằng chuỗi không phải là một kiểu dữ liệu cơ sở nhưng vẫn được khai báo và sử dụng trong các chương trình.

Các ki ể u d ữ li ệu cơ sở

Java cung cấp bốn kiểu số nguyên: byte, short, int, và long Mỗi kiểu có kích thước, giá trị nhỏ nhất, giá trị lớn nhất và giá trị mặc định riêng, được mô tả chi tiết trong bảng.

- Kiểu mặc định của các số nguyên là kiểu int

- Các số nguyên kiểu byte và short rất ít khi đƣợc dùng

- Trong java không có kiểu số nguyên không dấu nhƣ trong ngôn ngữ C/C++

Tên kiểu Kích thước byte 1 byte short 2 bytes int 4 bytes long 8 bytes float 4 bytes double 8 bytes

Một sốlưu ý đối với các phép toán trên số nguyên:

- Nếu hai toán hạng kiểu long thì kết quả là kiểu long

Một trong hai toán hạng không phải kiểu long sẽ đƣợc chuyển thành kiểu long trước khi thực hiện phép toán

- Nếu hai toán hạng đầu không phải kiểu long thì phép tính sẽ thực hiện với kiểu int

- Các toán hạng kiểu byte hay short sẽ được chuyển sang kiểu int trước khi thực hiện phép toán

- Trong java không thể chuyển biến kiểu int và kiểu boolean nhƣ trong ngôn ngữ C/C++

 Kiểu dấu chấm động Đối với kiểu dấu chấm động hay kiểu thực, java hỗ trợ hai kiểu dữ liệu là float và double

Kiểu float có kích thước 4 byte và giá trị mặc định là 0.0f

Kiểu double có kích thước 8 byte và giá trị mặc định là 0.0d

Số kiểu dấu chấm động không có giá trị nhỏ nhất cũng không có giá trị lớn nhất Chúng có thể nhận các giá trị:

Khai báo và khởi tạo giá trị cho các biến kiểu dấu chấm động: float x = 100.0/7; double y = 1.56E6;

Một sốlưu ý đối với các phép toán trên số dấu chấm động:

- Nếu mỗi toán hạng đều có kiểu dấn chấm động thì phép toán chuyển thành phép toán dấu chấm động

- Nếu có một toán hạng là double thì các toán hạng còn lại sẽđƣợc chuyển thành kiểu double trước khi thực hiện phép toán

- Biến kiểu float và double có thể ép chuyển sang kiểu dữ liệu khác trừ kiểu boolean

Java sử dụng 2 bytes cho kiểu ký tự theo chuẩn mã UNICODE, trong đó 127 ký tự đầu tiên tương thích với mã ASCII Điều này cho phép chúng ta áp dụng cách sử dụng tương tự như bảng mã ASCII.

Trong ngôn ngữ lập trình Java, kiểu ký tự (char) có kích thước 2 bytes và được sử dụng để biểu diễn các ký tự trong bộ mã Unicode Điều này cho phép kiểu char trong Java có khả năng biểu diễn tất cả 65,536 ký tự khác nhau.

Giá trị mặc định cho một biến kiểu char là null

 Kiểu chuỗi ký tự String

Thực chất đây là một lớp nằm trong thƣ viện chuẩn của Java (Core API), java.lang.String

Chuỗi là một tập hợp các ký tự được bao quanh bởi hai dấu nháy kép (“”) Một hằng chuỗi không chứa ký tự nào được gọi là hằng chuỗi rỗng Ví dụ về hằng chuỗi là “Hello World” Mặc dù hằng chuỗi không phải là một kiểu dữ liệu cơ bản, nhưng nó vẫn có thể được khai báo và sử dụng trong các chương trình.

Nhận 2 giá trị là : true và false

- Trong java kiểu boolean không thể chuyển thành kiểu nguyên và ngƣợc lại

- Giá trị mặc định của kiểu boolean là false

+ int[] a ; float[] yt; String[] names;

+ hoặc: int a[]; float yt[]; String names[];int maTran[][]; float bangDiem[][];

+ a = new int[3]; yt = new float[10]; names = new String[50];

+ int i = a[0]; float f = yt[9]; String str = names[20]; int x = matran [2][5];

L ệ nh, kh ố i l ệ nh trong java

Giống nhƣ trong ngôn ngữ C, các câu lệnh trong java kết thúc bằng một dấu chấm phẩy (;)

Một khối lệnh là đoạn chương trình gồm hai lệnh trở lên và được bắt đầu bằng

Trang 16 dấu mở ngoặc nhọn ({) và kết thúc bằng dấu đóng ngoặc nhọc (})

Bên trong một khối lệnh có thể chứa một hay nhiều lệnh hoặc chứa các khối lệnh khác

} // kết thúc khối lệnh 2 lệnh 1.1 lệnh 1.2

// Các lệnh thuộc khối lệnh 3

Toán t ử và bi ể u th ứ c

2.7.1.Toán tử số học n tử Toá Ý nghĩa

27.3.Toán tử quan hệ & logic

>>> Dịch phải và điền 0 vào bit trống

- Ép kiểu rộng (widening conversion): từ kiểu nhỏ sang kiểu lớn (không mất mát thông tin)

- Ép kiểu hẹp (narrow conversion): từ kiểu lớn sang kiểu nhỏ (có khả năng mất mát thông tin)

= (kiểu_dữ_liệu) ;

Ví dụ float fNum = 2.2; int iCount = (int) fNum; // (iCount = 2)

Cú pháp: ? : < biểu thức 2>

Nếu điều kiện đúng thì có giá trị, hay thực hiện , còn ngƣợc lại là

: là một biểu thức logic

, : có thể là hai giá trị, hai biểu thức hoặc hai hành động

Ví dụ: int x = 10; int y = 20; int Z = (x= So sánh lớn hơn hay bằng

> >>> (dịch ph ả i và điề n 0 vào bit ố

Hình 2.3 Kết quả thực thi tập tin IfDemo.java

Nếu điều kiện có giá trị là true, lệnh sẽ trả về giá trị của biểu thức Operation1; ngược lại, nó sẽ trả về giá trị của biểu thức Operation2.

Lưu chương trình sau vào tập tin QuestionOp.java : import java.io.*; public class QuestionOp { public static void main(String args[]) {

System.out.print("Vui long nhap mot ky tu:"); try { int ch = System.in.read(); int point = (ch == 'A') ? 10:0;

System.out.print("Diem cua ban la:"+point);

} catch(IOException ie) { System.out.print("Error:"+ ie);

Biên dịch và thực thi đƣợc kết quảnhƣ sau:

Hình 2.4 Kết quả thực thi tập tin QuestionOp.java

// Các tác vụ sẽ đƣợc thực thi nếu giá trị của variable là value1 break;

// Các tác vụ sẽđƣợc thực thi nếu giá trị của variable là value2 break;

// Tác vụ sẽđƣợc thực thi nếu giá trị của variable không là các giá trị trên

Lưu chương trình sau vào tập tin CaseOp.java import java.io.*; public class CaseOp { public static void main(String args[]) {

To read a number character in Java, use `System.in.read()` to capture user input Implement a switch statement to identify the character and print the corresponding word: '0' for "Zero," '1' for "One," '2' for "Two," '3' for "Three," '4' for "Four," '5' for "Five," '6' for "Six," '7' for "Seven," '8' for "Eight," and '9' for "Nine." If the input does not match any of these cases, output "I don't know." This method effectively translates numeric characters into their word equivalents.

} } catch(IOException ie) { System.out.print("Error "+ie);

Biên dịch và thực thi đƣợc kết quả sau:

Hình 2.5 Kết quả thực thi tập tin CaseOp.java

// nếu condition có giá trị là true, thì các tác vụởđây sẽđƣợc lặp lại

Save the following program into a file named WhileDemo.java This Java code imports the necessary libraries and defines a public class called WhileDemo Within the main method, an integer variable `num` is initialized with the character value '9' A while loop is then used to print the character representation of `num` followed by a space, decrementing `num` until it is no longer greater than '0'.

Biên dịch và thực thi đƣợc kết quả sau:

Hình 2.6 Kết quả thực thi tập tin WhileDemo.java

// Lặp lại các tác vụ ở đây cho đến khi điều kiện condition có giá trị là false

Ví dụ: Lưu chương trình sau vào tập tin DoWhileDemo.java import java.io.*; public class DoWhileDemo { public static void main(String args[]) { int num = '9'; do {

System.out.print((char)num +" "); num ;

Biên dịch và thực thi đƣợc kết quả sau:

Hình 2.7 Kết quả thực thi tập tin DoWhileDemo.java

Cú pháp for (operation1; condition; operation2){

// Các tác vụđƣợc lặp lại

Tương đương như cấu trúc sau: operation1; while (condition) {

// Các tác vụđƣợc lặp lại operation2;

Save the following program in a file named ForDemo.java This Java code demonstrates a simple for loop that iterates from the character '9' down to '1' Within the loop, it prints each character, casting the integer value of 'num' back to a character type The output will display the numbers in descending order, separated by spaces.

Biên dịch và thực thi đƣợc kết quảnhƣ sau:

Hình 2.8 Kết quả thực thi tập tin ForDemo.java

Vòng lặp của các lệnh while, do-while và for sẽ kết thúc khi lệnh break đƣợc thực hiện

Save the following program in a file named BreakDemo.java: ```javaimport java.io.*;public class BreakDemo { public static void main(String args[]) { int num = Integer.valueOf(args[0]).intValue(); int i = num / 2; while (true) { if (num % i == 0) break; i ; } }}``` This Java program takes a number from command-line arguments, divides it by two, and uses a loop to find its factors by checking divisibility.

} System.out.println("So lon nhat chia het "+num+ " la: "+i);

Biên dịch và thực thi đƣợc kết quả sau:

Chương trình BreakDemo.java chuyển đổi đối số đầu tiên (args[0]) thành số nguyên bằng lệnh Integer.valueOf(args[0]).inValue() và xác định số lớn nhất chia hết cho số này.

Khi sử dụng các lệnh lặp như while, do-while và for, nếu gặp lệnh continue, vòng lặp sẽ kết thúc ngay lập tức và bỏ qua tất cả các lệnh phía sau continue để bắt đầu lần lặp tiếp theo.

Ví dụ: Lưu chương trình sau vào tập tin ContinueDemo.java import java.io.*; public class ContinueDemo{ public static void main(String args[]){ int num =Integer.valueOf(args[0]).intValue();

System.out.print("The odd numbers: "); for (int i =0; i< num; i++ ){ if (i % 2 ==0) continue;

Biên dịch và thực thi đƣợc kết quả sau:

H Hình 2.10 Kết quả thực thi tập tin ContinueDemo.java

Chương trình này in ra tất cả các số lẻ nhỏ hơn sốđưa vào từđối số.

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA

M ở đầ u

Lập trình hướng đối tượng (OOP) là một phương pháp hiệu quả để phát triển ứng dụng máy tính, đã chứng minh sức mạnh và vai trò quan trọng trong lĩnh vực tin học Chương này sẽ giúp bạn đọc khám phá các kiểu dữ liệu dẫn xuất như lớp (class) và giao diện (interface), đồng thời tìm hiểu các vấn đề cơ bản của OOP trong Java thông qua việc tạo lập lớp, đối tượng và các thuộc tính của chúng.

L ớ p (Class)

Lớp được coi là một khuôn mẫu cho đối tượng, bao gồm các dữ liệu (fields hay properties) và các phương thức (methods) tác động lên dữ liệu đó Các phương thức này được gọi là phương thức của lớp.

Các đối tƣợng đƣợc xây dựng bởi các lớp nên đƣợc gọi là các thể hiện của lớp (class instance)

3.2.2.Khai báo/định nghĩa lớp class

; constructor method_1 method_2

} class: là từ khóa của java

ClassName là tên lớp, trong khi field_1 và field_2 đại diện cho các thuộc tính và biến của lớp Constructor là quá trình khởi tạo đối tượng lớp, và method_1, method_2 là các phương thức thực hiện các thao tác trên dữ liệu của lớp.

3.2.3.Tạo đối tƣợng của lớp

Vùng dữ liệu (fields) hay thuộc tính (properties) của lớp đƣợc khai báo bên trong lớp nhƣ sau: class

// khai báo những thuộc tính của lớp

field1;

} Để xác định quyền truy xuất của các đối tƣợng khác đối với vùng dữ liệu của lớp người ta thường dùng 3 tiền tố sau:

 public: có thể truy xuất từ tất cảcác đối tƣợng khác

 private: một lớp không thể truy xuất vùng private của 1 lớp khác

 protected: vùng protected của 1 lớp chỉ cho phép bản thân lớp đó và những lớp dẫn xuất từ lớp đó truy cập đến

Ví dụ: public class xemay

{ public String nhasx; public String model; private float chiphisx; protected int thoigiansx;

// so luong so cua xe may: 3, 4 so protected int so;

// sobanhxe là biến tĩnh có giá trị là 2 trong tất cả // các thể hiện tạo ra từ lớp xemay public static int sobanhxe = 2;

Thuộc tính “nhasx”, “model”có thể đƣợc truy cập đến từ tất cả các đối tƣợng khác

Thuộc tính “chiphisx” chỉ có thể truy cập đƣợc từ các đối tƣợng có kiểu

Thuộc tính “thoigiansx”, so có thể truy cập đƣợc từ các đối tƣợng có kiểu

“xemay” và các đối tƣợng của các lớp con dẫn xuất từ lớp “xemay”

Để bảo vệ vùng dữ liệu của các đối tượng, người ta thường tránh sử dụng tiền tố public và thay vào đó chọn tiền tố private Việc này nhằm ngăn chặn quyền truy cập từ các phương thức bên ngoài lớp, đảm bảo an toàn cho dữ liệu.

3.2.5.Hàm - Phương thức lớp (Method)

Hàm hay phương thức (method) trong Java là khối lệnh thực hiện các chức năng, các hành vi xử lý của lớp lên vùng dữ liệu

()

} Để xác định quyền truy xuất của các đối tượng khác đối với các phương thức của lớp người ta thường dùng các tiền tố sau:

 public: phương thức có thể truy cập được từ bên ngoài lớp khai báo

 protected: có thể truy cập đƣợc từ lớp khai báo và những lớp dẫn xuất từ nó

 private: chỉ đƣợc truy cập bên trong bản thân lớp khai báo

Phương thức static là một loại phương thức trong lập trình hướng đối tượng, được sử dụng chung cho tất cả các thể hiện của lớp Điều này có nghĩa là phương thức static có thể được gọi và thực hiện mà không cần tạo ra đối tượng cụ thể của lớp chứa phương thức đó.

 final: phương thức có tiền tố này không được khai báo chồng ớ các lớp dẫn xuất

 abstract: phương thức không cần cài đặt (không có phần source code), sẽ đƣợc hiện thực trong các lớp dẫn xuất từ lớp này

 synchoronized: dùng để ngăn các tác động của các đối tƣợng khác lên đối tƣợng đang xét trong khi đang đồng bộ hóa Dùng trong lập trình miltithreads

: có thể là kiểu void, kiểu cơ sở hay một lớp

: đặt theo qui ƣớc giống tên biến

: có thể rỗng

Trong một lớp, các phương thức thường được khai báo bằng từ khóa public, trong khi vùng dữ liệu thường sử dụng tiền tố private để đảm bảo tính an toàn cho dữ liệu.

Những biến nằm trong một phương thức của lớp là các biến cục bộ (local) và nên đƣợc khởia tạo sau khi khai báo

Ví dụ: public class xemay

{ public String nhasx; public String model; private float chiphisx; protected int thoigiansx;

// so luong so cua xe may: 3, 4 so protected int so;

// là biến tĩnh có giá trị là 2 trong tất cả

// các thể hiện tạo ra từ lớp xemay public static int sobanhxe = 2; public float tinhgiaban()

} 3.2.6.Khởi tạo một đối tƣợng (Constructor)

Constructor là một phương thức đặc biệt trong lớp, tự động được gọi khi khởi tạo một thể hiện của lớp Nó cho phép gán các giá trị mặc định cho thuộc tính của đối tượng Các constructor không có giá trị trả về và có thể có tham số hoặc không.

Constructor phải có cùng tên với lớp và đƣợc gọi đến dùng từ khóa new

Nếu một lớp trong Java không có constructor, hệ thống sẽ tự động tạo ra một constructor mặc định Các thuộc tính và biến trong lớp sẽ được khởi tạo với các giá trị mặc định, chẳng hạn như số sẽ có giá trị 0, kiểu boolean sẽ là false, và kiểu đối tượng sẽ nhận giá trị null.

Lưu ý: thông thường để an toàn, dễ kiểm soát và làm chủ mã nguồn chương trình chúng ta nên khai báo một constructor cho lớp

Ví dụ: public class xemay

{} public xemay(String s_nhasx, String s_model, f_chiphisx, int i_thoigiansx, int i_so);

{ nhasx = s_nhasx; model = s_model; chiphisx = f_chiphisx; thoigiansx = i_thoigiansx; so = i_so;

// this.thoigiansx = i_thoigiansx; // this.so = i_so;

Biến "this" là một biến ẩn có mặt trong tất cả các lớp của ngôn ngữ Java Mỗi lớp trong Java đều sở hữu biến "this", được sử dụng trong quá trình thực thi để tham chiếu đến chính lớp chứa nó.

// Contructor của lớp A public A(int par_1, String par_2)

{ this.field_1 = par_1; this.field_2 = par_2; }

()

()

} 3.2.8.Khai báo chồng phương thức (overloading method)

Khai báo chồng phương thức (overloading method) trong lập trình đề cập đến việc định nghĩa nhiều phương thức có cùng tên nhưng khác nhau về kiểu dữ liệu hoặc số lượng tham số.

Ví dụ: public class xemay

{ // khai báo fields … public float tinhgiaban()

} public float tinhgiaban(float huehong)

Đặc điểm hướ n g đối tượ ng trong java

Tất cả các ngôn ngữ lập trình, bao gồm cả Java, đều tuân thủ ba nguyên tắc cơ bản của lập trình hướng đối tượng: tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) Những đặc điểm này giúp cải thiện khả năng tổ chức và quản lý mã nguồn, đồng thời tối ưu hóa tính tái sử dụng và linh hoạt trong phát triển phần mềm.

Cơ chế đóng gói trong lập trình hướng đối tượng cho phép các đối tượng ẩn giấu chi tiết cài đặt và dữ liệu cục bộ, chỉ công bố những thông tin cần thiết để tương tác với các đối tượng khác Đối tượng đóng vai trò quan trọng trong việc hỗ trợ tính đóng gói, trong đó class là đơn vị đóng gói cơ bản của ngôn ngữ Java Class định nghĩa hình thức và thành phần dữ liệu của một đối tượng, cùng với mã cài đặt các thao tác xử lý trên dữ liệu đó Trong Java, các đối tượng được xây dựng từ class và là những thể hiện cụ thể của class đó.

Một lớp trong lập trình bao gồm hai thành phần chính: thành phần dữ liệu và thành phần xử lý Thành phần dữ liệu thường bao gồm các biến thành viên và biến thể hiện của lớp, trong khi thành phần xử lý thực hiện các thao tác trên dữ liệu thông qua các phương thức Trong Java, các phương thức được sử dụng để xử lý dữ liệu, trong khi trong C/C++, thuật ngữ tương đương là hàm.

Tính đa hình cho phép phát triển nhiều lớp dẫn xuất từ một lớp nguồn, cho phép một đối tượng mang nhiều kiểu khác nhau.

{ public static void main(String[] args)

// Tạo một mảng 2 phần tử kiểu A

Mảng A_Object được khởi tạo với hai phần tử, trong đó phần tử đầu tiên arr_Object[0] tham chiếu đến một đối tượng B_Object được tạo ra từ A_Object Đối tượng này được gán cho arr_Object[0] thông qua biến var_1 Biến var_2 được khai báo nhưng chưa được khởi tạo, và một vòng lặp for được sử dụng để lặp qua các phần tử của mảng với chỉ số từ 0 đến 1.

{ var_2 = arr_Object[i]; var_2.method_1(); } }

Vòng lặp for trong đoạn chương trình trên:

- Với i = 0 thì biến var_2 có kiểu là B_Object, và lệnh var_2.method_1() sẽ gọi thực hiện phương thức method_1 của lớp B_Object

- Với i = 1 thì biến var_2 có kiểu là A_Object, và lệnh var_2.method_1() sẽ gọi thực hiện phương thức method_1 của lớp A_Object

Trong ví dụ trên, biến đối tượng var_2 có thể nhận kiểu A_Object hoặc B_Object, cho phép nó tham chiếu đến bất kỳ đối tượng nào thuộc lớp con của A_Object, như var_1, một đối tượng của lớp B_Object Ngược lại, một biến của lớp con không thể tham chiếu đến các đối tượng thuộc lớp cha.

Một lớp con (subclass) có khả năng kế thừa tất cả các vùng dữ liệu và phương thức từ một lớp khác, gọi là lớp siêu lớp (superclass) Quá trình này cho phép tạo ra một lớp mới, trong đó các thành phần (fields và methods) của lớp cũ trở thành các thành phần của lớp mới Lớp mới này được gọi là lớp dẫn xuất (derived class) từ lớp cũ Lớp cũ có thể là lớp dẫn xuất từ một lớp khác, nhưng đối với lớp mới, lớp cũ chính là lớp siêu lớp trực tiếp (immediate superclass).

Dùng từkhóa extends để chỉ lớp dẫn xuất class A extends B

} 3.3.3.1 Khái báo phương thức chồng

Tính kế thừa cho phép các lớp con thừa hưởng các thuộc tính và phương thức public và protected từ lớp cha Bên cạnh đó, các lớp con có khả năng ghi đè các phương thức của lớp cha thông qua việc khai báo chồng Ví dụ, phương thức tinhgiaban() trong lớp xega sẽ tính giá bán gấp 2.5 lần chi phí sản xuất, khác với lớp xemay, nơi phương thức này chỉ tính gấp 2 lần.

Ví dụ: public class xega extends xemay

Trang 32 public xega(String s_nhasx, String s_model, f_chiphisx, int i_thoigiansx);

{ this.nhasx = s_nhasx; this.model = s_model; this.chiphisx = f_chiphisx; this.thoigiansx = i_thoigiansx; this.so = 0;

Java cung cấp 3 tiền tố/từkhóa để hỗ trợ tính kế thừa của lớp:

 public: lớp có thể truy cập từcác gói, chương trình khác.

 final: Lớp hằng, lớp không thể tạo dẫn xuất (không thể có con), hay đôi khi người ta gọi là lớp “vô sinh”.

Lớp trừu tượng không khai báo các thành phần và phương thức, trong khi lớp dẫn xuất sẽ thực hiện việc khai báo và cài đặt cụ thể các thuộc tính và phương thức của lớp trừu tượng.

Lớp nội là lớp được định nghĩa bên trong một lớp khác, thể hiện tính đóng gói cao và cho phép truy cập trực tiếp vào các biến của lớp cha.

{ // … int public B(int par_1)

Trong ví dụ trên thì chương trình dịch sẽ tạo ra hai lớp với hai files khác nhau: A.class và B.class

Lớp “vô sinh” là lớp không thể có lớp dẫn xuất, tức là không có lớp con nào kế thừa từ nó Để ngăn ngừa việc tạo ra các lớp con, lớp “vô sinh” được khai báo bằng từ khóa final class.

Tất cả các phương thức của lớp vô sinh đều vô sinh, nhưng các thuộc tính của lớp vô sinh thì có thể không vô sinh

Ví dụ: public final class A

{ public final int x; private int y; public final void method_1()

Lớp trừu tượng không khai báo các thuộc tính và phương thức, trong khi các lớp dẫn xuất của nó sẽ định nghĩa các thuộc tính và cài đặt cụ thể cho các phương thức.

// cài đặt chi tiết cho phương thức method_1 // trong lớp con B

{ // cài đặt chi tiết cho phương thức method_1 // trong lớp con C

Các phương thức được khai báo với tiền tố private và static không thể được định nghĩa là trừu tượng (abstract) Tiền tố private ngăn cản việc truy xuất từ các lớp dẫn xuất, trong khi tiền tố static chỉ có thể được sử dụng trong lớp mà nó được khai báo.

Trong Java, không có kiểu dữ liệu con trỏ như trong C, giúp lập trình viên không phải lo lắng về việc cấp phát và giải phóng bộ nhớ Hệ thống Java tự động quản lý bộ nhớ thông qua trình dọn dẹp, đảm bảo rằng vùng nhớ được cấp phát cho các đối tượng sẽ được dọn dẹp trước khi hủy đối tượng.

Phương thức finalize() là một phương thức đặc biệt được cài đặt sẵn cho các lớp, được gọi bởi trình dọn dẹp hệ thống trước khi hủy một đối tượng Việc cài đặt các thao tác giải phóng và dọn dẹp vùng nhớ trong finalize() giúp lập trình viên kiểm soát quá trình hủy đối tượng, thay vì phụ thuộc hoàn toàn vào trình dọn dẹp hệ thống Điều này không chỉ cải thiện việc giải phóng bộ nhớ mà còn góp phần nâng cao tốc độ chương trình.

// Khai báo các thuộc tính public void method_1()

// Có thểdùng đểđóng tất cả các kết nối

// vào cơ sở dữ liệu trước khi hủy đối tượng

Gói (packages)

Việc đóng gói các lớp lại tạo thành một thƣ viện dùng chung gọi là package

Một package có thể bao gồm nhiều lớp và thậm chí chứa cả package khác bên trong Để khai báo một lớp thuộc về một package cụ thể, chúng ta cần sử dụng từ khóa package.

Dòng khai báo gói phải là dòng đầu tiên trong tập tin khai báo lớp

Các tập tin khai báo lớp trong cùng một gói phải được lưu trong cùng một thư mục

Lưu ý rằng việc khai báo import tất cả các lớp trong gói có thể tiêu tốn bộ nhớ Do đó, chúng ta chỉ nên import những lớp cần thiết cho chương trình để tối ưu hóa hiệu suất.

Ví dụ: package phuongtiengiaothong; class xemay

} Khi đó muốn sử dụng lớp xemay vào chương trình ta sẽ khai báo như sau: import phuongtiengiaothong.xemay;

Giao di ệ n (interface)

Trong Java, mỗi lớp chỉ có một siêu lớp trực tiếp, nghĩa là áp dụng nguyên tắc đơn thừa kế để giảm thiểu sự phức tạp của đa thừa kế Để mở rộng khả năng thừa kế, Java sử dụng giao diện (interface), cho phép một lớp có thể kế thừa từ nhiều giao diện khác nhau, từ đó nhận thêm dữ liệu và phương thức cần thiết.

Interface được định nghĩa như một lớp, trong đó các thuộc tính được khai báo là hằng (sử dụng từ khóa final) và các phương thức của giao diện là trừu tượng, mặc dù không cần sử dụng từ khóa abstract.

Trong các lớp có cài đặt các interface ta phải tiến hành cài đặt cụ thể các phương thức này

Ví dụ: public interface sanpham

{ static final String nhasx = “Honda VN”; static final String dienthoai = “08-8123456”; public int gia(String s_model);

// khai báo 1 lớp có cài đặt interface public class xemay implements sanpham

{ // cài đặt lại phương thức của giao diện trong lớp public int gia(String s_model)

{ if (s_model.equals(“2005”)) return (2000); else return (1500);

Trong lập trình, một lớp có thể kế thừa từ nhiều giao diện cha cùng lúc, cho phép nó nhận các giá trị hằng và phương thức từ tất cả các giao diện này Các giao diện cha được liệt kê theo chuỗi và phân cách bằng dấu phẩy Cú pháp khai báo cho một giao diện như sau: public interface InterfaceName extends interface1, interface2.

M ả ng, xâu ký t ự

Mảng là một tập hợp các phần tử có tên và kiểu dữ liệu giống nhau, trong đó mỗi phần tử được truy cập thông qua chỉ số của nó trong mảng.

[]; hoặc

[] ;

Ví dụ cách cách khai báo mảng: int arrInt1[]; int[] arrInt2; int[] arrInt3, arrInt4, arrInt5;

Để cấp phát bộ nhớ cho mảng trong Java, chúng ta sử dụng từ khóa "new", vì mọi thứ trong Java đều được thực hiện thông qua các đối tượng Ví dụ, để tạo một mảng số nguyên với 100 phần tử, ta có thể viết: int arrInt = new int[100];

Trong Java, chỉ số mảng bắt đầu từ 0, nghĩa là phần tử đầu tiên có chỉ số là 0 và phần tử thứ n có chỉ số là n - 1 Để truy xuất các phần tử của mảng, bạn sử dụng chỉ số của chúng đặt trong cặp dấu ngoặc vuông ([]).

Ví dụ: int arrInt[] = {1, 2, 3}; int x = arrInt[0]; // x sẽ có giá trị là 1 int y = arrInt[1]; // y sẽ có giá trị là 2 int z = arrInt[2]; // z sẽ có giá trị là 3

Trong nhiều ngôn ngữ lập trình như C, chuỗi được coi là một mảng các ký tự Tuy nhiên, trong Java, chuỗi được quản lý thông qua lớp String, cho phép thực hiện các thao tác phong phú trên đối tượng dữ liệu này.

Ví dụ: public class ViDuArray { public static void main(String[] args) { int arrInt[]; arrInt = new int[4]; arrInt[0] = 9; arrInt[1] = 17; arrInt[2] = 13; arrInt[3] = 14;

String arrString[] = {"Vu Van A", "Nguyen Van B", "Nguyen Van C"};

System.out.println("Mảng số nguyên: ");

System.out.println("\nMảng các chuỗi: "); for (int i = 0; i < 3; i++) {

Chuỗi là một dãy ký tự, và lớp String cung cấp nhiều phương thức để thao tác với các chuỗi này Lớp String bao gồm các phương thức khởi tạo (constructor) khác nhau để tạo ra chuỗi theo nhu cầu.

//str1 chứa một chuỗi rống

String str2 = new String(“Hello World”);

//str2 chứa “Hello World” char ch[] = {„A‟,‟B‟,‟C‟,‟D‟,‟E‟};

String str3 = new String(ch);

String str4 = new String(ch,0,2);

//str4 chứa “AB” vì 0- tính từ ký tự bắt đầu, 2- là sốlƣợng ký tự kể từ ký tự bắt đầu

Toán tử “+” được sử dụng để cộng chuỗi mới vào chuỗi đã tồn tại, và được gọi là “nối chuỗi” Nối chuỗi này được thực hiện thông qua lớp.

Lớp "StringBuffer" sẽ được thảo luận trong phần sau Phương thức "concat()" của lớp String cũng cho phép nối chuỗi, nhưng khác với toán tử "+", phương thức này không nối hai chuỗi tại vị trí cuối cùng của chuỗi đầu tiên Thay vào đó, nó trả về một chuỗi mới chứa giá trị của cả hai chuỗi, và chuỗi mới này có thể được gán cho chuỗi đang tồn tại.

//….bằng cách sử dụng phương thức concat( ) để gán với một chuỗi đang tồn tại StrFinal = strFirst.concat(strSecond);

Phương thức concat( ) chỉ làm việc với hai chuỗi tại một thời điểm

Các phương thức của lớp String

Trong phần này, chúng ta sẽxem xét các phương thức của lớp String

– char charAt(int index ) Phương thức này trả về một ký tự tại vị trí index trong chuỗi

String name = new String(“Java Language”); char ch = name.charAt(5);

Biến “ch” chứa giá trị“L”, từ đó vị trí các số bắt đầu từ 0

– boolean startsWith(String s ) Phương thức này trả về giá trị kiểu logic (Boolean), phụ thuộc vào chuỗi có bắt đầu với một chuỗi con cụ thể nào đó không

String strname = “Java Language”; boolean flag = strname.startsWith(“Java”);

Biến “flag” chứa giá trịtrue

– boolean endsWith(String s ) Phương thức này trả về một giá trị kiểu logic (boolean), hụ thuộc vào chuỗi kết thúc bằng một chuỗi con nào đó không

String strname = “Java Language”; boolean flag = strname.endsWith(“Java”);

Biến “flag” chứa giá trị false

Phương thức này trả về một chuỗi được rút ra từ một mảng ký tự được truyền vào Nó nhận hai tham số nguyên: tham số đầu tiên chỉ định vị trí bắt đầu rút trích ký tự, trong khi tham số thứ hai xác định số ký tự cần rút ra từ mảng.

String subname = String copyValueOf(name,5,2);

Bây giờ biến “subname” chứa chuỗi “ag”.

THIẾ T K Ế GIAO DI ỆN NGƯỜ I DÙNG

M ở đầ u

Chương này trang bị cho sinh viên những kiến thức cần thiết để thiết kế giao diện người dùng (GUI) cho ứng dụng bằng ngôn ngữ Java.

- Những nguyên tắc thiết kế giao diện

- Những thƣ viện, gói xây dựng giao diện: gồm những lớp

(class), những giao tiếp (interface) quản lý sự kiện và những thành phần (components) xây dựng nên giao diện người dùng

- Bộ quản lý trình bày (layout managers)

Trong bài viết này, chúng tôi sẽ giới thiệu về thiết kế giao diện người dùng (GUI) sử dụng thư viện AWT (Abstract Windows Toolkit) trong giáo trình lập trình Java căn bản Việc thiết kế GUI sẽ trở nên trực quan và linh hoạt hơn khi áp dụng thư viện JFC (Java Foundation Class), mà chúng tôi sẽ trình bày trong chuyên đề Java nâng cao.

Giới thiệu thƣ viện awt

Thư viện AWT là bộ công cụ thiết yếu để phát triển giao diện người dùng cho ứng dụng, bao gồm các thành phần cơ bản như Label, Button, Checkbox, Radiobutton, Choice, List, Text Field, Text Area, Scrollbar, Menu và Frame.

Java cung cấp thư viện AWT cho lập trình viên, tương tự như các API của Windows Tuy nhiên, khác với các hàm API, thư viện AWT không phụ thuộc vào hệ điều hành Thư viện AWT đóng vai trò nền tảng, giúp người dùng tiếp cận hiệu quả hơn với thư viện mở rộng JFC.

Cấu trúc cây phân cấp của các lớp trong thư viện AWT được mô tả chi tiết trong tài liệu đi kèm bộ công cụ J2SE, cụ thể là trong phần API Specification.

4 3 Các khái niệm cơ bản

Component là một đối tượng đồ họa trên màn hình cho phép người dùng tương tác, bao gồm các phần tử như nút nhấn, checkbox và scrollbar Lớp Component trong Java là một lớp trừu tượng, kế thừa từ java.lang.Object và nằm trong gói java.awt.

Container là một đối tượng vật chứa, có khả năng quản lý và nhóm các đối tượng khác lại với nhau Trong thành phần AWT, các đối tượng con như button có thể được tổ chức và quản lý hiệu quả trong container.

Trang 47 checkbox, radio button, scrollbar, list,… chỉ sử dụng đƣợc khi ta đƣa nó vào khung chứa (container)

Một số đối tƣợng container trong Java:

Panel là đối tượng khung đơn giản nhất, được sử dụng để nhóm các đối tượng và thành phần con Một Panel có khả năng chứa bên trong một Panel khác, tạo ra cấu trúc linh hoạt cho giao diện người dùng.

Khung chứa Frame là một cửa sổ chính trong các ứng dụng Java, bao gồm tiêu đề và đường biên giống như các ứng dụng Windows thông thường Nó thường được sử dụng để tạo giao diện người dùng cho các ứng dụng, kế thừa từ lớp java.awt.Component.

Dialog là một cửa sổ dạng hộp hội thoại (pop-up window) thường được sử dụng để thông báo hoặc thu thập dữ liệu từ người dùng thông qua các thành phần như TextField Mặc dù là một cửa sổ, nhưng Dialog không đầy đủ chức năng như đối tượng khung chứa Frame.

ScrollPanes là một loại khung chứa tương tự như Panel, nhưng được trang bị thêm hai thanh trượt, giúp tổ chức và hiển thị các đối tượng lớn chiếm nhiều không gian trên màn hình, chẳng hạn như hình ảnh hoặc văn bản dài.

Khung chứa container nhận các đối tượng từ bên ngoài và cần tổ chức, sắp xếp "chỗ ở" cho chúng Mỗi đối tượng trong khung chứa đều được quản lý bởi bộ quản lý trình bày (Layout Manager) Thư viện AWT cung cấp nhiều bộ quản lý trình bày khác nhau để hỗ trợ việc này.

FlowLayout: Sắp xếp các đối tượng từ trái qua phải và từ trên xuống dưới Các đối tượng đều giữnguyên kích thước của mình

BorderLayout là một loại layout trong Java, cho phép các đối tượng được sắp xếp theo các cạnh của khung chứa, bao gồm các vị trí Đông (East), Tây (West), Nam (South), Bắc (North) và Trung tâm (Center) Layout này giúp tổ chức giao diện người dùng một cách hợp lý, dễ dàng điều chỉnh và quản lý các thành phần trong ứng dụng.

GridLayout là một công cụ giúp tạo ra một khung lưới vô hình với các ô có kích thước bằng nhau Các đối tượng sẽ được sắp xếp vừa vặn trong từng ô, với thứ tự từ trái sang phải và từ trên xuống dưới.

GridBagLayout là một kiểu bố trí tương tự như GridLayout, nơi các đối tượng được sắp xếp trong một lưới vô hình Tuy nhiên, kích thước của các đối tượng không nhất thiết phải vừa với một ô mà có thể chiếm từ 2, 3 ô hoặc nhiều hơn, tùy thuộc vào các ràng buộc được chỉ định thông qua đối tượng GridBagConstraint.

Null Layout là phương pháp trình bày tự do, trong đó lập trình viên hoàn toàn tự quyết định kích thước và vị trí của các đối tượng trên màn hình mà không bị ràng buộc bởi các hướng như đông, tây, nam, bắc.

4 4 Thiết kếGUI cho chương trình

4.4.1.Tạo khung chứa cửa sổchương trình

Thông thường để tạo cửa sổ chính cho chương trình ứng dụng ta tiến hành các bước:

- Xác định kích thước của Frame

- Thể hiện Frame trên màn hình Ví dụ: import java.awt.*; class FrameDemo

{ public static void main(String args[])

{ // Tạo đối tƣợng khung chứaFrame

Frame fr = new Frame("My First Window") ; // Xác định kích thước, vị trí của Frame fr.setBounds(0, 0, 640, 480);

// Hiển thị Frame fr.setVisible(true);

Kết quả thực thi chương trình:

Để xây dựng hệ thống thực đơn cho chương trình ứng dụng sử dụng thư viện AWT, chúng ta có thể áp dụng các lớp MenuBar, Menu, MenuItem và MenuShortcut.

Hình 4.2 Tạo hệ thống thực đơn

Ví dụ: Tạo hệ thống thực đơn cho chương trình Calculator import java.awt.*; import java.awt.event.*;

Trang 49 class Calculator { public static void main(String[] args) { createMenu();

// Tao Frame ung dung final Frame fr = new Frame(); fr.setLayout(new BorderLayout());

// Tao cac menu bar MenuBar menu = new MenuBar();

Menu menuFile = new Menu("Edit");

MenuItem copyItem = new MenuItem("Copy Ctrl+C");

MenuItem pasteItem = new MenuItem("Paste Ctrl+V"); menuFile.add(copyItem); menuFile.add(pasteItem);

Menu menuHelp = new Menu("Help");

MenuItem hTopicItem = new MenuItem("Help Topics");

X ử lý bi ế n c ố /s ự ki ệ n

4.5.1.Mô hình xử lý sự kiện (Event-Handling Model) Ở trên chúng ta chỉđề cập đến vấn đề thiết kế giao diện chương trình ứng dụng mà chưa đề cập đến vấn đề xử lý sự kiện Những sự kiện được phát sinh khi người dùng tương tác với giao diện chương trình (GUI) Những tương tác thường gặp như: di chuyển, nhấn chuột, nhấn một nút nhấn, chọn một MenuItem trong hệ thống thực đơn, nhập dữ liệu trong một ô văn bản, đóng cửa sổ ứng dụng, … Khi có một tương tác xảy ra thì một sự kiện được gởi đến chương trình Thông tin về sự kiện thường được lưu trữ trong một đối tượng dẫn xuất từ lớp AWTEvent Những kiểu sự kiện trong gói java.awt.event có thể dùng cho cả những component AWT và JFC Đối với thƣ viện JFC thì có thêm những kiểu sự kiện mới trong gói java.swing.event

Những lớp sự kiện của gói java.awt.event

Hình 4.11 lớp sự kiện của gói java.awt.event

Có 3 yếu tố quan trọng trong mô hình xử lý sự kiện:

- Nguồn phát sinh sự kiện (event source)

- Bộ lắng nghe sự kiện (event listener)

Nguồn phát sinh sự kiện: là thành phần của giao diện mà người dùng tác động

Sự kiện này tóm tắt thông tin về vụ kiện, bao gồm nguồn gốc phát sinh sự kiện và các thông tin liên quan sẽ được gửi đến bộ lắng nghe xử lý.

Bộ lắng nghe là một đối tượng trong lớp hiện thực, liên quan đến nhiều interface của gói java.awt.event hoặc java.swing.event trong thư viện JFC Khi sự kiện xảy ra, bộ lắng nghe sẽ nhận thông báo và xử lý chúng Nguồn phát sinh sự kiện cần cung cấp các phương thức để đăng ký hoặc hủy bỏ bộ lắng nghe Luôn luôn có sự gắn kết giữa nguồn phát sinh sự kiện và bộ lắng nghe, cho phép nguồn thông báo cho bộ lắng nghe khi có sự kiện xảy ra.

Như vậy người lập trình cần làm hai việc:

Tạo và đăng ký một bộ lắng nghe cho một component trên GUI

Cài đặt các phương thức quản lý và xử lý sự kiện

Những interfaces lắng nghe của gói java.awt.event

Hình 4.12 Những interfaces lắng nghe của gói java.awt.event

Một đối tượng Event-Listener theo dõi các sự kiện phát sinh từ các thành phần của giao diện người dùng Mỗi khi có sự kiện xảy ra, phương thức tương ứng trong Event-Listener sẽ được gọi để xử lý sự kiện đó.

Each Event-Listener interface consists of one or more methods that must be implemented in the classes that realize that interface The methods within these interfaces are abstract, meaning that any class (listener) implementing the interface must provide implementations for all of these methods Failure to do so will result in the listeners becoming abstract classes.

4.5.2.Xử lý sự kiện chuột

Java offers two listener interfaces, MouseListener and MouseMotionListener, to manage and handle mouse-related events These mouse events can be captured for any component in the GUI that derives from java.awt.Component.

The MouseListener interface includes several key methods for handling mouse events in Java The `mousePressed(MouseEvent event)` method is triggered when a mouse button is pressed while the cursor is over a component The `mouseClicked(MouseEvent event)` method is called when a mouse button is pressed and released on a component without moving the cursor The `mouseReleased(MouseEvent event)` method activates when a mouse button is released after being dragged The `mouseEntered(MouseEvent event)` method is invoked when the mouse cursor enters the boundaries of a component, while the `mouseExited(MouseEvent event)` method is called when the cursor leaves the boundaries of that component.

The MouseMotionListener interface includes two key methods: public void mouseDragged(MouseEvent event), which is invoked when the user presses a mouse button and drags on a component, and public void mouseMoved(MouseEvent event), which is triggered when the mouse is moved over a component.

Mỗi phương thức xử lý sự kiện chuột đều nhận một tham số MouseEvent, cung cấp thông tin về sự kiện, bao gồm tọa độ x, y nơi sự kiện xảy ra Khi người dùng tương tác với một component, các phương thức tương ứng trong các interfaces sẽ tự động được gọi Để xác định nút chuột nào đã được nhấn, chúng ta sử dụng các phương thức và hằng số từ lớp InputEvent, lớp cha của MouseEvent.

The MouseTracker program demonstrates the use of the MouseListener and MouseMotionListener interfaces to capture and handle corresponding mouse events This implementation involves importing necessary AWT and event packages and extending the Frame class to create a functional application.

// set up GUI and register mouse event handlers public MouseTracker()

{ super( "Demonstrating Mouse Events" ); statusBar = new Label(); this.add( statusBar, BorderLayout.SOUTH ); // application listens to its own mouse events addMouseListener( this ); addMouseMotionListener( this ); setSize( 275, 100 ); setVisible( true );

// MouseListener event handlers // handle event when mouse released immediately // after press public void mouseClicked( MouseEvent event ) { statusBar.setText( "Clicked at [" + event.getX() +

// handle event when mouse pressed public void mousePressed( MouseEvent event )

{ statusBar.setText( "Pressed at [" + event.getX() +

// handle event when mouse released after dragging public void mouseReleased( MouseEvent event ) { statusBar.setText( "Released at [" + event.getX() +

} // handle event when mouse enters area public void mouseEntered( MouseEvent event ) {

Trang 63 statusBar.setText( "Mouse in window" );

// handle event when mouse exits area public void mouseExited( MouseEvent event ) { statusBar.setText( "Mouse outside window" );

// MouseMotionListener event handlers // handle event when user drags mouse with button pressed public void mouseDragged( MouseEvent event ) { statusBar.setText( "Dragged at [" + event.getX() +

// handle event when user moves mouse public void mouseMoved( MouseEvent event )

{ statusBar.setText( "Moved at [" + event.getX() +

// execute application public static void main( String args[] ) {

Kết quả thực thi chương trình:

Hình 4.13 Xử lý sự kiện chuột

4.5.3.Xử lý sự kiện bàn phím Để xử lý sự kiện bàn phím java hỗ trợ một bộ lắng nghe sự kiện đó là interface KeyListener Một sự kiện bàn phím được phát sinh khi người dùng nhấn và nhả một phím trên bàn phím Một lớp hiện thực KeyListener phải cài đặt các phương thức keyPressed, keyReleased và keyTyped Mỗi phương thức này có một tham số là một đối tƣợng kiểu KeyEvent KeyEvent là lớp con của lớp InputEvent

Các phương thức của interface KeyListener Phương thức keyPressedđược gọi khi một phím bất kỳđược nhấn

Phương thức keyTyped được kích hoạt khi người dùng nhấn các phím không phải là "phím hành động", bao gồm các phím mũi tên, phím Home, End, Page Up, Page Down, và các phím chức năng như Num Lock, Print Screen, Scroll Lock, Caps Lock, và Pause.

Phương thức keyReleasedđược gọi thực hiện khi nhả phím nhấn sau khi sự kiện keyPressed hoặc keyTyped

Lớp KeyDemo dưới đây thực hiện interface KeyListener, yêu cầu cài đặt tất cả ba phương thức trong KeyListener để xử lý sự kiện chuột một cách hiệu quả.

The Java program demonstrates keystroke events by utilizing core packages such as `java.awt.*` and `java.awt.event.*` It defines a class named `KeyDemo` that extends `Frame` and implements the `KeyListener` interface Within this class, three string variables, `line1`, `line2`, and `line3`, are initialized to store text input Additionally, a `TextArea` component is declared to facilitate text display and interaction.

// set up GUI public KeyDemo() { super( "Demonstrating Keystroke Events" );

// set up TextArea textArea = new TextArea( 10, 15 ); textArea.setText( "Press any key on the keyboard " ); textArea.setEnabled( false ); this.add( textArea );

// allow frame to process Key events addKeyListener( this ); setSize( 350, 100 ); setVisible( true );

} // handle press of any key public void keyPressed( KeyEvent event )

{ line1 = "Key pressed: " + event.getKeyText( event.getKeyCode() ); setLines2and3( event );

} // handle release of any key public void keyReleased( KeyEvent event )

{ line1 = "Key released: " + event.getKeyText( event.getKeyCode() ); setLines2and3( event );

// handle press of an action key public void keyTyped( KeyEvent event )

{ line1 = "Key typed: " + event.getKeyChar(); setLines2and3( event );

// set second and third lines of output private void setLines2and3( KeyEvent event ) { line2 = "This key is " + ( event.isActionKey() ? "" : "not

String temp = event.getKeyModifiersText( event.getModifiers() ); line3 = "Modifier keys pressed: " + ( temp.equals( "" ) ?

"none" : temp ); textArea.setText(line1+"\n"+line2+"\n"+ line3+"\n" ); }

// execute application public static void main( String args[] ) {

Kết quả thực thi chương trình:

Hình 4.14 Xử lý sự kiện bàn phím

LUỒ NG VÀ T Ậ P TIN

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Herbert Schildt. Java 2. A Beginner’s Guide . Second Edition. McGraw-Hill - 2003 Khác
[3] Dr. Harvey M. Deitel - Paul J. Deitel. Java How to Program, 4th Ed (Deitel). Prentice Hall - 2002 Khác
[4] Simon Roberts – Philip Heller – Michael Ernest. Complete Java 2 Certification – study guide. BPB Publications – 2000 Khác
[5] Cay S. Horstmann – Gary Cornell. Core Java Volum 1 - Fundamentals. The Sun Microsystems press. 1997 Khác
[6] Cay S. Horstmann – Gary Cornell. Core Java Volum 2 – Advanced Features. The Sun Microsystems press. 1997 Khác

HÌNH ẢNH LIÊN QUAN

hình Console của hệ điều hành MS-DOS. Lọai chƣơng trình ứng dụng này thích hợp với nh ững ai bƣớc đầu làm quen với ngôn ngữ lập trình java - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
h ình Console của hệ điều hành MS-DOS. Lọai chƣơng trình ứng dụng này thích hợp với nh ững ai bƣớc đầu làm quen với ngôn ngữ lập trình java (Trang 8)
trợ thực thi một ứng dụng Java Applet). Hình bên dƣới minh họa một chƣơng trình java applet th ực thi trong một trang web - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
tr ợ thực thi một ứng dụng Java Applet). Hình bên dƣới minh họa một chƣơng trình java applet th ực thi trong một trang web (Trang 9)
+N ếu có lỗi, trên màn hình sẽ xuất hiện thông báo lỗi với dấu ^ chỉ vị trí lỗi. + N ếu không có lỗi, tập tin thực thi HelloWorld.class đƣợc tạo ra - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
u có lỗi, trên màn hình sẽ xuất hiện thông báo lỗi với dấu ^ chỉ vị trí lỗi. + N ếu không có lỗi, tập tin thực thi HelloWorld.class đƣợc tạo ra (Trang 14)
Hình 2.4 Kết quả thực thi tập tin QuestionOp.java - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 2.4 Kết quả thực thi tập tin QuestionOp.java (Trang 21)
2.8.2. Phép toán ? Cú pháp:  - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
2.8.2. Phép toán ? Cú pháp: (Trang 21)
2.8.4. Lệnh while Cú pháp  - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
2.8.4. Lệnh while Cú pháp (Trang 23)
Hình 2.6 Kết quả thực thi tập tin WhileDemo.java - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 2.6 Kết quả thực thi tập tin WhileDemo.java (Trang 23)
Hình 2.7 Kết quả thực thi tập tin DoWhileDemo.java - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 2.7 Kết quả thực thi tập tin DoWhileDemo.java (Trang 24)
2.8.7. Lệnh break - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
2.8.7. Lệnh break (Trang 25)
Hình 2.9 Kết quả thực thi tập tin BreakDemo.java - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 2.9 Kết quả thực thi tập tin BreakDemo.java (Trang 25)
Hình 2.10 Kết quả thực thi tập tin ContinueDemo.java Ch ƣơng trình này in ra tất cả các số lẻ nhỏ hơn sốđƣ a vào t ừ đố i s ố  - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 2.10 Kết quả thực thi tập tin ContinueDemo.java Ch ƣơng trình này in ra tất cả các số lẻ nhỏ hơn sốđƣ a vào t ừ đố i s ố (Trang 26)
// Kiểm tra tính kế thừa của các đối tượng hìnhhọc  public static void main( String args[] )  - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
i ểm tra tính kế thừa của các đối tượng hìnhhọc public static void main( String args[] ) (Trang 47)
tríc ủa nó trên màn hình. Ta không phụ thuộc vào những ràng buộc đông, tâ y, nam, bắc gì c ả - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
tr íc ủa nó trên màn hình. Ta không phụ thuộc vào những ràng buộc đông, tâ y, nam, bắc gì c ả (Trang 50)
Hình 4.4 Gắn Component vào khung chứa 4.4.4.Trình bày các Component trong khung ch ứ a    - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.4 Gắn Component vào khung chứa 4.4.4.Trình bày các Component trong khung ch ứ a (Trang 52)
Bộ trình bày tạo một khung lƣới vô hình với cá cô bằng nhau. - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
tr ình bày tạo một khung lƣới vô hình với cá cô bằng nhau (Trang 55)
Hình 4.7 GridLayout 4.4.4.4 GridBagLayout  - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.7 GridLayout 4.4.4.4 GridBagLayout (Trang 55)
Hình 4.9 NullLayout - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.9 NullLayout (Trang 59)
Hình 4.10 Khung chứa Panel 4.4.5.2 Khung ch ứa Dialog   - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.10 Khung chứa Panel 4.4.5.2 Khung ch ứa Dialog (Trang 61)
Có 3 yếu tố quan trọng trong mô hình xử lý sự kiện: -Ngu ồn phát sinh sự kiện (event source)   -S ự kiện (event object)   - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
3 yếu tố quan trọng trong mô hình xử lý sự kiện: -Ngu ồn phát sinh sự kiện (event source) -S ự kiện (event object) (Trang 62)
Hình 4.16 TextComponentDemo - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.16 TextComponentDemo (Trang 72)
Hình 4.17 ListDemo - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.17 ListDemo (Trang 74)
Hình 4.18 DialogDemo - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 4.18 DialogDemo (Trang 76)
Hình 5.1 Đọc dữ liệu từ Console - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 5.1 Đọc dữ liệu từ Console (Trang 82)
Hình 5.4 Dữ liệu ghi xuống file D:\\testdata K ết quảđọc và xuất ra Console:   - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 5.4 Dữ liệu ghi xuống file D:\\testdata K ết quảđọc và xuất ra Console: (Trang 88)
HÌnh 5.6 ghi 6 số kiểu double xuống file, rồi đọc lên theo thứ tự ngẫu nhiên - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
nh 5.6 ghi 6 số kiểu double xuống file, rồi đọc lên theo thứ tự ngẫu nhiên (Trang 90)
Hình 5.7 Nhập Console dùng luồng ký tự - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 5.7 Nhập Console dùng luồng ký tự (Trang 92)
Hình 5.11 Đọc File dùng luồng ký tự - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 5.11 Đọc File dùng luồng ký tự (Trang 94)
Hình 5.13 đọc và hiển thị nội dung của file “test.txt” lên màn hình - Giáo trình môn học Lập trình java (Ngànhnghề Thiết kế trang web)
Hình 5.13 đọc và hiển thị nội dung của file “test.txt” lên màn hình (Trang 95)
w