DIỄN ĐÀN NÂNG TẦM TRI THỨC
Would you like to react to this message? Create an account in a few clicks or log in to continue.

CUNG TOI HOC LAP TRINH JAVA

Go down

CUNG TOI HOC LAP TRINH JAVA Empty CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 9:21 am

I. CÁC ỨNG DỤNG JAVA:
1. Java lập trình ứng dụng Console
Bạn có thể dùng Java để viết các chương trình tính toán đơn thuần chỉ yêu cầu xuất nhập không cần dùng nhiều đến giao diện đồ hoạ. Đây là loại ứng dụng dễ viết nhất và rất thích hợp khi bạn mới bắt đầu tìm hiểu về Java (trông thế thôi chứ hơi khó đấy). Ứng dụng này còn gọi là dạng ứng dụng Console vì nó nhập xuất ở chế độ văn bản (text) tương tự như màn hình của DOS xa xưa. Dưới đây là một ứng dụng Console đơn giản, xuất ra màn hình chuỗi Hello World.
Dùng chương trình soạn text ví dụ như notepad để soạn tập tin HelloWorld.java và lưu trên ổ đĩa C: (chú ý phần tên tập tin trùng với tên class).
Code:

public class HelloWorld
{
 public static void main(String [] args)
  {
      System.out.println("Hello World");
  }
}
Bây giờ chúng ta Download file jdk1.6.0_<version> tại đây cài trên máy và thực thi file HelloWorld như sau:
Vào Cửa sổ Window,chọn Run -> cmd để mở cửa sổ Command của Windows hay màn hình Console nếu bạn chạy Java trên Linux hay Unix.Màn hình kiểu như sau:

C:\Program Files\Java\jdk1.6.0_10\bin>javac C:\HelloWord.java
C:\Program Files\Java\jdk1.6.0_10\bin>java HelloWord
Hello World
C:\Program Files\Java\jdk1.6.0_10\bin>

Việc thực thi ở trên chúng ta phải chỉ đường dẫn đầy đủ C:\Program Files\Java\jdk1.6.0_10\bin>. Tuy nhiên ta có thể chạy JDK không cần thiết lập đúng đường dẫn tới các file thực thi của JDK (javac.exe, java.exe, javadoc.exe, etc...) như trên, chúng ta cần thiết lập biến PATH để cho tiện dụng trong thực thi java từ bất kì thư mục nào.

Để thiết lập biến PATH cố định ta làm như trên Windows như sau:
1. Click Start > Control Panel > System on Windows XP or Start > Settings > Control Panel > System on Windows 2000.
2. Click Advanced > Environment Variables.
3. Thêm địa chỉ thư mục bin của JDK cho biến PATH trong cả User Variables và System Variables. Giá trị mặc định của PATH (nếu bạn cài JDK mặc định theo đường dẫn do JDK cung cấp) là:
C:\Program Files\Java\jdk1.6.0_<version>\bin
Chú ý các đường dẫn của biến PATH phải được cách biệt bởi dấu chấm phẩy (Wink và không phân biệt dạng chữ.

Thường thi ứng dụng Console được sử dụng rất rộng rãi, nó được dùng thường xuyên để minh hoạ ngôn ngữ, thuật toán, dùng để xử lý khối lượng công việc ở hậu trường không cần đến giao diện hay tương tác nhiều.
Tuy nhiên, Windows là một thế giới mạnh mẽ về giao diện đồ hoạ và hầu như phần lớn người dùng khi sử dụng chương trình đều thích tương tác với những thành phần đồ hoạ kiểu nút nhấn, combobox, menu, v.v.. Tạo một ứng dụng ngôn ngữ trực quan trong môi trường Microsoft Windows như Visual Basic, Delphi, PowerBuilder. Thế còn Java thì sao?!.


2. Java lập trình ứng dụng Desktop với Swing (JFC)
Lập trình ứng dụng Desktop với thư viện JFC (Java Foundation Class) chính là câu trả lời của Java về giao diện đồ hoạ thay thế Visual Basic của Microsoft. JFC là một thư viện rất phong phú đa dạng đủ để bạn xây dựng bất kỳ một ứng dụng giao diện đồ hoạ phức tạp nào của Windows đang có trên thị trường (Vista thì chưa bik được không ).
Đặc điểm nổi bật của giao diện đồ hoạ viết bằng thư viện JFC của Java là khả năng "Look & Feel". Bạn có thể dễ dàng thay đổi giao diện theo nhiều kiểu dáng khác nhau mà không cần phải viết lại mã chương trình.
VD.
Đổi lại thành giao diện của máy Sun Solarix chỉ bằng dòng lệnh:
UIManager.setLookAndFeel ("MetalLookAndFeel");

Có thể nói đây là khả năng rất mạnh của Java hơn hẳn những ngôn ngữ và môi trường lập trình trên Windows khác, như VIsual Basic, Delphi hay C++. Với khả năng này Java có thể chạy và tương thích giao diện với rất nhiều hệ điều hành. Bản thân ứng dụng Java khi chạy trên một hệ điều hành như Windows vẫn có thể trình bày giao diện đặc thù của mình như trên các hệ điều hành Mac, Macitosh hay Sun Solarix. Bạn có thể dùng JFC để xây dựng các ứng dụng Windows truyền thống. Nếu muốn sử dụng môi trường giao diện trực quan với các công cụ kéo thả như trong Visual Basic, bạn có thể sử dụng Jbuilder. JBuilder là một bộ công cụ lập trình Java rất mạnh và hiệu quả nhất hiện nay.


3. Java Applet
Applet là những mẫu chương trình nhỏ có thể nhúng và chạy ngay trong trang Web của trình duyệt (browser) như IE hay Netscpace (một số trình duyệt khác thì chịu). Có thể nói Applet đã làm cho Java nổi tiếng và đi cùng Java trong suốt thời kỳ đầu bùng nổ sử dụng Internet. Applet đem lại khả năng lập trình rất mạnh mẽ cho trang Web,điều mà những trình duyệt non trẻ chưa làm đuợc.
Về mặt thực tế, ngày nay Java Applet không còn được sử dụng nhiều nữa cho mục đích hỗ trợ lập trình ngay trong trang Web. Lý do là vì các trình duyệt Web đã ngày càng phát triển mạnh mẽ với khả năng lập trình bằng Java Script, VB Script và mở rộng của cú pháp HTML, XHTML, DHTML, v.v... Ngôn ngữ script (kịch bản đó) đã đẩy Java Applet xuống hàng thứ yếu. Và hiện tại do sự cạnh tranh ngày càng gay gắt giữa Sun và Microsoft. Microsoft từ phiên bản Windows 2000 với trình duyệt IE 6.0 trở đi không còn hỗ trợ Java Applet mặc định nữa. Muốn chạy Applet bạn phải cài thêm bộ hỗ trợ plug-in của Java cho trình duyệt (thật tiếc)
Microsoft đưa ra một dạng khác thay thế Applet đó là công nghệ ActiveX với khả năng đưa ứng dụng Desktop truyền thống vào chạy trên trang web của trình duyệt tương tự Applet. Tuy nhiên, ActiveX vẫn không được đánh giá cao khi chạy trình với trình duyệt bằng Applet. Applet của Java đảm bảo được tính an toàn, tin cậy và ít có khả năng gây lỗ hổng về bảo mật, chạy được trên nhiều trình duyệt khác nhau. Applet vẫn là một lựa chọn tốt nhất (tốt hơn ActiveX cái chắc) khi bạn muốn chuyển ứng dụng Desktop viết bằng Java sang chạy trên nền Web và Internet. Viết Applet khá thú vị, tôi sẽ giúp bạn xây dựng những Applet hữu ích với Java vào những bài sau.


4. Java và lập trình mạng
Có thể nói Java hỗ trợ rất mạnh về lập trình ứng dụng mạng với các lớp thư viện socket giúp đơn giản hoá quá trình kết nối và chuyển dữ liệu trên mạng, điều mà các ngôn ngữ lập trình trên Windows (Các ngôn ngữ như Visual Basic hay những ngôn ngữ có trong bộ Visual Studio 6.0 trở về trước) thiếu sót rất lớn. Với Java bạn có thể lập trình trên rất nhiều giao thức khác nhau, TCP/IP, UDP, HTTP, FTP, Telnet, các giao thức tự định nghĩa (User Defined Protocol) vv.... Những ứng dụng điển hình về lập trình mạng đó là: các chương trình Chat, chương trình chuyển dữ liệu trao đổi trực tuyến (Instant Messenger), gửi nhận thư điện tử (e-mail), chương trình Mail Server, Web Server ...


5. Java và lập trình ứng dụng Web
Web gắn liền với Internet. Java ngày càng trở nên mạnh mẽ và hiệu quả trong việc cung cấp các dịch vụ xử lý Web trên máy chủ. Với các công nghệ như JSP (Java Server Page), EJB, Java Web Server bạn có thể tạo được những ứng dụng Web hiệu quả tương đương với những công nghệ đang được Microsoft quảng cáo rầm rộ như ASP, ASP.NET. Một trang JSP có thể tạo và thể hiện trang Web động thay cho các trang HTML tĩnh.
Ví dụ.
Code:

  <html>
<%
  for (i=1; i<10 ; i++)
  {
%>
  <font size=<%=i%>> Hello Java </font><br>
 <%
  }
%>
</html>
Với trang JSP trên, sau khi chuyển cho trình chủ Web Server của Java xử lý, bạn sẽ nhận được nội dung trang HTML như sau:
Code:

<html>
  <font size=1> Hello Java </font><br>

  <font size=2> Hello Java </font><br>

  <font size=3> Hello Java </font><br>

  <font size=4> Hello Java </font><br>

  <font size=5> Hello Java </font><br>

  <font size=6> Hello Java </font><br>

  <font size=7> Hello Java </font><br>

  <font size=8> Hello Java </font><br>

  <font size=9> Hello Java </font><br>

  <font size=10> Hello Java </font><br>
</html>
JSP là một lựa chọn tốt nhất nếu bạn muốn triển khai ứng dụng Web hiệu quả. JSP ngày nay được hỗ trợ bởi rất nhiều trình chủ Web Server nổi tiếng như Apache, WebLogic, JRun, Java Web Server..... Điểm nổi bật của JSP hơn hẳn công nghệ ASP của Microsoft là ứng dụng Web viết bằng JSP có thể chạy và cài đặt trên nhiều hệ điều hành server. Bên cạnh đó JSP tích hợp hoàn hảo với môi trường Java và tận dụng hầu hết các lợi thế mà công nghệ Java đem lại. Web và ứng dụng Web ngày càng đuợc sử dụng rộng rãi trong cuộc sống. Đây là cơ hội để bạn và tôi cùng tìm hiểu về JSP.


Last edited by Blue_sky_IT on Tue May 27, 2008 5:53 pm; edited 2 times in total
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 10:35 am

6. Java và lập trình cơ sở dữ liệu
Cơ sở dữ liệu là yếu tố không thể thiếu trong hầu hết các ứng dụng. Việc hỗ trợ truy xuất cơ sở dữ liệu không phải lúc nào cũng đầy đủ trong các ngôn ngữ lập trình. Ví dụ như Visual Basic là môi trường lập trình Windows cung cấp rất nhiều cơ chế truy xuất dữ liệu thuận tiện như ODBC, ADO, ADO.NET, OLE DB trong khi với C/C++ thì tiện ích và thư viện truy xuất cơ sở dữ liệu không có nhiều. Lập trình các ứng dụng quản lý liên quan đến dữ liệu bằng C/C++ là công việc không đơn giản. Java nhận thức rất rõ điều này và hỗ trợ cơ chế truy xuất cơ sở dữ liệu mở với công nghệ JDBC (Java Database Connectivity). JDBC là chuẩn đặc tả cho phép lập trình truy xuất đến rất nhiều loại cơ sở dữ liệu khác nhau như Oracle, DB2, MySQL, SQL Server. Java hoàn toàn có thể dùng để lập trình các ứng dụng quản lý, các ứng dụng cần truy xuất dữ liệu dễ dàng. JDBC còn cho phép bạn truy cập dữ liệu thông qua mô hình đa tầng (n-tier) rất thích hợp cho các ứng dụng phân tán.


7. JavaBean
"Bean" là thuật ngữ chỉ các công nghệ thành phần (component) trong Java. JavaBean là những thành phần công cụ dùng xây dựng giao diện (như nút nhấn, các điều khiển tuỳ biến - tương tự OCX của Windows) cho ứng dụng. JavaBean cũng có thể là những đối tượng đơn thuần được đóng gói trong một lớp để xử lý các tác vụ logic. Một ứng dụng thường được lắp ghép bởi nhiều thành phần JavaBean kết hợp với nhau. JavaBean là một kiến trúc linh động, mềm dẻo của Java cho phép tích hợp và kế thừa các ứng dụng một cách module hoá theo công nghệ lập trình hướng đối tượng hiện đại.


8. Java và lập trình ứng dụng phân tán
Lập trình ứng dụng phân tán là mục tiêu hướng đến của kiến trúc lập trình hiện đại. Với môi trường Internet, mọi người cùng cộng tác cùng làm việc với nhau nên ứng dụng phải có khả năng hoạt động và xử lý "rời rạc" nghĩa là ứng dụng hiện đại không còn phải tập trung một chỗ nữa, lời gọi hàm từ một máy nhưng việc tính toán lại diễn ra trên một máy khác, cuối cùng kết quả trả về sẽ tương tự như việc gọi hàm hay đối tượng trên máy cục bộ. RMI, IIOP, Web Services là những công nghệ mà Java hướng đến môi trường phân tán.


9. Java lập trình điều khiển thiết bị
Nếu có ai đó nói rằng Java chạy quá chậm thì có lẽ họ đang so sánh Java với các ứng dụng hiện thấy trong môi trường Windows, Java chạy rất nhanh và hiệu quả trên các thiết bị như ĐTDĐ, máy Palm, thiết bị gia dụng (tủ lạnh,tivi....). Khi bạn chuyển sang môi trường Unix hay Linux hoặc các thiết bị cầm tay thì lập trình Java chiếm ưu thế tuyệt đối. Đây là nơi mà Microsoft và Windows chưa chiếm lĩnh được và việc lập trình trên những thiết bị này không ngôn ngữ nào tốt hơn Java.


10. Java một nền (platform) hệ điều hành và môi trường ứng dụng Internet
Java không đơn thuần là ngôn ngữ lập trình,Java còn hơn thế nữa!.Java có thể dùng thay thế hệ điều hành với một tập các hàm API (Application Programming Interface) phong phú.Mọi yêu cầu của hệ điều hành Java đều hỗ trợ như xuất nhập tập tin,quản lý người dùng,bảo mật,cơ sở dữ liệu,xử lý toán học,truy xuất mạng,kết nối Internet.Máy ảo Java (JVM-Java Virtual Machine) đóng vai trò là một máy tính giúp Java làm được mọi thứ.


Last edited by Blue_sky_IT on Tue May 27, 2008 12:19 pm; edited 3 times in total
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 11:52 am

11. Các khả năng mở rộng và mạnh mẽ khác của Java
Java còn rất nhiều khả năng khác mà chúng ta sẽ lần lượt tìm hiểu xuyến suốt qua các bài học nghiên cứu Java này. Dưới đây là một trong những điểm mạnh khác của Java.

* Máy ảo Java (JVM-Java Virtual Machine): Bất kỳ các lệnh lập trình nào cũng cần phải biên dịch ra mã máy và chuyển cho cho CPU của máy tính xử lý. Mã máy trong một kiến trúc CPU của máy tính không hoàn toàn giống nhau. Các tập lệnh mã máy trong CPU Intel khác với CPU của Macintosh, Solarix. Chính vì vậy một chương trình nguồn theo truyền thống khi biên dịch xong chỉ có thể chạy trên một kiến trúc CPU xác định, bên cạnh đó mỗi hệ điều hành chạy trên một kiến trúc máy tính lại có quy định về khuôn dạng file thực thi khác nhau. Chẳng hạn với CPU Intel bạn có thể chạy 2 hệ điều hành Windows và Linux nhưng chương trình thực thi trên Linux lại biên dịch ra khuôn dạng ELF. Mã nguồn viết cho một ứng dụng trên Windows muốn chạy được trên Linux lại phải biên dịch lại bằng trình biên dịch thích hợp. Máy ảo Java giải quyết trọn vẹn những khó khăn này. Chương trình Java được biên dịch ra mã của máy ảo Java (còn gọi là mã Java byte code). Chính vì lý do này, bất kỳ nơi nào máy ảo Java hiện hữu thì chương trình Java đều chạy được, Java đã đưa ra câu khẩu hiệu nổi tiếng đó là "Chương trình viết một lần và chạy được ở mọi nơi", hay chương trình Java có thể chạy được trên nhiều hệ điều hành và kiến trúc CPU khác nhau dựa vào khả năng của máy ảo Java. Sun System chịu trách nhiệm hỗ trợ máy ảo Java cho mọi hệ điều hành, đảm bảo tính đa nền (multi-platform) và đây cũng chính là thế mạnh của Java.
* Unicode: Khả năng hiển thị font chữ cho ngôn ngữ ở nhiều quốc gia khác nhau đuợc giải quyết trọn vẹn thông qua việc hỗ trợ bộ mã Unicode chuẩn trong tất cả các hàm xử lý chuỗi, lưu trữ, truyền dữ liệu...Với Java 1.4 trở đi bạn không còn phải đau đầu về vấn đề font chữ nữa. Java làm được mọi thứ mà Windows làm được và còn hơn thế nữa. Unicode chính là câu trả lời cho yêu cầu về quốc tế hoá phần mềm đang rất cần trong thời đại công nghệ thông tin bùng nổ toàn cầu như hiện nay.
* Hỗ trợ XML là ngôn ngữ đánh dấu (Extension Markup Language) dùng định nghĩa, mô tả cấu trúc dữ liệu được dùng phổ biến và thống nhất trong các ngôn ngữ lập trình hiện đại. XML mô tả dữ liệu ở dạng văn bản, rõ ràng XML mô tả cấu trúc dữ liệu theo cấu trúc cậy và thẻ. Java cung cấp rất nhiều lớp và hàm giúp bạn đơn giản hoá rất nhiều công việc và hàm giúp bạn đơn giản hoá rất nhiều công công việc truy cập, truyền tải và xử lý dữ liệu XML một cách hiệu quả và nhanh chóng.
* Lập trình đồ hoạ với Java2D và Java3D: Đồ hoạ là khả năng rất thú vị và luôn hấp dẫn người dùng lẫn lập trình viên. Các phiên bản trước của Java chỉ tập trung vào việc tính toán và các công nghệ mạng không chú trọng nhiều vào các hàm và thư viện đồ hoạ. Nhận rõ thiếu sót này, ngay từ phiên bản 1.2 Java đã bổ sung vào khả năng xử lý đồ hoạ cực kỳ mạnh mẽ đó là thư viện xử lý ảnh 2 chiều và 3 chiều. Phiên bản 1.4 trở đi đã hoàn thiện tính năng đồ hoạ với tốc độ xử lý ảnh rất tuyệt.
* Hướng đối tượng (Object Oriented): Một cuộc cách mạng triệt để của Java trong công nghiệp phần mềm đó là chính thức xây dựng Java là ngôn ngữ lập trình hoàn toàn hướng đối tượng. Trong Java mọi thứ đều là lớp (Class) và đối tượng (object). Khả năng hướng đối tượng của Java hơn hẳn C++. Ngay cả chương trình chính (Hàm main ()) của Java cũng phải được đặt trong một lớp cụ thể, không một hàm hay khai báo biến nào được đặt ngoài lớp. Ngoài ra java còn bổ sung cho kiến trúc và ngôn ngữ lập trình hướng đối tượng rất nhiều khái niệm mới hữu ích như giao diện (interface), ngoại lệ (exception), gói (package)...
* Phân tán (Distributed): Java được thiết kế để hỗ trợ các ứng dụng phân tán bằng các lớp Mạng (java.net). Ví dụ như với lớp URL của Java, một ứng dụng Java có thể dễ dàng được truy xuất từ máy chủ ở xa, nó có thể mở hoặc truy cập đến các đối tượng thông qua mạng cũng dễ dàng như lập trình viên sử dụng ngay trên máy tính của mình. Ngoài ra các lớp còn được chuẩn bị cho việc thiết lập các kết nối ở mức socket (socket-level connection), nghĩa là chỉ cần cắm vào hay kết nối được là có thể chạy như trên cùng một máy. Một chương trình Java có thể là sự kết hợp của rất nhiều file .class nằm rải rác trên nhiều vùng vật lý khác nhau như ổ đĩa hay các máy chủ khắp nơi trên Internet.
* Thông dịch (Interpreter): Java là một ngôn ngữ thông dịch (xét trên phương diện thực thì thì Java là một ngôn ngữ thông dịch trên cơ sở đã biên dịch trước thành bytecode) nên nó trở nên khả chuyển.Các ứng dụng Java có thể dễ dàng chạy trên các máy tính với các nền phần cứng khác nhau như Macintosh,Intel,Sun Microsystems,Alpha...chỉ cần đi kèm với các ứng dụng đó là bộ thông dịch,bộ gỡ rối và nhất là bộ thư viện kiểm soát mã thực thi(runtime library).Khi ấy các lập trình viên sẽ được tự do không còn lệ thuộc vào nội dung giới hạn của ngôn ngữ máy,mà chỉ chú ý đến các thư viện module dùng chung phục vụ cho ứng dụng.
* Mạnh mẽ (Robust): Dụng ý của Java là giúp lập trình viên có thể tạo nên những chương trình chắc chắn,không phạm nhiều vào những lỗi khi chạy (runtime error).Java không cho phép lập trình viên khai báo các biến một cách tuỳ tiện.Biến trong Java luôn phải tường minh.Ngay cả biến kiểu dãy (array) cũng không chỉ là một con trỏ như trong C mà là ngôn ngữ thực.Nhờ đó mà những lỗi thuờng gặp trong khi viết bằng ngôn ngữ C như cấp phát bộ nhớ,bộ nhớ tràn, trùng lặp bộ nhớ,... đã được giải quyết.
* Bảo mật (Security): Java được viết cho các ứng dụng chạy trên môi trường mạng/phân tán.Do đó Java phải được và đã được thiết kế sao cho có khả năng tạo được một hệ thống no-virus,không bị phá rối. Kỹ thuật xác minh của Java dựa vào cách mã hoá theo khoá công cộng.
Java cũng không hỗ trợ biến con trỏ. Một trình thông dịch bytecode sẽ kiểm tra chặt chẽ các mã byte, không cho bất kỳ hành vi không được phép nào thực hiện.
* Kiến trúc trung tính (Neutral architecture): Với Java, vấn đề đã trở nên đơn giản, khả năng thông dịch với nguồn mã lệnh đã được biên dịch dưới dạng bytecode cho phép tạo ra các máy Java ảo (Java Virtual Machine-JVM) trên mỗi hệ thống. Các ứng dụng Java sẽ chạy trên nền trung tính của các máy Java ảo đó dễ dàng. Trình thông dịch và hệ Java ảo rất nhỏ để có thể cài đặt trên các máy con mà không tốn nhiều tài nguyên.
* Khả chuyển: Như đã nói ở trên,do tạo được các máy Java ảo tương tích với môi trường được cài đặt tạo nên kiến trúc trung tính, các ứng dụng Java chỉ cần viết sao cho chạy được trên máy Java ảo đó là có thể cài đặt và chạy tốt trên mọi hệ thống ("Write Once,Run Anywhere" khẩu hiệu nổi tiếng của Java bạn có thể hiểu là "Viết 1 lần, chạy khắp mọi nơi"). Mặt khác, các kiểu dữ liệu của Java được định nghĩa không phụ thuộc vào bộ xử lý hay vào hệ điều hành mà các ứng dụng được cài đặt.
* Hiệu quả cao (High-performance): Rõ ràng so với các chương trình được biên dịch hoàn toàn bằng C hay C++, các chương trình Java không có hiệu quả cao hơn. Nhưng với tính năng giao diện đồ hoạ, sự đơn giản, nhỏ gọn, tính khả chuyển, ta cũng có thể nói là hiệu quả chung của các chương trình Java là đáng khích lệ so với tính phức tạp của C/C++.
Ở đây mình muốn nói đến điểm yếu của các chương trình Java là ở tốc độ thực thi.Nó khá chậm so với các ngôn ngữ khác. Đó là do các chương trình Java phải và chỉ chạy trên các máy Java ảo với chương trình trên một môi trường duy nhất, chúng ta có thể sử dụng việc liên kết với các chương trình nguồn (gốc-native program) như đã từng làm khi kết nối các đoạn ngôn ngữ máy (assembly language) vào các chương trình C/C++. Với Java 1.4 trở đi bạn không còn phải lo về tốc độ nữa, khả năng thực thi mã byte code của Java được tối ưu hoá với tốc độ thực thi không thua các chương trình C++. Bên cạnh đó, sự nâng cao tính năng của các máy tính cá nhân ngày nay, tốc độ của các chương trình Java cũng không còn là điều quan trọng.
* Đa tuyến (Multi-thread): Java đã đặt ra từ đầu tính năng hỗ trợ lập trình đa tuyến. Tính năng này cho phép chúng ta có thể thực hiện nhiều tiến trình song song và tương hỗ với nhau tránh được tính tuần tự nhàm chán và những thời gian chết trong chờ đợi.
* Linh động (flexible): Vì dùng trình thông dịch nên Java là ngôn ngữ rất năng động. Trong khi chạy, môi trường Java có thể tự mở rộng để liên kết với các lớp mới có thể ở một máy chủ ở xa trên mạng (hay trên Internet). Đó chính là thuận lợi to lớn của Java so với C/C++.
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 12:15 pm

II. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG:

1. Lập trình hướng đối tượng
Lập trình hướng đối tượng (OOP - Object Oriented Programming) là tư dauy của mô hình lập trình hiện đại. Hướng đối tượng tạo nên một cách suy nghĩ mới, thực tế hơn và linh hoạt hơn mô hình lập trình thủ tục truyền thống. Hướng đối tượng giúp lập trình viên dễ dàng mở rộng, bổ sung cho các chương trình của mình.
*Đối tượng
Thật ra khái niệm đối tượng không xa lạ với lập trình viên. Hàng ngày, chúng ta đã làm việc với các đối tượng như: đồng hồ, máy tính, điện thoại , ... và tất cả các thực thể trong đời sống. Khi làm việc với một đối tượng, chúng ta không tách biệt số lượng và phương thức. Như khi ta mở radio vậy ta không cần chú ý đến số liệu (như tần số của đài phát sóng)), không chú ý đến phương thức (như làm sao có âm thanh , máy chuyển đài như thế nào), mà ta chỉ cần mở công tắc điện, chọn đài và nằm xuống nghe nhạc.

Sử dụng OOP,ta cũng có sự đơn giản tương tự. Ta tạo một cấu trúc chứa dữ liệu và định nghĩa các phương thức để làm việc với dữ liệu. Như thế, đối tượng tạo và kết hợp dữ liệu bằng mã lệnh. Chúng ta có một đối tượng có đủ điều kiện để tồn tại và làm việc.

Trở lại với ví dụ trên, radio là một đối tượng với dữ liệu là hãng sản xuất, nguồn điện sử dụng, các băng tần, công suất loa ... và các phương thức là bật tắt công tắc nguồn, chuyển núm chọn băng tần , chuyển núm âm lượng , cắm tai nghe ... Đơn giản đối tượng Radio được định nghĩa trong ngôn ngữ lập trình với Java như sau:
Code:

 public class Radio {
 /*định nghĩa dữ liệu đối tượng*/
  float speed;
  double volume;

/*Hành động của đối tượng*/
  public void speedUp() {
  speed=spead + volume ;
  }

  public void stop (){
  speed = 0 ;
  }

  public void slowDown () {
                  speed = speed - volume
  }
}
Radio khi đó được gọi là một lớp. Bạn có thể có nhiều loại đối tượng Radio khác nhau như Sony, Panasonic... trong lập trình chúng được xem là đối tượng thuộc về một lớp. Ví dụ ta sử dụng lớp radio như sau:
Code:

  //Tạo đối tượng Radio tên Sony
  Radio sony=newRadio () ;
 
  //Vặn to volumn
  sony.speedUp () ;

Lưu ý:Bạn khoan hãy quan tâm đến các cú pháp Java, chúng ta sẽ tìm hiểu ngay trong phần này. Ở đây chúng ta đang dùng Java để minh hoạ tổng quát về triết lý hướng đối tượng.

Bước phát triển thứ 2 của khái niệm đối tượng là tạo được nhiều đối tượng mới trên nền của một đối tượng cao cấp. Đây còn gọi là tính kế thừa (inheritant).

Trở lại với ví dụ về đối tuợng Radio ở trên. Máy cassette, máy ghi đọc đĩa CD cũng có thể là những đối tượng mới có cùng chung những tính năng như: điều chỉnh tốc độ speed, tần số , ... nhưng chúng khác nhau ở các đặc điểm như máy CD có thêm đầu đọc ghi đĩa, có máy Radio hiện đại hơn kết hợp cả TC, điện thoại di động ngày nay cũng có thể làm một máy Radio chuyên dụng... Lớp đối tượng mới có thể xây dựng dựa trên lớp Radio như sau:
Code:

 class CDPlayer extends Radio {
       
    public void playCD () {
        ...
  }
}
Ở đây đối tượng CDPlayer ngoài các hoạt động điều chỉnh âm thanh như SpeedUp() , stop() còn có thêm phương thức playCD() điều mà lớp Radio không có. CDPlayer được xem là kế thừa từ Radio và thêm vào các yêu cầu của nó.

Vấn đề thứ ba là cần phải thấy được đối tượng là tập hợp nhièu thực thể. Cái sai lầm thường mắc phải trong lập trình thủ tục là ta nghĩ rằng dữ liệu là cố định. Ví dụ trong thủ tục xuất dữ liệu ra màn hình. Vấn đề xảy ra khi chúng ta phải chọn màn hình, thay đổi các điều kiện môi trường (loại màn hình,độ phân giải , card xử lý ... ) và phải xuất dữ liệu ra trên nhiều màn hình khác nhau. Kết quả việc xuất dữ liệu trên màn hình sẽ không giống nhau khi chuyển hướng chương trình sang một màn hình mới.

Trong trường hợp này, OOP xác định rõ ràng là thủ tục xuất dữ liệu ra màn hình là riêng của màn hình đó. Nghĩa là chúng ta có những đối tượng màn hình khác nhau.

Sau hết, nếu bạn nghĩ rằng : "Nếu tôi có hai màn hình khác nhau thì khi tôi muốn in ra màn hình, tôi cần phải xác định đúng vị trí cần in trên từng màn hình và chý ý đến các tương tác với người dùng ở những cửa sổ khác nhau", thì bạn nên biết rằng trong OOP, bạn không cần phải làm điều đó. Bởi vì sau khi bạn đã trừ tượng hoá đầy đủ các yếu tố của một đối tượng màn hình, lúc bạn viết thủ tục, các yếu tố cụ thể sẽ không còn ảnh hưởng đến thủ tục bạn viết, đối tượng màn hình sẽ tính toán giúp bạn.


2 Tổ chức mã lệnh
Lập trình hướng đối tượng sẽ tổ chức các mã lệnh của bạn một cách gọn gàng vì 2 nhân tố sau:
* Khi sử dụng đúng, OOP bắt buộc ta phải tổ chức mã lệnh thành nhiều đoạn nhỏ để dễ bề quản lý.
* Vì dùng OOP , mỗi đoạn mã nhỏ đó sẽ được tổ chức rất tự nhiên không cần ta suy nghĩ nhiều về việc tổ chức.
Đây là một đặc điểm mạnh bất ngờ của OOP.


3 java và hướng đối tượng
Sự hỗ trợ lập trình hướng đối tượng là cốt lõi của Java. Mọi hoạt động, mọi câu lệnh của Java đều phải tác động lên và qua các đối tượng. Mà tượng trưng cho chúng là các Lớp (class). Đối tượng là những mẫu (instance) của lớp. Trong ý nghĩa này,lớp có thể được xem như một cái khuôn đúc nên các đối tượng. Lấy hình chữ nhật làm ví dụ, ta có thể tạo ra một hình chữ nhật với toạ độ (x, y) của đỉnh thứ nhất, chiều dài, chiều rộng, cách di chuyển, phương thức đổi kích thước... Ta tạo một lớp Rectangle, và viết mã lệnh cho nó. Như thế khi thực hiện các mã lệnh ta cần tạo ra một mẫu lớp này. Mẫu ấy chính là một đối tượng Rectangle cụ thể. Tương tự như trong ví dụ trên Radio là một lớp làm khuôn đúc ra các đối tượng như Sony, Panasonic.


4. Sự kế thừa và thiết kế OOP
Để có thể phát triển thêm cho ứng dụng, có một công thức cần theo:

* Chia nhỏ mã lệnh thành đơn vị nhỏ nhất:
Khi viết một chương trình OOP. điều cần thiết đầu tiên là phải hình dung đủ các thành phần. Sau đó chia nhỏ chúng thành những đơn vị nhỏ nhất. Ví dụ: với yếu tố viên đạn, ta có các đơn vị yếu tố nhỏ hơn là cháy, kích thước viên đạn, tầm sát thương, số lượng.

* Xem xét các tính chất chung giữa các đơn vị nêu trên:
Bước kế tiếp là xem xét kỹ mối liên hệ chung giữa các đơn vị thành phần. Ví dụ trong chương trình quản lý thư viện, quản thủ thư viện và người mượn đều có tính chung là người: có tên tuổi, có chức vụ, có địa chỉ... Vậy ta có thể đưa cả 2 đối tượng này vào cùng một lớp?

* Xem xét sự khác nhau giữa các đơn vị:
Ngược lại trên, ta sẽ phân tích các đơn vị có điều gì khác biệt mà không thể gom lại. Trở lại ví dụ vừa nên, rõ ràng quản thủ thư viện là người quản lý, coi như sở hữu cuốn sách có nhiệm vụ phải nhận lại cuốn sách đã cho mượn, còn người mượn thì phải trả lại cuốn sách đã mượn.

* Tìm tính chất chung nhất của tất cả các đơn vị:
Rất hiếm khi ta không thể tìm thấy một tính chất nào chung cho mọi đơn vị. Như thế, có thể có một đơn vị nào đó không dùng chung bất kỳ tính chất nào với những đơn vị khác. Ta hãy xét một chương trình trò chơi chiến đấu, viên đạn, người bảo vệ, máy bay, mìn, nhà cửa,... rõ ràng là rất khác nhau, tuy vậy ta có thể thấy những cái chung như máy bay , người, viên đạn có thể di chuyển, mìn, nhà cửa, máy bay, người có thể bị nổ... Nhưng tính chất chung nào bao trùm lên mọi đơn vị? Có một điều rõ ràng mà bạn có thể quên đó là chúng đều có thể được vẽ trên màn hình. Như vậy chúng ta có lớp Draw_Object.

* Gom các tính chất chung và lặp lại
Ta sắp xếp các đơn vị có chung một số tính chất lại với nhau và lặp lại nhiều lần như vậy cho đến mức thấp nhất.

* Sử dụng các đối tượng để thêm vào theo yêu cầu
Trong nhiều trường hợp, người sử dụng yêu cầu thêm các yếu tố mới. Ta chỉ nên tạo những đối tuợng mới hơn là định nghĩa những biến mới. Điều này dễ thấy ở những ai đã từng lập trình với ngôn ngữ khác. Ta thường hay tạo ra một biến mới bất kỳ lúc nào ta cần. Với OOP, khi cần ta hãy tạo hẳn một đối tượng mới.


Last edited by Blue_sky_IT on Tue May 27, 2008 5:52 pm; edited 2 times in total
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 1:54 pm

III. CẤU TRÚC CHƯƠNG TRÌNH JAVA:

Hãy xem qua cấu trúc của chương trình Java HelloWorld đơn giản trên đây để bạn có một khái niệm cơ bản về xây dựng và thiết kế một ứng dụng kiểu Java. Thích hợp cho việc lập trình game sau này.
Như đã nêu, Java là hướng đối tượng nên tất cả các hàm phương thức đều phải nằm trong khai báo lớp của đối tượng. Kể cả chương trình chính.
Code:

public class HelloWorld
{
  ...
}
Trên đây là lớp ứng dụng HelloWorld với từ khoá class cho biết khai báo lớp và public cho biết lớp này là toàn cục cho phép tất cả các lớp khác sử dụng nó. Tuy nhiên lớp không phải là chương trình chính, chương trình chính được đặt bên trong lớp và được cài đặt như một phương thức tĩnh của lớp như sau:
Code:

public class HelloWorld
{
    public static void main (String [] args)
    {
      System.out.println("Hello World");
    }

Với C/C++ thường chương trình chính là hàm tên main(), với Java phương thức mang tên main() sẽ được xem như là điểm vào đầu tiên của chương trình chính. Khi bạn gọi java HelloWorld, trình diễn dịch Java sẽ nạp lớp HelloWorld vào bộ nhớ và tìm phương thức mang tên main() thực thi. Đi sâu vào khai báo của phương thức main() bạn sẽ thấy các từ khoá sau:

* public cho biết main() là phương thức chung có thể được triệu gọi từ môi trường bên ngoài.
* static cho biết mạin() là phương thức tĩnh (static). Phương thức tĩnh là phương thức có thể triệu gọi thông qua tên lớp mà không cần khởi tạo thể hiện của đối tượng.
* void cho biết main() là một phương thức không trả về trị
* String []args là mảng chuỗi chứa đối số truyền trên dòng lệnh khi bạn gọi chương trình Java.

Đây là cách truy xuất và gọi lệnh kiểu đối tượng trong Java trong đó:
* System là thư viện hệ thống chứa rất nhiều đối tượng giúp bạn xử lý xuất nhập tính toán
* out là một đối tượng trong thư viện System
* println là phương thức của đối tượng out dùng in mỗi chuỗi ra màn hình Console

Bạn hãy thử viết một chương trình thực tế hơn xem sao? chương trình tính 2 số nhập vào từ đối số dòng lệnh
Code:

  public class AddNumber
  {
        public static void main (String[] args)
        {
                Integer x=new Integer (args[0]);
                Integer y=new Integer (args[1]);

                int result=x.intValue () + y.intValue();
 
                System.out.println("Result="+result);
          }
  }
Bạn lưu nội dung chương trình trên vào file AddNumber.java biên dịch chương trình như sau:
C:\>javac AddNumber.java
Chạy chương trình:
C:\>java AddNumber 1 2
Result=3

Chương trình trên đây sử dụng 2 đối số dòng lệnh cộng và in ra kết quả.

Ghi chú (Comment)
Chúng ta rất cần các ghi chú để gợi nhớ lại quá trình suy nghĩ của mình, kiểm nghiệm các lập luận và nhất là khi chúng ta cần bổ sung, sửa chữa, nâng cấp chương trình. Các ghi chú không làm ảnh hưởng đến chương trình, chúng dành cho người lập trình đọc hiểu mã nguồn chi tiết hơn. Khi biên dịch Java sẽ bỏ qua các đoạn ghi chú.
Java hỗ trợ 3 cách ghi chú:
Code:
Bắt đầu              Kết thúc              Mục đích
  /*                          */                    Đoạn văn bị giới hạn là phần ghi chú
  //                        (none)                Phần câu văn còn lại là ghi chú
  /**                        */                  Phần câu văn bị giới hạn là phần ghi
                                                      chú cho JavaDoc

Cách thứ nhất và cách thứ 2 có nguồn gốc từ C/C++

Cách thứ nhất dùng khi cần ghi chú trên nhiều dòng.
Code:
/* Đoạn văn này là phần ghi chú được
chia ra làm nhiều dòng */
Cách thứ 2 ghi chú cho từng dòng lệnh, từ dấu // trở về cuối dòng là đoạn ghi chú:
public string s ; //phần ghi chú cho dòng lệnh này

Cách thứ ba là cách ghi chú mới chỉ dùng trong java. Nó giúp cho việc sưu liệu hoá chương trình (program documentation) của trình biên soạn tài liệu JavaDoc.

Chú ý: Ta không thể dùng tính xếp lồng để trình bày các ghi chú. Nếu trong cặp /* và */ có dùng ký hiệu // thì ý nghĩa của // bị bỏ qua, điều ngược lại cũng đúng.

Ví dụ chương trình AddNumber trên đây sẽ trở nên dễ hiểu hgơn nếu bạn đặt vào các ghi chú:
Code:
 
  /*Chương trình Java cộng 2 số
  Các số được nhập vào từ đối số dòng lệnh
  */
  public class AddNumber
  {
      /*Chương trình chính*/
      public static void main (String[]args)
      {
            /* Chuyển đổi số từ chuỗi thành số nguyên */
            Integer x=new Integer (args[0]) ; //số thứ nhất
            Integer y=new Integer (args[1]) ; //Số thứ hai
   
            //Lấy về giá trị và cộng ô 1
            int result=x.intvalue () + y.intValue ();
            //In kết quả sau khi tính
            System.out.println("result="+result);
      }
  }


Last edited by Blue_sky_IT on Tue May 27, 2008 5:51 pm; edited 1 time in total
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  chantroitinhoc Tue May 27, 2008 5:49 pm

IV. CÁC KIỂU DỮ LIỆU:
[Only admins are allowed to see this image]



V. KHAI BÁO BIẾN:
1. Khai báo biến
Cú pháp:
type name [= InitValue];
trong đó: type là kiểu dữ liệu của biến, name là tên biến, InitValue là giá trị khởi tạo của biến, đây là phần tuỳ chọn, nếu bỏ qua phần này thì giá trị ban đầu của biến được khởi tạo là giá trị mặc định.
Chú ý: Nếu muốn khai báo nhiều biến có cùng dữ liệu ta có thể khai báo trên một dòng với các biến cách nhau bởi dấu phẩy (,)

2. Phạm vi biến
Mỗi biến được khai báo có một phạm vi hoạt động, phạm vi của biến là nơi mà biến có thể được truy cập điều này xác định cả tính thấy được và thời gian sống của biến.
[Only admins are allowed to see this image]

- Biến phạm vi lớp là biến được khai báo trong lớp nhưng bên ngoài các phương thức và hàm tạo, tuy nhiên việc khai báo phải được xuất hiện trước khi sử dụng.
- Biến phạm vi cục bộ là biến được khai báo trong một khối, phạm vi của biến tính từ điểm biến được khai báo cho đến cuối khối mà biến khai báo.
Ví dụ:
Code:

 {
    int i = 1; //chỉ có i hữu dùng
    {
          int j = 10; //cả i và j đều hữu dùng.
    }
    //chỉ có i hữu dùng
    //j không thể dùng được vì nằm ngoài phạm vi
}
Chú ý: Ta không thể làm điều sau cho dù nó có thể trong C/C++
Code:

{
    int i = 1;
    {
        int i = 10; //không được phép vì có một biến trùng tên với nó.
    }
}
chantroitinhoc
chantroitinhoc
Admin

Posts : 149
Join date : 2008-01-16

http://chantroitinhoc.niceboard.net

Back to top Go down

CUNG TOI HOC LAP TRINH JAVA Empty Re: CUNG TOI HOC LAP TRINH JAVA

Post  Sponsored content


Sponsored content


Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum