Lịch sử ngôn ngữ Java

Một phần của tài liệu (TIỂU LUẬN) đồ án môn học lập TRÌNH JAVA đề tài CHƯƠNG TRÌNH QUẢN lý SÁCH tại NHÀ SÁCH NHÃ NAM (Trang 40)

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT

2.1. TỔNG QUAN VỀ NGÔN NGỮ AVA 4 J

2.1.1.1. Lịch sử ngôn ngữ Java

 James Gosling , Mike Sheridan và Patrick Naughton đã khởi xướng dự án ngơn ngữ lập trình Java vào tháng 6 năm 1991. Nhóm các kỹ sư của Sun được gọi là Green Team. Ban đầu James Gosling đặt tên là ‘Greentalk’ và phần mở rộng tập tin là .gt. Sau đó, nó được gọi là Oak và được phát triển như một phần của dự án Green.

 Các phiên bản ngôn ngữ Java:

 Các phiên bản ngôn ngữ Java:

 Nền tảng J2SE (Java Standard Edition) tiêu chuẩn.

 Nền tảng J2EE (Java Enterprise Applications Edition) cho các ứng dụng doanh nghiệp.

 Nền tảng J2ME (Java Mobile Applications Edition) cho các ứng dụng di động 2.1.1.2. Khái niệm

 Java là ngơn ngữ lập trình tĩnh, hướng đối tượng, hoạt động trên nhiều nền tảng. JavaScript là ngôn ngữ lập trình động (hay ngôn ngữ kịch bản – scripted language) được sử dụng để làm cho các trang web và ứng dụng trở nên sinh động.

 Java dựa trên lớp (class), cịn JavaScript thì động.

 Java là một ngơn ngữ độc lập. JavaScript phụ thuộc nhiều hơn, nghĩa là nó hoạt động với HTML và CSS trên các trang web để tạo nội dung động.

2.1.1.3. Đặc điểm

 Đơn giản: Java được thiết kế để dễ đọc, quen thuộc. Nếu hiểu được những khái niệm cơ bản về OOP, sẽ dễ dàng làm chủ Java.

 Hướng đối tượng: Mọi thứ là một đối tượng. Java có thể dễ dàng mở rộng kể từ khi Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy

Trang 5

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

nó được dựa trên mơ hình đối tượng.

 Độc lập phần cứng và hệ điều hành: Khi Java được biên dịch, nó khơng được biên dịch vào một nền tảng cụ thể mà là bytecode. Bytecode này được thông dịch bởi máy ảo (JVM) tùy vào nền tảng mà nó đang thực thi không cần biên dịch lại mã  nguồn.

 Bảo mật: Quản lý thực thi chương trình ở nhiều mức:  Dữ liệu và phương thức được đóng gói bên trong lớp.

 Trình biên dịch kiểm sốt mã an tồn và kiểm sốt tn thủ đúng quy tắc của Java.

 Trình thơng dịch kiểm sốt bytecode đảm bảo quy tắc an toàn trước khi thực thi.

 Kiểm soát việc nạp vào bộ nhớ, giới hạn truy xuất trước khi nạp vào hệ thống.  Mạnh mẽ: Java nỗ lực loại trừ tình huống dễ bị lỗi bằng cách nhấn mạnh chủ yếu

vào việc kiểm tra lỗi thời điểm biên dịch và thực thi.  Khai báo kiểu dữ liệu tường minh.

 Không dùng con trỏ và phép toán con trỏ.

 Kiểm sốt việc truy xuất ngồi phạm vi dữ liệu mảng.

 Cấp phát và giải phóng bộ nhớ được thực hiện tự động (garbage collection).

 Cơ chế bẫy lỗi giúp kiểm soát và đơn giản trong xử lý lỗi và phục hồi sau lỗi.  Đồng bộ: Có thể viết chương trình có thể làm nhiều việc cùng một lúc. Cho phép

các nhà phát triển xây dựng các ứng dụng tương tác chạy đồng thời và đồng bộ.  Hiệu suất cao: Nhờ vào trình thu gom rác, giải phóng bộ nhớ đối với các đối tượng

không được dùng đến.

 Phân tán: Java được thiết kế để hỗ trợ ứng dụng chạy trên mạng, cho môi trường phân tán, chạy trên nhiều nền khác nhau của Internet.

 Linh động: Java được coi là linh động hơn so với C hoặc C++ vì nó được thiết kế Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy

Trang 6

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

để thích ứng với mơi trường phát triển mở. 2.1.1.4. Ưu – nhược điểm

 Ưu điểm

 Java cho phép bạn tạo các chương trình mơ-đun và mã có thể tái sử dụng để giữ cho hệ thống có thể mở rộng cũng như linh hoạt.

 Con đường học tập đối với ngôn ngữ lập trình Java là cực kỳ ngắn. Java dễ viết, dễ biên dịch và gỡ lỗi hơn các ngơn ngữ lập trình chính khác như C + +, C #. Đó là một thế mạnh to lớn, bởi vì điều này đảm bảo rằng các lập trình viên Java có thể làm việc hiệu quả trong một khoảng thời gian không quá dài để học tập. Bên cạnh đó, những điều cũng làm cho Java hấp dẫn hơn là cú pháp giống như tiếng Anh viết và nói hàng ngày. Điều này có nghĩa là Java rất dễ đọc và logic.

 Số lượng lớn các thư viện nguồn mở và trưởng thành với sự hỗ trợ công nghiệp cũng đảm bảo rằng Java được sử dụng ở mọi nơi.

 Công cụ thu gom rác dọn dẹp đồ vật một khi chúng khơng cịn được sử dụng, vì vậy bạn khơng phải tự mình theo dõi mọi thứ.

 Nếu chương trình gặp sự cố, nó sẽ báo cho người dùng biết mã trong đó ở đâu và tại sao, hiển thị dấu vết ngăn xếp bao gồm số dòng (nếu biểu tượng gỡ lỗi được bật hoặc một cái gì đó tương tự) hoặc có thể được đổ vào tệp nhật ký lỗi.

 Nhược điểm

 Trình biên dịch Java chưa được tối ưu hóa tốt so với C++.  Khơng có sự tách biệt đặc điểm kỹ thuật khi triển khai.  Quản lý bộ nhớ với Java là khá tốn kém.

 Việc thiếu các template có thể hạn chế khả năng của Java để tạo ra các cấu trúc dữ liệu chất lượng cao.

 Người ta có thể tìm thấy một số lỗi trong trình duyệt và các chương trình ví dụ.

Si h iê th hiê Đi h H ỳ h Y Ph N ễ H à Th

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 7

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

2.1.2. Hướng đối tượng trong Java

2.1.2.1. Các khái niệm về hướng đối tượng

 Lập trình hướng đối tượng là một phương pháp lập trình có 4 tính chất chính sau:

Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ qua

hay khơng chú ý đến một số khía cạnh của thơng tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết. Mỗi đối tượng phục vụ như là một "động tử" có thể hồn tất các cơng việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được các thao tác. Tính chất này thường được gọi là sự trừu tượng của dữ liệu. Tính trừu tượng cịn thể hiện qua việc một đối tượng ban đầu có thể có một số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân đối tượng ban đầu này có thể khơng có các biện pháp thi hành. Tính trừu tượng này thường được xác định trong khái niệm gọi là lớp

trừu tượng hay lớp cơ sở trừu tượng.

Tính đóng gói (encapsulation) và che giấu thơng tin (information hiding): Tính chất này khơng cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó. Việc cho phép mơi trường bên ngồi tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là tính chất đảm bảo sự tồn vẹn của đối tượng.

Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp (message). Việc gửi các thơng điệp này có thể so sánh như việc gọi các

hàm bên trong của một đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thơng điệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thơng qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 8

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà khơng bị nhầm lẫn.

Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thơng qua kế thừa. Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà khơng phải tiến hành định nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất này.

Mơ hình hóa các đối tượng trong thế giới thực thành đối tượng phần mềm:

Chương trình = Đối tượng + Thơng điệp

Một đối tượng gồm có:

 Thuộc tính: các đặc điểm, trạng thái của đối tượng.  Hành vi: các hành vi/ chức năng của đối tượng.  Lớp đối tượng:

 Lớp đối tượng (class): định nghĩa danh sách các thuộc tính (dữ liệu) và các

h hứ h ủ ộ hó đối à đó

phương thức chung của một nhóm đối tượng nào đó.

 Lớp là khái niệm trung tâm của OOP, là sự mở rộng của khái niệm cấu trúc (struct).

Lớp = thuộc tính + phương thức

 Thuộc tính: Thuộc tính chính là những thơng tin cụ thể được lưu trữ. Thuộc tính sẽ được định nghĩa trong lớp. Khi một đối tượng được khởi tạo, thì sẽ có những dữ liệu khác nhau để lưu trữ thuộc tính của chúng. Lúc này, thuộc tính sẽ giúp chúng ta phân biệt giữa đối tượng này với đối tượng khác.

 Phương thức: Trong lập trình hướng đối tượng, phương thức đại diện cho các hành vi. Cụ thể, phương thức có thể yêu cầu đối tượng thực hiện hành động, trả lại thông tin về một đối tượng hoặc cập nhật dữ liệu của một đối tượng.

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 9

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

 Phương thức sẽ bao gồm những đoạn mã được xác định trong lớp. Khi một đối tượng được tạo ra, thì đối tượng này có thể gọi đến các phương thức đã được định nghĩa trước từ trong lớp.

 Lớp được xem như một kiểu dữ liệu (kiểu đối tượng).

 Lớp giúp lập trình viên: Trừu tượng hóa dữ liệu, đóng gói và ẩn thơng tin.  Lớp là mơ hình hóa rút gọn của thực thể trên thực tế, chỉ mơ tả những thuộc

tính, phương thức quan tâm.  Đối tượng:

 Đối tượng (Object): là một thể hiện cụ thể của lớp, các thuộc tính có giá trị xác định.

 Đối tượng được xem như là một biến có kiểu dữ liệu là lớp.

2.1.3. Giới thiệu về Java Swing

2.1.3.1. Khái niệm

 Java Swing là một phần của Java Foundation Classes (JFC) được sử dụng để tạo các ứng dụng window-based. Nó được xây dựng trên API AWT (Abstract Windowing Toolkit) và được viết hồn tồn bằng Java.

 Khơng giống như AWT, Java Swing cung cấp các thành phần khơng phụ thuộc vào nền tảng và nhẹ hơn. Gói javax. swing cung cấp các lớp cho java swing API như JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, v.v.

 Điểm khác nhau giữa AWT và Java Swing

AWT Java Swing

AWT Java Swing Các thành phần AWT là phụ thuộc nền tảng Các thành phần Java Swing là độc lập nền tảng Các thành phần AWT là nặng Các thành phần Swing là gọn nhẹ AWT không hỗ trợ pluggable Look & Swing hỗ trợ pluggable Look & Feel

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 10

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA0

Feel

AWT cung cấp ít thành phần hơn Swing

Swing cung cấp các thành phần mạnh mẽ hơn như table, list, scrollpanes, colorchooser, tabbedpane …

AWT không theo sau MVC, ở đây model biểu diễn dữ liệu, view biểu diễn sự trình bày và controller hoạt động như một Interface giữa model và view

Swing theo sau MVC

Bảng 2-1 Điểm khác nhau giữa AWT và Swing

2.1.3.2. Phân cấp các lớp trong java swing

Hình 2-3 Phân cấp các lớp trong Java swing

Tất cả các thành phần trong swing đại diện là Jcomponent có thể được thêm vào các container class.

 Các phương thức Jcompnent được sử dụng phổ biến:

 public void add(Component c): thêm một thành phần vào thành phần khác. Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy

Trang 11

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

 public void setSize (int width, int height): thiết lập kích thước của thành phần.

 public void setLayout (LayoutManager m): thiết lập trình quản lý bố cục (layout) cho thành phần.

 public void setVisible (boolean b): thiết lập khả năng hiển thị của thành phần. Nó theo mặc định là false (ẩn).

 Container class:

 Container class những class có thể chứa các thành phần khác như Button, TextButton, Checkbox etc. Vì vậy để khởi tạo một ứng dụng có giao diện đồ hoạ trong Swing chúng ta cần ít nhất một container object

đồ hoạ trong Swing chúng ta cần ít nhất một container object.  Có 3 loại container chính sau:

- Panel: Đây là một containter thuần tuý nhất dùng cho mục đích tổ chức các layout trên một màn hình chính.

- Frame: Đây là một container với đầy đủ các chức năng, được xem như là một màn hình chính trong ứng dụng.

- Dialog: Nó có thể được coi như một cửa sổ bật lên khi chúng ta cần hiển thị tin nhắn đến người dùng. Dialog không được xem là một màn hình chính trong ứng dụng giống như Frame.

2.1.3.3. Các thành phần cơ bản

Jlabel: có thể hiển thị hoặc text, hoặc hình ảnh hoặc cả hai. Các nội dung của

Label được gán bởi thiết lập căn chỉnh ngang và dọc trong khu vực hiển thị của nó. Theo mặc định, các label được căn chỉnh theo chiều dọc trong khu vực hiển thị. Theo mặc định, text-only label là căn chỉnh theo cạnh, image-only label là căn chỉnh theo chiều ngang.

Jbutton: được sử dụng để tạo một nút button mà có trình triển khai là độc lập

nền tảng. Thành phần này có một label và tạo một sự kiện (event) khi được nhấn. Nó cũng có thể có Image.

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 12

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

Jtable: được sử dụng để hiển thị dữ liệu trên các ô của bảng hai chiều.

JcheckBox: là một trình triển khai của một checkbox, là một item mà có thể được lựa chọn (selected) hoặc khơng được lựa chọn (unselected), và hiển thị trạng thái của nó tới người dùng.

JradioButton: là một trình triển khai của một radio button, một item mà có thể được lựa chọn hoặc khơng, và hiển thị trạng thái của nó tới người dùng. Lớp này nên được thêm vào trong ButtonGroup để chỉ lựa chọn một radio button.  JtextField: là một thành phần cho phép sửa đổi một dòng text đơn.

JtextArea: được sử dụng để tạo một khu vực dành cho text. Nó là một khu vực

gồm nhiều dịng và chỉ hiển thị thuần text.

Jlist: là một thành phần mà hiển thị một danh sách các đối tượng và cho phép người dùng lựa chọn một hoặc nhiều item. Một Model riêng rẽ, ListModel, duy trì các nội dung của list.

JcomboBox: là một thành phần mà kết hợp một button, một trường có thể

chỉnh sửa và một drop-down list. Tại một thời điểm chỉ có một item có thể được lựa chọn từ list.

 JOptionPane là một thành phần cung cấp các phương thức chuẩn để popup một hộp thoại dialog chuẩn cho một giá trị hoặc thông báo người dùng về một cái gì đó.

2.1.4. Java JDBC

2.1.4.1. Khái niệm

JDBC (Java Database Connectivity) là một API chuẩn dùng để tương tác với các

loại cơ sở dữ liệu quan hệ (database relationship). JDBC bao gồm một tập hợp các class và các interface dùng cho ứng dụng Java có thể giao tiếp với các cơ sở dữ liệu (database) khác nhau.

Sinh viên thực hiên: Đinh Huỳnh Y Pha- Nguyễn Hoàng Thy Trang 13

Đề

tài: Xây dựng chương trình quản lý sách tại nhà sách FAHASA

2.1.4.2. Các thành phần của JDBC

Hình 2-4 Các thành phần JDBC

JDBC API cung cấp một interface tiêu chuẩn để tương tác với bất kỳ hệ thống quản lý cơ sở dữ liệu quan hệ nào (RDBMS). JDBC API bao gồm các thành phần chính sau:

Một phần của tài liệu (TIỂU LUẬN) đồ án môn học lập TRÌNH JAVA đề tài CHƯƠNG TRÌNH QUẢN lý SÁCH tại NHÀ SÁCH NHÃ NAM (Trang 40)

Tải bản đầy đủ (PDF)

(89 trang)