Java

Chia sẻ bởi Nguyễn Việt Vương | Ngày 29/04/2019 | 218

Chia sẻ tài liệu: Java thuộc Bài giảng khác

Nội dung tài liệu:

java
Chú ý: Mục đích cuối cùng của tài liệu này là để bước đầu tiếp cận lập trình Java. Một số điều viết trong tài liệu này có thể ko chính xác nhưng giúp cho ta hiểu dễ dàng hơn, và sâu sắc hơn vấn đề. Vậy mọi kiến thức học được từ tài liệu này phải được kiểm chứng bởi bản thân bạn. Tôi không chịu trách nhiệm về sự chính xác của tài liệu. Cuối cùng, bạn được phép tùy ý chỉnh sửa và phân phối tài liệu này.

JDK, JRE
Khi bạn dowload JDK 1.5 trên site của Sun (java.sun.com), bạn đã rất bối rối trước những thuật ngữ như JDK, JRE, JDK SE, JDK EE… ko biết phải dow cái gì nhỉ?
JDK = Java Developement Kit, dành cho nhà lập trình Java như bạn. JDK cho phép biên dịch *.java -> *.class và chạy các .class này.
JRE = Java Runtime Enviroment, dành cho người sử dụng. JRE chỉ cho phép chạy các chương trình Java đã được biên dịch (những file .class).
Bạn phải sử dụng JDK để viết và biên dịch các chương trình (các application) Java, những chương trình này sẽ chạy trên bất cứ máy nào có cài đặt JRE (bất kể máy đó dùng HĐH gì)
SE = standar edition. Phiên bản Java này đáp ứng đủ nhu cầu cho phần lớn nhà lập trình Java. Bạn sẽ dùng phiên bản này
EE = entreprise edition. Phiên bản này cung cấp nhiều thư viện, nhiều dịch vụ hơn.
…Còn nhiều thuật ngữ khác bạn tự tìm hiểu

Kế hoạch
Getting started
Thực hiện một project Java
Sử dụng NetBeans/Eclipse, tài liệu helps
Lập trình hướng đối tượng (tự học)
Cần hiểu biết về Inheritace, Interface, Abstract, static
Handling Error, Exception
Interface graphic (Awt, Swing…)
Events, Threads
Using ant, JUnit tools
JSP, JavaBeans, nhiều kĩ thuật khác… (đến đây thì tự học được rồi!)

Về lập trình hướng đối tượng, nếu có thời gian tớ sẽ cho các ví dụ cụ thể, nếu ko thì các bạn tự tìm lấy, sẽ hiểu được ngay, ko cần fải đọc nhiều, chỉ cần xem nhiều ví dụ là được
Chương 1) Getting started
trong chương này chúng ta sẽ:
Dowload và cài đặt JDK SE 1.5
Viết, biên dịch và chạy chương trình java đầu tiên HelloWorld
Các bạn đọc qua 2 trang tiếp theo rồi tự làm nhé. Hướng dẫn cụ thể ở đây:
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/win32.html
http://java.sun.com/docs/books/tutorial/getStarted/application/index.html

1.1) Cấu hình JDK
Bạn đã dowload và cài đặt platform JDK trong Windows, bộ cài đặt đã cấu hình bộ JDK theo mặc định trên máy bạn.

Bạn fải vào dòng lệnh của Dos, thử gõ lệnh javac và java xem nó có chạy ko. Nếu ko chạy thì bạn làm như sau:
right click vào My Computer > Properties
hộp System properties hiện ra, vào tab Advance, nhấn nút Environement Variables
Trong khu vực System Variables, bạn tạo thêm biến môi trường với nội dung như sau (Click vào New):
JAVA_HOME = C:Program FilesJavajdk1.5.0_07
chú ý, đấy là máy của tớ thì như vậy. Bạn cài bộ JDK ở đâu thì tự bạn biết! đường dẫn trên đây là đường dẫn mặc định khi bạn cài bộ JDK 1.5 update 7
Cũng ở khu vực đó bạn sửa biến môi trường Path (chọn Path trong danh sách rồi bấm Edit):
Thêm nối đuôi vào đó nội dung sau: ;%JAVA_HOME%in
Mở cửa sổ console khác (cái cửa sổ đen đen để gõ dòng lệnh DOS ý), thử lại lệnh java và javac hi vọng là nó chạy!

1.2) Chương trình Java đầu tiên
Bạn phải viết chương trình HelloWorld.java bằng Notepad rồi sử dụng lệnh "javac HelloWorld.java" để biên dịch nó ra HelloWorld.class, rồi sử dụng lệnh java để chạy nó.
Để chạy HelloWorld.class, bạn phải sử dụng lệnh java. Có 2 điều kiện để chạy thành công HelloWorld.class:
HelloWorld.class phải chứa method (phương thức) sau:
public static main(…)
HelloWorld.class phải được khai báo trong biến môi trường CLASSPATH. Nếu bạn ko muốn thay đổi biến môi trường này thì phải sử dụng tham số –cp (classpath) của lệnh java… Giả sử HelloWorld.class nằm trong thư mục X, để chạy nó, bạn gõ lệnh sau
java –cp "đường_dẫn_tới_X" HelloWorld.class (ko cần đuôi .class cũng được)
vấn đề về CLASSPATH này sẽ được đề cập cụ thể hơn ở chương sau

Đừng coi thường việc biên dịch bằng dòng lệnh. Thực tế, tất cả các IDE như NetBeans, Eclipse, JBuilder… đều sử dụng dòng lệnh để biên dịch và chạy chương trình của bạn, y như lúc bạn gõ lệnh biên dịch bằng tay vậy, chỉ khác là tất cả được làm ở "phía sau" để bạn ko nhận ra. Hơn nữa phần lớn các java project được biên dịch và chạy bằng dòng lệnh chứ ko phải bằng mấy cái IDE đó.


Chương 2) Java project
Một project java chứa nhiều files nguồn *.java.
Làm thế nào để tổ chức (qui hoạch) những file nguồn này.
-> khái niệm package
Làm thế nào để biên dịch đống files nguồn này và chạy chúng.
-> khái niệm CLASSPATH
Chúng ta sẽ xem xét một project Java đơn giản gồm 4 file nguồn, tớ sẽ chỉ cho các bạn cách biên dịch và chạy cái project này. Bạn có thể làm tương tự với những project đại to (chứa đến hàng trăm file nguồn chẳng hạn!)

2.1) Giới thiệu project
Đây là một project rất đơn giản, chỉ gồm 4 file nguồn. (và chẳng dùng để làm gì cả!)

Đại loại là làm 1 bộ đếm thời gian cứ tiktak đếm từ 1 đến 10.

Bạn dowload cái này về: CounterPrj.zip, sau đó giải nén vào trong C: mp, như vậy bạn có thư mục C: mpCounterPrj chứa 4 files nguồn.

Mã nguồn viết khá đơn giản, bạn có thể đọc qua một chút tuy ko cần fải hiểu. Nhưng tớ nghĩ rằng các file Counter.java và CounterTest.java khá dễ hiểu, chẳng dùng chút kĩ thuật gì ghê gớm cả. Clock.java thì có đoạn hơi lạ 1 chút, nhưng ko cần quan tâm đến nó!

2.2) Biên dịch CounterPrj (1)
Mở console ra, đi đến thư mục CounterPrj:
cd C: mpCounterPrj
Tạo ra một thư mục tên là bin trong đó:
mkdir bin
Chúng ta sẽ biên dich các files nguồn *.java thành các files *.class và đặt chúng trong thư mục bin này (để chúng ko trộn lẫn với các file .java).
javac -d bin *.java
(option "-d bin" ý muốn nói là hãy biên dịch vào thư mục bin)

Mở lại các file nguồn .java ra, nhìn vào dòng đầu tiên của các files, bạn thấy rằng:
Clock.java thuộc về package com.lib -> sau khi biên dịch vào bin, Clock.class được đặt trong thư mục comlib
tương tự ClockApp.java thuộc về package com.app -> sau khi biên dịch vào bin, ClockApp.class được đặt trong thư mục comapp
tương tự Counter*.java thuộc về package com.lib -> sau khi biên dịch vào bin, Counter*.class được đặt trong thư mục comlib
2.2) Biên dịch CounterPrj (2)
Cấu trúc tổ chức thư mục các file sau khi biên dịch (.class) hoàn toàn thỏa mãn như ta đã khai báo trong mã nguồn. Vậy Package đơn giản chỉ là những thư mục chứa các .class, ví dụ package com chứa 3 packages: lib, app, test; package com.app chứa ClockApp.class, package com.test chứa CounterTest.class v.v..

Chúng ta có thể có nhiều class cùng tên trong các package khác nhau. Ví dụ giả sử ta có Clock.class trong package com.lib rồi một Clock.class khác trong package net.lib chẳng hạn, để phân biệt 2 cái class hoàn toàn khác nhau này, ta sẽ phân biệt là lớp com.lib.Clock khác với lớp net.lib.Clock như vậy, tên đầy đủ của một class phải là tên package chứa nó cộng với tên class đó (ko cần đuôi .class).

Từ nay mỗi khi sử dụng một class nào đó, ta luôn dùng tên đầy đủ của nó. VD, ta dùng rõ ràng net.lib.Clock hoặc com.lib.Clock chứ ko phải Clock chung chung.

2.3) Chạy CounterPrj (1)
CLASSPATH là biến môi trường, chứa những giá trị ví dụ như: "c:/tmp/CounterPrj/bin;c:/myjava/bin", đại loại là trông hơi giống như biến môi trường Path vậy (chú ý hướng của dấu slash ở đây khác với bình thường). Khi bạn muốn chạy một file xy.class, bạn gõ vào java xy. Nó chỉ chạy khi mà xy.class được tìm thấy ở một trong những thư mục được khai báo trong classpath mà thôi. VD với giá trị CLASSPATH như trên, lệnh java xy. chỉ chạy khi file xy.class được tìm thấy trong c: mpCounterPrjin hoặc c:myjavain
Nhiều bạn thắc mắc tại sao để xy.class trong thư mục hiện hành, sau đó gõ java xy mà nó vẫn ko chạy, đơn giản là vì thư mục hiện hành đó ko được khai báo trong classpath. Muốn thêm thư mục hiện hành vào cái classpath trên, cần phải nối đuôi nó thêm vào ;. thành ra: "c:/tmp/CounterPrj/bin;c:/myjava/bin;." (trong nhiều HĐH, dấu . là đại diện cho thư mục hiện hành)
Ở CLASSPATH trong Windows thì các thư mục khai báo phân cách nhau bởi dấu ";", nếu là Linux/Unix thì chúng phân cách nhau bằng dấu ":"

2.3) Chạy CounterPrj (2)
Project CounterPrj chứa 2 class có thể chạy được là: com.test.CounterTest và com.app.ClockApp vì 2 class này đều có method: public static main(…) để chạy

Ta có thể cho chạy cái nào cũng được với điều kiện là thư mục chứa chúng (thư mục c: mpin) được khai báo trong CLASSPATH (nhớ nhé, thư mục chứa lớp com.app.ClockApp là thư mục c: mpin chứ không phải là thư mục c: mpincomapp đâu, vì bên trong bin, ta mới tìm thấy được com.app.ClockApp mà, chứ trong bincomapp thì chẳng thể tìm thấy com.app.ClockApp đâu, chỉ tìm thấy ClockApp.class thôi! rất nhiều bạn luôn bị nhầm lẫn và khó hiểu ở đây dẫn tới ko thành công để chạy chương trình).

2.3) Chạy CounterPrj (3)
Nếu cứ mỗi lần chạy chương trình ta lại phải kiểm tra xem CLASSPATH có chứa thư mục c: mpin không thì hơi bất tiện. Chúng ta sẽ sử dụng option -cp của lệnh java, vậy cái option -cp là thế nào đây? Giả dụ ta thực hiện lệnh:
java -cp "c:/mybin;c:/lib" xy
có nghĩa là xy.class được tìm kiếm không chỉ trong các thư mục ở chỗ biến môi trường CLASSPATH, mà còn được tìm kiếm trong cả các thư mục c:mybin và c:lib nữa.
Nhớ là khi khai báo các đường dẫn trong CLASSPATH và trong option -cp phải dùng dấu slash trái "/" và phải tuyệt đối tôn trọng việc sử dụng chữ hoa chữ thường trong đường dẫn chứ ko thể lung tung như trong Windows.
Như vậy, muốn chạy class com.app.ClockApp, sử dụng lệnh
java -cp "c:/tmp/CounterPrj/bin" com.app.ClockApp
Nếu bạn đang ở ngay trong thư mục c: mpCounterPrj thì có thể sử dụng đường dẫn gián tiếp:
java -cp "./bin" com.app.ClockApp
Tóm lại toàn bộ những gì bạn phải làm trong chương này là gõ vào console Dos 2 dòng lệnh nho nhỏ, nhưng để hiểu được nó, và lý giải được tại sao lại ra kết quả như vậy thì cõ lẽ bạn nên đọc lại cả chương này thêm vài lần nữa. Croyez moi sur la parole!
Chương 3) Sử dụng IDE và tài liệu Help
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Việt Vương
Dung lượng: | Lượt tài: 5
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)