Điều quan trọng là không phải lúc nào applet cũng bắt đầu từ ban đầu. Mà nó bắt đầu từ vị trí tiếp theo của quá trình thực thi trước đó.
Ngoài những phương thức cơ bản này, còn có những phương thức ‘paint()’ và ‘repaint()’. Phương thức paint() dùng để hiển thị một đường thẳng (line), text, hoặc một hình ảnh trên nền applet. Đối số của phương thức này là đối tượng của lớp Graphics. Lớp này thuộc gói java.awt. Câu lệnh sau được dùng để import lớp Graphics:
import java.awt.Graphics;
Phương thức ‘repaint()’ được dùng khi cửa sổ cần cập nhật lại. Phương thức này chỉ cần một thông số. Tham số này là đối tượng của lớp Graphics.
Applet sử dụng phương thức ‘showStatus()’ để hiển thị thông tin trên thanh trạng thái. Phương thức có tham số thuộc kiểu dữ liệu String. Để lấy các thông tin của applet, user có thể overide phương thức ‘getAppletInfo()’ của lớp Applet. Phương thức này trả về 1 đối tượng kiểu String.
Khai báo lớp cho Applet
Dùng lệnh khai báo lớp:
public class Ten_Lop extends Applet
{ }
Ở đây, Ten_Lop là tên tượng trưng, về sau khi viết Applet ta sẽ dùng các tên cụ thể.
Tạo trang web có thẻ Applet bên trong
Cấu trúc thẻ Applet:
Trong đó: "LopApplet.class" là một lớp Applet của Java. X là bề rộng và Y là bề cao đo bằng pixel của một vùng màn hình trong trang Web có chèn thẻ Applet vào.
Để có lớp "LopApplet.class" ta phải viết chương trình nguồn Java Applet, xong biên dịch chương trình nguồn để tạo lớp "LopApplet.class", sau đó đưa lớp Applet vào thẻ Applet và chèn thẻ Applet vào trang Web.
Sự khác nhau giữa application và applet:
Để thực thi các application chúng ta dùng trình thông dịch java, trong khi đó applet có thể chạy được trên các trình duyệt (có hổ trợ Java) hay sử dụng công cụ appletViewer, công cụ này đi kèm với JDK.
Quá trình thực thi của application bắt đầu từ phương thức ‘main()’. Tuy nhiên applet thì không làm như vậy.
Các application sử dụng ‘System.out.println()’ để hiển thị kết quả ra màn hình trong khi đó applet sử dụng phương thức ‘drawString()’ để xuất ra màn hình.
Một điều đáng lưu ý là một chương trình Java đơn lẻ thì có thể vừa là application vừa là applet. Chức năng của applet được bỏ qua khi nó được thực thi như là một application và ngược lại.
22 trang |
Chia sẻ: aloso | Lượt xem: 1867 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu công nghệ WebGIS và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
LỜI MỞ ĐẦU
Ngày nay, GIS là một công nghệ “đắt giá”, có hàng trăm nghìn người trên thế giới đang làm việc với nó. Các nhà chuyên môn của hầu hết các lãnh vực đang dần nhận thấy lợi ích trong phương pháp suy nghĩ và làm việc theo phương diện địa lý. GIS không phải chỉ dùng để tạo ra những bản đồ tĩnh, mà nó còn cho phép tạo ra các bản đồ đẹp nhiều màu sắc và hơn thế nữa là khả năng tạo bản đồ động. Khả năng tạo lập bản đồ động giúp người dùng có thể lựa chọn và loại bỏ bất cứ các thành phần nào trên bản đồ nhằm phân tích một cách nhanh chóng các nhân tố khác biệt ảnh hưởng đến mô hình và ngoài ra giúp việc đưa ra các quyết định đối với những vấn đề phức tạp.
Chương 1: Lý thuyết cơ sở
Hệ thống thông tin địa lý
Từ vài thập niên trở lại đây, công nghệ GIS (Geographical Information Systems) đã có những bước phát triển và ứng dụng không chỉ trong lĩnh vực Địa lý, mà trong nhiều lĩnh vực khác của khoa học và của cuộc sống hàng ngày như: đô thị hoá, thương mại, phát triển cơ sở hạ tầng, bản đồ điện tử, hoạt động quân sự ..
Các khái niệm cơ bản về GIS
Khái niệm GIS
Hệ Thông tin địa lý (GIS) là một công cụ máy tính để lập bản đồ và phân tích các sự vật, hiện tượng thực trên trái đất. Công nghệ GIS kết hợp các thao tác cơ sở dữ liệu thông thường (như cấu trúc hỏi đáp) và các phép phân tích thống kê, phân tích địa lý, trong đó phép phân tích địa lý và hình ảnh được cung cấp duy nhất từ các bản đồ. Những khả năng này phân biệt GIS với các hệ thống thông tin khác và khiến cho GIS có phạm vi ứng dụng rộng trong nhiều lĩnh vực khác.
GIS cho phép tạo lập bản đồ, phối hợp thông tin, khái quát các viễn cảnh, giải quyết các vấn đề phức tạp, và phát triển các giải pháp hiệu quả mà trước đây không thực hiện được. GIS là một công cụ được các cá nhân, tổ chức, trường học, chính phủ và các doanh nghiệp sử dụng nhằm hướng tới các phương thức mới giải quyết vấn đề.
Lập bản đồ và phân tích địa lý không phải là kỹ thuật mới, nhưng GIS thực thi các công việc này tốt hơn và nhanh hơn các phương pháp thủ công cũ. Trước công nghệ GIS, chỉ có một số ít người có những kỹ năng cần thiết để sử dụng thông tin địa lý giúp ích cho việc giải quyết vấn đề và đưa ra các quyết định. GIS được sử dụng để cung cấp thông tin nhanh hơn và hiệu quả hơn cho các nhà hoạch định chính sách. Các cơ quan chính phủ dùng GIS trong quản lý các nguồn tài nguyên thiên nhiên, trong các hoạt động quy hoạch, mô hình hoá và quan trắc.
Hệ thống thông tin địa lý là hệ thống quản lý, phân tích và hiển thị tri thức địa lý, tri thức này được thể hiện qua các tập thông tin:
Các bản đồ: giao diện trực tuyến với dữ liệu địa lý để tra cứu, trình bày kết quả và sử dụng như là một nền thao tác với thế giới thực
Các tập thông tin địa lý: thông tin địa lý dạng file và dạng cơ sở dữ liệu gồm các yếu tố, mạng lưới, topology, địa hình, thuộc tính
Các mô hình xử lý: tập hợp các quy trình xử lý để phân tích tự động
Các mô hình dữ liệu: GIS cung cấp công cụ mạnh hơn là một cơ sở dữ liệu thông thường bao gồm quy tắc và sự toàn vẹn giống như các hệ thông tin khác. Lược đồ, quy tắc và sự toàn vẹn của dữ liệu địa lý đóng vai trò quan trọng
Metadata: hay tài liệu miêu tả dữ liệu, cho phép người sử dụng tổ chức, tìm hiểu và truy nhập được tới tri thức địa lý..
Ngày nay, GIS là một ngành công nghiệp hàng tỷ đô la với sự tham gia của hàng trăm nghìn người trên toàn thế giới. GIS được dạy trong các trường phổ thông, trường đại học trên toàn thế giới. Các chuyên gia của mọi lĩnh vực đều nhận thức được những ưu điểm của sự kết hợp công việc của họ và GIS.
Các thành phần của GIS
GIS được kết hợp bởi năm thành phần chính: phần cứng, phần mềm, dữ liệu, con người và phương pháp.
Phần cứng
Phần cứng là hệ thống máy tính trên đó một hệ GIS hoạt động. Ngày nay, phần mềm GIS có khả năng chạy trên rất nhiều dạng phần cứng, từ máy chủ trung tâm đến các máy trạm hoạt động độc lập hoặc liên kết mạng.
Phần mềm
Phần mềm GIS cung cấp các chức năng và các công cụ cần thiết để lưu giữ, phân tích và hiển thị thông tin địa lý. Các thành phần chính trong phần mềm GIS là:
Công cụ nhập và thao tác trên các thông tin địa lý
Hệ quản trị cơ sở dữ liệu(DBMS)
Công cụ hỗ trợ hỏi đáp, phân tích và hiển thị địa lý
Giao diện đồ hoạ người-máy (GUI) để truy cập các công cụ dễ dàng
Dữ liệu
Có thể coi thành phần quan trọng nhất trong một hệ GIS là dữ liệu. Các dữ liệu địa lý và dữ liệu thuộc tính liên quan có thể được người sử dụng tự tập hợp hoặc được mua từ nhà cung cấp dữ liệu thương mại. Hệ GIS sẽ kết hợp dữ liệu không gian với các nguồn dữ liệu khác, thậm chí có thể sử dụng DBMS để tổ chức lưu giữ và quản lý dữ liệu.
Dữ liệu không gian có thể đến từ nhiều nguồn khác nhau như: số liệu tính toán thống kê, báo cáo, các quan trắc thực địa, ảnh vệ tinh, ảnh máy bay, bản đồ giấy (dạng analog). Kỹ thuật hiện đại về viễn thám và GIS có khả năng cung cấp thông tin không gian bao gồm các thuộc tính địa lý, khuôn dạng dữ liệu, tỷ lệ bản đồ và các số liệu đo đạc.
Con người
Công nghệ GIS sẽ bị hạn chế nếu không có con người tham gia quản lý hệ thống và phát triển những ứng dụng GIS trong thực tế. Vì GIS la một hệ thống tổng hợp của nhiểu công việc kỹ thuật, do đó đòi hỏi người điều hành phải được đào tạo và có kinh nghiệm trong nhiểu lĩnh vực. Hơn nữa sự phát triển không ngừng của các kỹ thuật phần cứng và phần mềm đòi hỏi người điều hành phải luôn được đào tạo. Những yêu cầu cơ bản về người điều hành bao gồm các vấn đề sau: có kiến thức cơ bản về địa lý, bản đồ, máy tính và công nghệ tin.
Người sử dụng GIS có thể là những chuyên gia kỹ thuật, người thiết kế và duy trì hệ thống, hoặc những người dùng GIS để giải quyết các vấn đề trong công việc.
Phương pháp
Đó là tập hợp các quy định, quy phạm, tiêu chuẩn, định hướng, chủ trương ứng dụng của nhà quản lý, các kiến thức chuyên ngành và các kiến thức về công nghệ thông tin.
Một hệ GIS thành công theo khía cạnh thiết kế và luật thương mại là được mô phỏng và thực thi duy nhất cho mỗi tổ chức.
Các nhiệm vụ của GIS
Mục đích chung của các Hệ Thông tin địa lý là thực hiện sáu nhiệm vụ sau:
Nhập dữ liệu
Thao tác dữ liệu
Quản lý dữ liệu
Hỏi đáp và phân tích
Hiển thị
1.1.2.1 Nhập dữ liệu
Trước khi dữ liệu địa lý có thể được dùng cho GIS, dữ liệu này phải được chuyển sang dạng số thích hợp. Quá trình chuyển dữ liệu từ bản đồ giấy sang các file dữ liệu dạng số được gọi là quá trình số hoá.
Công nghệ GIS hiện đại có thể thực hiện tự động hoàn toàn quá trình này với công nghệ quét ảnh cho các đối tượng lớn; những đối tượng nhỏ hơn đòi hỏi một số quá trình số hoá thủ công (dùng bàn số hoá). Ngày nay, nhiều dạng dữ liệu địa lý thực sự có các định dạng tương thích GIS. Những dữ liệu này có thể thu được từ các nhà cung cấp dữ liệu và được nhập trực tiếp vào GIS.
1.1.2.2 Thao tác dữ liệu
Có những trường hợp các dạng dữ liệu đòi hỏi được chuyển dạng và thao tác theo một số cách để có thể tương thích với một hệ thống nhất định. Ví dụ, các thông tin địa lý có giá trị biểu diễn khác nhau tại các tỷ lệ khác nhau (hệ thống đường phố được chi tiết hoá trong file về giao thông, kém chi tiết hơn trong file điều tra dân số và có mã bưu điện trong mức vùng). Trước khi các thông tin này được kết hợp với nhau, chúng phải được chuyển về cùng một tỷ lệ (mức chính xác hoặc mức chi tiết). Ðây có thể chỉ là sự chuyển dạng tạm thời cho mục đích hiển thị hoặc cố định cho yêu cầu phân tích. Công nghệ GIS cung cấp nhiều công cụ cho các thao tác trên dữ liệu không gian và cho loại bỏ dữ liệu không cần thiết.
1.1.2.3 Quản lý dữ liệu
Ðối với những dự án GIS nhỏ, có thể lưu các thông tin địa lý dưới dạng các file đơn giản. Tuy nhiên, khi kích cỡ dữ liệu trở nên lớn hơn và số lượng người dùng cũng nhiều lên, thì cách tốt nhất là sử dụng hệ quản trị cơ sở dữ liệu (DBMS) để giúp cho việc lưu giữ, tổ chức và quản lý thông tin. Một DBMS chỉ đơn giản là một phần mền quản lý cơ sở dữ liệu.
Có nhiều cấu trúc DBMS khác nhau, nhưng trong GIS cấu trúc quan hệ tỏ ra hữu hiệu nhất. Trong cấu trúc quan hệ, dữ liệu được lưu trữ ở dạng các bảng. Các trường thuộc tính chung trong các bảng khác nhau được dùng để liên kết các bảng này với nhau. Do linh hoạt nên cấu trúc đơn giản này được sử dụng và triển khai khá rộng rãi trong các ứng dụng cả trong và ngoài GIS.
1.1.2.4. Hỏi đáp và phân tích
Một khi đã có một hệ GIS lưu giữ các thông tin địa lý, có thể bắt đầu hỏi các câu hỏi đơn giản như:
Ai là chủ mảnh đất ở góc phố?
Hai vị trí cách nhau bao xa?
Vùng đất dành cho hoạt động công nghiệp ở đâu?
Và các câu hỏi phân tích như:
Tất cả các vị trí thích hợp cho xây dựng các toà nhà mới nằm ở đâu?
Kiểu đất ưu thế cho rừng sồi là gì?
Nếu xây dựng một đường quốc lộ mới ở đây, giao thông sẽ chịu ảnh hưởng như thế nào?
GIS cung cấp cả khả năng hỏi đáp đơn giản "chỉ và nhấn" và các công cụ phân tích tinh vi để cung cấp kịp thời thông tin cho những người quản lý và phân tích. Các hệ GIS hiện đại có nhiều công cụ phân tích hiệu quả, trong đó có hai công cụ quan trọng đặc biệt:
Phân tích liền kề
Tổng số khách hàng trong bán kính 10 km khu hàng?
Những lô đất trong khoảng 60 m từ mặt đường?
Ðể trả lời những câu hỏi này, GIS sử dụng phương pháp vùng đệm để xác định mối quan hệ liền kề giữa các đối tượng.
Phân tích xếp chồng
Xếp chồng là quá trình tích hợp các lớp thông tin khác nhau. Các thao tác phân tích đòi hỏi một hoặc nhiều lớp dữ liệu phải được liên kết vật lý. Sự xếp chồng này, hay liên kết không gian, có thể là sự kết hợp dữ liệu về đất, độ dốc, thảm thực vật hoặc sở hữu đất với định giá thuế.
1.1.2.5 Hiển thị
Với nhiều thao tác trên dữ liệu địa lý, kết quả cuối cùng được hiển thị tốt nhất dưới dạng bản đồ hoặc biểu đồ. Bản đồ khá hiệu quả trong lưu giữ và trao đổi thông tin địa lý. GIS cung cấp nhiều công cụ mới và thú vị để mở rộng tính nghệ thuật và khoa học của ngành bản đồ. Bản đồ hiển thị có thể được kết hợp với các bản báo cáo, hình ảnh ba chiều, ảnh chụp và những dữ liệu khác (đa phương tiện).
Cấu trúc dữ liệu Raster và Vecto
Hình 1.1 Mô hình dữ liệu Raster và Vecto
Cấu trúc dữ liệu Raster
Mô hình raster biểu diễn không gian như là một ma trận số nguyên, mỗi giá trị số nguyên đại diện cho một thuộc tính, vị trí của số nguyên chính là vị trí của đối tượng
Liên hệ với thế giới thực: mỗi pixel sẽ tương ứng với một ô nào đó trong thế giới thực.
Trong cấu trúc raster:
Đường được biểu diễn bằng những pixel có cùng giá trị f(x,y) liên tiếp nhau.
Vùng được xác định thành một mạng gồm nhiều pixel có cùng giá trị thuộc tính f(x,y).
Cấu trúc dữ liệu Vecto
Các đối tượng không gian khi biểu diễn ở cấu trúc dữ liệu vector được tổ chức dưới dạng điểm (point), đường (line) và vùng (polygon), và được biểu diễn trên một hệ thống tọa độ nào đó. Đối với các đối tượng biểu diễn trên mặt phẳng, mỗi đối tượng điểm được biểu diễn bởi một cặp tọa độ (x, y); đối tượng đường được xác định bởi một chuỗi liên tiếp các điểm (vertex), đoạn thẳng được nối giữa các điểm (vertex) hay còn gọi là cạnh (segment), điểm bắt đầu và điểm kết thúc của một đường gọi là các nút (node); đối tượng vùng được xác định bởi các đường khép kín.
Hai loại cấu trúc được biết đến trong cấu trúc dữ liệu vector là cấu trúc Spaghetti và cấu trúc Topology. Cấu trúc Spaghetti ra đời trước và được sử dụng cho đến ngày nay ở một số các phần mềm GIS như: phần mềm Arcview GIS, ArcGIS, MapInfo,… Cấu trúc Topology ra đời trên nền tảng của mô hình dữ liệu cung – nút (Arc - Node).
Ưu nhược điểm của cấu trúc Raster và Vecto
STT
RASTER
VECTOR
1
Cấu trúc dữ liệu đơn giản
Cấu trúc dữ liêu phức tạp hơn raster
2
Các thao tác chập bản đồ thực hiện dễ dàng và đơn giản
Các phép chập bản đồ khó thực hiện được
3
Bài toán mô hình thực hiện dễ dàng
Bài toán mô hình khó thực hiện
4
Dữ liệu cồng kềnh
Dữ liệu gọn (chiếm ít bộ nhớ) hơn mô hình raster
5
Mối quan hệ topo khó có thể thể hiện được. Bài toán mạng khó thực hiện
Cho phép mã hóa topo hiệu quả hơn và vì vậy cho phép thực hiện các phép liên quan đến các thông tin topo (như trong phân tích mạng)
6
Thích hợp với việc sử dụng dữ liệu viễn thám
Thích hợp với dữ liệu đo đạc trực tiếp
Các công nghệ liên quan
Desktop mapping
Là desktop mapping system sử dụng bản đồ để tổ chức dữ liệu và tương tác người dùng. Trọng tâm của hệ thống này là thành lập bản đồ: bản đồ là cơ sở dữ liệu. Phần lớn các hệ thống Desktop Mapping đều hạn chế hơn so với GIS về khả năng quản lý dữ liệu, phân tích không gian và khả năng tuỳ biến. Các hệ thống Desktop mapping hoạt động trên các máy tính để bàn như PC, Macintosh, và các máy trạm UNIX nhỏ.
CAD (Trợ giúp thiết kế nhờ máy tính)
Hệ thống CAD trợ giúp cho việc tạo ra các bản thiết kế xây dựng nhà và cơ sở hạ tầng. Tính năng này đòi hỏi các thành phần của những đặc trưng cố định được tập hợp để tạo nên toàn bộ cấu trúc. CAD yêu cầu một số quy tắc về việc tập hợp các thành phần và các khả năng phân tích rất giới hạn. Hệ thống CAD có thể được mở rộng để hỗ trợ bản đồ nhưng thông thường bị giới hạn trong quản lý và phân tích các cơ sở dữ liệu địa lý lớn.
Viễn thám và GPS (Hệ thống định vị toàn cầu)
Viễn thám là ngành khoa học nghiên cứu bề mặt trái đất sử dụng kỹ thuật cảm biến như quay camera từ máy bay, các trạm thu GPS hoặc các thiết bị khác. Các thiết bị cảm biến này thu thập dữ liệu dạng ảnh và cung cấp các khả năng thao tác, phân tích và mô phỏng những ảnh này. Do thiếu các tính năng phân tích và quản lý dữ liệu địa lý, nên không thể gọi là GIS thực sự.
DBMS (Hệ quản trị cơ sở dữ liệu)
Hệ quản trị cơ sở dữ liệu chuyên về lưu trữ và quản lý tất cả các dạng dữ liệu bao gồm cả dữ liệu địa lý. Nhiều hệ GIS đã sử dụng DBMS với mục đích lưu trữ dữ liệu. DBMS không có các công cụ phân tích và mô phỏng như GIS.
WebGIS và ứng dụng
1.2.1. Khái niệm
WebGIS là một hệ thống thông tin địa lý được phân bổ qua môi trường mạng máy tính để tích hợp, phân phối và truyển tải thông tin địa lý trực diện trên WWW (World Wide Web) thông qua Internet.
Yêu cầu của WebGIS là phải có phần mềm chạy trên nền độc lập, sử dụng mạng theo tiêu chuẩn TCP/IP có thể kết nối đến Internet và trình duyệt Web.
1.2.2 Ứng dụng của WebGIS
Khả năng phân phối thông tin rộng rãi trên toàn cầu
Người dùng Internet có thể truy cập đến các ứng dụng GIS mà không phải mua phần mềm.
Đối với phần lớn người dùng không có kinh nghiệm về GIS thì việc sử dụng WebGIS sẽ đơn giản hơn việc sử dụng các ứng dụng GIS loại khác.
WebGIS cho phép thêm các chức năng GIS chạy trên cơ sở mạng như thương mại, chính phủ, giáo dục. Nhiều ứng dụng loại này chạy trên mạng cục bộ như một phương tiện phân phối và sử dụng dữ liệu địa lý không gian (geospatial data).
Hiện nay trên thế giới có rất nhiều công nghệ WebGIS như công nghệ MapServer, GeoServer, ESRI, Mapinfo …
Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Java ra đời và được các nhà nghiên cứu của công ty SunMicrosystem giới thiệu vào năm 1995. Sau khi ra đời không lâu, ngôn ngữ lập trình này đã được sử dụng rộng rãi và phổ biến đối với các lập trình viên chuyên nghiệp cũng như các nhà phát triển phần mềm.
Java là một nền tảng phát triển các ứng dụng phần mềm, đánh dấu sự trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong nghành phần mềm. Mô hình máy ảo Viirtual Machine đã cho phép các ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau.
Không chỉ là một ngôn ngữ, Java còn là một nền tảng phát triển và triển khai ứng dụng trong đó máy ảo Java, bộ thông dịch có vai trò trung tâm. Hiện nay, công nghệ Java được chia làm ba bộ phận:
J2SE: Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng dụng trên desktop và định nghĩa các phần thuộc nhân của Java.
J2EE: Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server). Bộ phận hay được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java để làm các ứng dụng web.
J2ME: Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo và những ngữ lập trình (programming language)
Java (công nghệ) là một công nghệ xây dựng các ứng dụng phần mềm. Nó được coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần.
1.3.1 Các đặc điểm và các thành phần cơ bản của Java
1.3.1.1. Các đặc điểm của ngôn ngữ lập trình Java
Sun Mycrosystem đã nêu lên đặc điểm của Java như sau:" Java là 1 ngôn ngữ đơn giản, hướng đội tượng, phân tán, thông dịch lẫn biên dịch, mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động."
1.3.1.2. Các thành phần cơ bản của Java
Cũng như các ngôn ngữ lập trình khác, ngôn ngữ lập trình Java cũng bao gồm các thành phần cơ bản của một ngôn ngữ lập trình:
Các kiểu dữ liệu cơ sở: Kiểu số nguyên, kiểu chấm động, kiểu char, kiểu boolean.
Ghi chú: sử dụng ký hiệu
// ghi chú trên một dòng
/* ghi chú trên nhiều dòng */
Các từ khoá: đó là các từ dùng riêng trong Java, không được sử dụng các từ khoá để đặt tên biến hay các định danh khác.
Khai báo biến và hằng
Các toán tử và biểu thức
Mảng
1.3.1.3. Cấu trúc điều khiển
Cấu trúc điều khiển là các lệnh kiểm tra và điều khiển quá trình thực hiện các câu lệnh sao cho chương trình thực hiện đúng và đạt được yêu cầu đặt ra.
Cấu trúc lựa chọn: lệnh if, switchcase
Cấu trúc lặp: vòng lặp for, do … while, while
Lệnh break, continue và label (nhãn)
1.3.2 Xây dựng chương trình Java
1.3.2.1 Phương thức, lớp và chương trình Java
Chương trình của java được xây dựng từ lớp và lớp dùng phương thức để xử lí biến.
Phương thức(method)
Phương thức trong Java chính là các khối lệnh đơn vị thực hiện những chức năng riêng biệt. Vì trong Java không có một hàm nào là toàn cục mà luôn phải gắn với một đối tượng cụ thể, thể hiện hành vi ứng xử của đối tượng đó. Nên trong ngôn ngữ Java sẽ dùng khái niệm phương thức thay cho khái niệm hàm.
Định nghĩa một phương thức:
(, , … )
{ }
là các từ khoá xác định phạm vi truy xuất của phương thức
là các từ khoá cho biết cách thức truy xuất của phương thức.
là giá trị trả về của phương thức. void là phương thức không trả về giá trị.
Khi muốn một phương thức được thực hiện, ta chỉ cần gọi tên của phương thức và gán các đối số là các giá trị hay các biến có cùng kiểu với các đối số đã được khai báo.
Phương thức tạo dựng (Constructor)
Phương thức tạo dựng( hay còn gọi là phương thức khởi tạo) là phương thức có vai trò quan trọng trong lớp. Phương thức tạo dựng dùng để gán các giá trị ban đầu và tạo ra một đối tượng cụ thể.
Phương thức tạo dựng phải có cùng tên vói lớp chứa nó( giống cả cách viết hoa, viêt thường), có hoặc không có đối số, được gọi đến khi chương trình tạo một đối tượng mới thông qua từ khoá new.
Mỗi lớp ngoài phải có ít nhất một phương thức tạo dựng không tham số.
Nếu người lập trình không viết phương thức tạo dựng cho lớp thì Java sẽ gán cho lớp đó một phương thức tạo dựng mặc định khi biên dịch.
Cấu trúc của phương thức tạo dựng:
[Từ khóa] (có hoặc không có đối số)
{ Khối lệnh }
Hình thức khai báo chồng phương thức
Java cho phép khai báo nhiều phương thức cùng tên nhưng khác tham số( khác kiểu dữ liệu hoặc số lượng tham số) gọi là các phương thức khai báo chồng hay phương thức ghi đè.
Phương thức tạo dựng cũng có thể được khai báo chồng.
Các phương thức khai báo chồng khác nhau về tham số sẽ được tạo các đối tượng khác nhau trong lớp gọi nó.
Một số phương thức chuẩn trong Java
Đó là các phương thức chuẩn trong lớp Math, DateFormat (định dạng ngày tháng), Theard (lp tuyến thi hành), ArrayList (lớp tạo danh sách)
Lớp (class)
Lớp được xem là một khuôn mẫu (template) của đối tượng. Lớp bao gồm các vùng dữ liệu của đối tượng và các phương thức tác động lên các dữ liệu đó.
Lớp có tính kế thừa (inheritance); một lớp (subclass) có thể thứa kế tất cả các vùng dữ liệu và các phương thức của một lớp khác (superclass).
Lớp còn có tính đa hình (polymorphism) cho phép cài đặt các lớp dẫn xuất rất khác nhau từ cùng một lớp nguồn.
Định nghĩa một lớp:
class ClassName {
}
Ta có thể lưu lớp trên với tên ClassName.java và biên dịch thành lớp ClassName trong file ClassName.class.
Ta có thể tạo được những đối tượng của lớp này bằng câu lệnh:
ClassName ObjectName = new ClassName();
Vùng dữ liệu (field) hay thuộc tính của lớp
Ta có thể định nghĩa một vùng dữ liệu như khai báo một biến trong chương trình như sau:
class ClassName {
int FieldName;
}
Các vùng dữ liệu của lớp có thể được đóng gói (encapsulation) để xác định quyền truy xuất của các đối tượng khác đối với mỗi vùng dữ liệu. Để đóng gói một vùng dữ liệu ta có thể dùng các từ khoá sau: public, private và protected.
Trong Java tồn tại các dạng lớp sau:
Lớp chính: là lớp có phương thức chính (phương thức main).
Lớp ngoài: không có phương thức chính, nhưng có phương thức khởi tạo.
Lớp trừu tượng: là lớp có từ khoá abstract. Phương thức trừu tượng của lớp trừu tượng cũng có từ khoá abstract và chưa có nội dung. Sử dụng lớp trừu tượg trong trường hợp ta định nghĩa một lớp mà chưa xác định được các vùng dữ liệu và phương thức của nó thì ta định nghĩa một lớp trừu tượng
Lớp nội: là lớp được khai báo trong một lớp khác.
1.3.2.2. Đối tượng Exception, gói, interface và thread
Exception
Exception là một đối tượng đặt biệt được tạo ra khi chương trình gặp lỗi. Java sẽ trả về cho chương trình chạy đối tượng ngoại lệ này để chương trình giải quyết. Việc trả về ngoại lệ của Java gọi là throwing, còn việc nắm bắt đối tượng trả về của chương trình gọi là catching. Các ngoại lệ có thể chia theo 3 nhóm:
- Nhóm lớp ngoại lệ dẫn xuất trực tiếp từ ngoại lệ
- Lớp ngoại lệ trong khi chạy chương trình
- Lớp ngoại lệ nhập/xuất
Gói (Packages)
Các lớp trong Java có thể đóng gói thành một bộ gọi là package, mỗi package có một tên riêng.
Để khai báo một lớp là thành phần của một gói ta dùng câu lệnh package.
Interface
Để tránh đi tính phức tạp của đa thừa kế (multi-inheritance), Java thay thế bằng giao tiếp (interface). Một lớp của Java chỉ có một siêu lớp trực tiếp nhưng có thể cài đặt nhiều giao tiếp với các lớp khác để thừa hưởng thêm các vùng dữ liệu và phương thức của các giao tiếp này.
Thread (phân lưồng)
Thread là một đơn vị hành động của hệ điều hành, một chương trình có thể chia thành nhiều thread. Các thread trong mỗi chương trình sẽ được thực hiện tuần tự và gần như đồng thời, chúng được giao tiếp với nhau qua các interface hay được đồng bộ hóa (synchronized).
1.3.2.3 Lớp String
Java không cung cấp kiểu dữ liệu cơ sở String mà thay bằng lớp String.
Để khai báo hay khởi tạo một chuỗi ta có thể dùng các cách sau:
Cách 1:
String str1 = new String();
String str2 = new String(“Hello”);
Cách 2:
Char ch[ ] = {‘A’, ‘B’, ‘C’, ‘D’, ‘E’};
String str3 = new String(ch);
String str4 = new String(ch, 0, 2); // str4 gồm 2 phần tử “AB”
Có rất nhiểu phương thức được xây dựng trong lớp String, các phương thức này được sử dụng để xử lý chuỗi.
1.3.3 Giao diện đồ hoạ của Java
Thư viện AWT
AWT (Abstract Windowing Toolkit) là một bộ các lớp trong Java cho phép chúng ta tạo giao diện người dùng đồ hoạ (GUI_Graphics User Interface) và chấp nhận các nhập liệu của người dùng thông qua bàn phím và chuột. AWT cung cấp các thành phần khác nhau để tạo GUI hiệu quả và lôi cuốn người sử dụng. Các thành phần này này có thể là:
Container (vật chứa): là vùng có thể đặt các thành phần giao diện vào đó. Bất cứ vật gì mà kế thừa từ lớp Container sẽ là vật chứa. Applet là một vật chứa, applet được dẫn xuất từ Panel, lớp Panel lại được dẫn xuất từ lớp Container.
Các khung chứa: Frame, Panel, Canvas, khung chứa Dialog, khung chữa scrollPane
Các thành phần giao diện cơ bản: nhãn (label), ô văn bản (FextField), vùng văn bản (TextArea), nút lệnh (Button), Checkbox và RadioButton, lựa chọn (Choice), danh sách (List)
Bộ quản lý cách trình bày(Layout mannager)
Layout manager điều khiển cách trình bày vật lý của các phần tử GUI như là button, textbox, option button v.v… Một layout manager tự động bố trí các thành phần này trong container.
Các kiểu trình bày khác nhau:
- FlowLayout
- BorderLayout
- CardLayout
- GridLayout
- GridBagLayout
Xử lý các sự kiện
Các hệ thống GUI xử lý các tương tác người dùng với sự trợ giúp của mô hình hướng sự kiện (event-driven). Tương tác của người dùng có thể là di chuyển chuột, nhấn phím, nhả phím v.v…Tất cả các thao tác này thiết lập một sự kiện của một loại nào đó.
Việc xử lý những sự kiện này phụ thuộc vào ứng dụng. Abstract Windowing Toolkit (AWT) xử lý một vài sự kiện. Môi trường mà các ứng dụng này được thi hành ví dụ như trình duyệt cũng có thể xử lý các sự kiện khác. Người lập trình cũng cần phải xử lý những sự kiện nhất định và cần phải viết hàm xử lý các sự kiện đó.
Menu
Ngôn ngữ Java có một tập hợp các lớp đối tượng để tạo các menu. Có hai loại menu – pull down và pop-up. Menu làm cho ứng dụng ta xây dựng dễ sử dụng hơn. Ta chỉ có đặt duy nhất một thanh menubar trong một frame. Menubar là một thanh nằm ngang được đặt tại đỉnh của frame. Nó liệt kê các mục chọn khác nhau hay còn gọi là menu. Một menu độc lập có thể chứa các mục chọn con, các mục con này được gọi là Menu Item. Java cung cấp các Checkbox MenuItem, chúng có thể được bật hay mở, phụ thuộc vào trạng thái.
1.3.4. Đối tượng đồ hoạ (Graphics)
Java cung cấp gói AWT cho phép ta vẽ các hình đồ hoạ. Lớp Graphics bao gồm tập hợp rất nhiều phương thức. Nhưng phương thức này được sử dụng để vẽ bất cứ hình nào trong các hình như: đoạn thẳng, hình chữ nhật, elip, hình tròn, hình đa giác, …
Phương thức drawString của đối tượng Gragphics giúp ta vẽ ra văn bản hay chữ ra màn hình. Văn bản hay chữ có thể được trình bày bằng nhiểu phông chữ khác nhau.
Phương thức drawImage dùng để vẽ ảnh ra màn hình, ta có thể vẽ ảnh vào Applet hoặc vào cửa sổ ứng dụng.
Màu sắc được thể hiện qua lớp Color. Mỗi màu được tạo ra bằng cách pha trộn 3 màu chính là đỏ (red), xanh lá cây (green), xanh dương (blue) (màu RGB).
1.3.5 Java Applet
Java Applet là một chương trình nhỏ nhúng trong trang web có khả năng lập trình được. Tất cả các applet đều là các lớp con của lớp ‘Applet’.
Lớp Applet thuộc package ‘java.applet’. Lớp Applet bao gồm nhiều phương thức để điều khiển quá trình thực thi của applet. Để tạo applet, cần import hai gói sau:
java.applet
java.awt
Một Applet định nghĩa cấu trúc của nó từ 4 sự kiện xảy ra trong suốt quá trình thực thi. Đối với mỗi sự kiện, một phương thức được gọi một cách tự động. Các phương thức này được minh hoạ trong bảng sau:
Phương thức
Chức năng
init()
Được gọi trong quá trình khởi tạo applet. Trong quá trình khởi tạo, nó sẽ tạo đối tượng để cung cấp cho applet. Phương thức này được dùng để tải các hình ảnh đồ hoạ, khởi tạo các biến và tạo các đối tượng.
start()
Được gọi gọi khi một applet bắt đầu thực thi. Một khi quá trình khởi tạo hoàn tất, thì applet được khởi động. Phương thức này được dùng để khởi động lại applet sau khi nó đã ngừng trước đó
stop()
Được gọi khi ngừng thực thi một applet. Một applet bị ngừng trước khi nó bị huỷ.
destroy()
Được dùng để huỷ một applet. Khi một applet bị huỷ, thì bộ nhớ, thời gian thực thi của vi xử lý, không gian đĩa được trả về cho hệ thống.
Bảng 1.1: Các phương thức của một applet
Điều quan trọng là không phải lúc nào applet cũng bắt đầu từ ban đầu. Mà nó bắt đầu từ vị trí tiếp theo của quá trình thực thi trước đó.
Ngoài những phương thức cơ bản này, còn có những phương thức ‘paint()’ và ‘repaint()’. Phương thức paint() dùng để hiển thị một đường thẳng (line), text, hoặc một hình ảnh trên nền applet. Đối số của phương thức này là đối tượng của lớp Graphics. Lớp này thuộc gói java.awt. Câu lệnh sau được dùng để import lớp Graphics:
import java.awt.Graphics;
Phương thức ‘repaint()’ được dùng khi cửa sổ cần cập nhật lại. Phương thức này chỉ cần một thông số. Tham số này là đối tượng của lớp Graphics.
Applet sử dụng phương thức ‘showStatus()’ để hiển thị thông tin trên thanh trạng thái. Phương thức có tham số thuộc kiểu dữ liệu String. Để lấy các thông tin của applet, user có thể overide phương thức ‘getAppletInfo()’ của lớp Applet. Phương thức này trả về 1 đối tượng kiểu String.
Khai báo lớp cho Applet
Dùng lệnh khai báo lớp:
public class Ten_Lop extends Applet
{ }
Ở đây, Ten_Lop là tên tượng trưng, về sau khi viết Applet ta sẽ dùng các tên cụ thể.
Tạo trang web có thẻ Applet bên trong
Cấu trúc thẻ Applet:
Trong đó: "LopApplet.class" là một lớp Applet của Java. X là bề rộng và Y là bề cao đo bằng pixel của một vùng màn hình trong trang Web có chèn thẻ Applet vào.
Để có lớp "LopApplet.class" ta phải viết chương trình nguồn Java Applet, xong biên dịch chương trình nguồn để tạo lớp "LopApplet.class", sau đó đưa lớp Applet vào thẻ Applet và chèn thẻ Applet vào trang Web.
Sự khác nhau giữa application và applet:
Để thực thi các application chúng ta dùng trình thông dịch java, trong khi đó applet có thể chạy được trên các trình duyệt (có hổ trợ Java) hay sử dụng công cụ appletViewer, công cụ này đi kèm với JDK.
Quá trình thực thi của application bắt đầu từ phương thức ‘main()’. Tuy nhiên applet thì không làm như vậy.
Các application sử dụng ‘System.out.println()’ để hiển thị kết quả ra màn hình trong khi đó applet sử dụng phương thức ‘drawString()’ để xuất ra màn hình.
Một điều đáng lưu ý là một chương trình Java đơn lẻ thì có thể vừa là application vừa là applet. Chức năng của applet được bỏ qua khi nó được thực thi như là một application và ngược lại.
Chương 2 : Tìm hiểu về công nghệ WebGIS và ứng dụng
TÀI LIỆU THAM KHẢO
Hệ thống thông tin địa lý_PGS.TS Nguyễn Ngọc Thạch_PGD trung tâm nghiên cứu ứng dụng Viễn thám và Hệ thông tin Địa Lý.
www.nea.gov.vn
www.mathgis.com
www.javavietnam.org
Giáo trình Lý thuyết và Bài tập Java _ Trần Tiến Dũng (Nhà xuất bản Lao Động Xã Hội).
Ngôn ngữ lập trình Java _ Đoàn Ngọc Tăng (Nhà xuất bản Đại Học Sư Phạm).
Những bài giảng về Lập trình Java
Các file đính kèm theo tài liệu này:
- 30089.doc