1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn2Bài 1. Tổng quan lập trình Java• Giới thiệu ngôn ngữ Java• Kiến trúc của Java• Nội dung một chương trình Java cơ bản• Các kiểu dữ liệu cơ bản &[r]
1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 2Bài 1. Tổng quan lập trình Java•Giới thiệu ngôn ngữ Java•Kiến trúc của Java•Nội dung một chương trình Java cơ bản•Các kiểu dữ liệu cơ bản &[r]
Lập trình Java cơ bản1Cao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vnBài 3. Lập trình GUI (Applet)2• Giới thiệu các loại ứng dụng• Thư viện AWT• Tạo các applet• Đối tượng đồ hoạ Graphics• Kĩ thuật khung hình phụ• Bài tậpHai loại ứng dụng Java3•[r]
1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn2Bài 2. OOP trong Java• Các phương pháp lập trình• Giới thiệu về OOP• Kế thừa (Inheritance)• Đa hình (Polymorphism)• Giao tiếp (Interface)• Lớp trừu tượng (Abstract)• Gói (Packages)•[r]
TRANG 5 QUAN HỆ PRODUCER-CONSUMER • Giả sử có 2 tuyến: Producer ghi dữ liệu vào một buffer và Consumer đọc dữ liệu từ buffer => Cần có sự đồng bộ hoá nếu không dữ liệu có thể bị Producer[r]
• Mọi lớp applet do người dùng tạo ra đều phải kế thừa từ lớp Applet.Xây dựng các applet9• Ví dụ 1: Tạo file TestApplet.java• Dịch: javac TestApplet.javaimport java.applet.Applet;import java.awt.Graphics;public class TestApplet extends Applet{public void paint( Graphics g){g.dra[r]
và destroy sẽđượcgọiLớpGraphics14• java.awt.Graphics là lớpcungcấpcácphương thứcvẽđồhoạ cơ bản:• Đường thẳng (Line)• Đường oval (Oval)• Hình chữ nhật (Rectangle)• Đa giác (Polygon)• Vănbản(Text)• Hình ảnh (Image)• LớpGraphics15• Hệ toạđộMàn hìnhxy(0,0)
g.drawPolygon(x, y, x.length);}}Lớp Graphics18Lớp Graphics19• Vẽđường tròn/elip• public void drawOval(int x, int y, int width, int height);• Tô đường tròn/elip• public void fillOval(int x, int y, int width, int height);• Vẽ cung tròn• public void drawArc(int x, int y, int width, int height, int star[r]
36Java vs C++8. Java không có con trỏ.9. Java không có huỷ tử (destructor), nó chỉ có phương thức finalize() được gọi bởi Garbage Collector.10. Java không hỗ trợ đối số mặc định.11. Java chỉ hỗ trợ kế thừa đơn, tất cả mọi lớp đều mặc định kế thừa từ lớp Object.12.[r]
Thông dịch Hello.class (bytecode)javac Hello.javajava Hello010010119Một chương trình Java cơ bản1 // Tên file : Hello.java2 /* Tác giả : Cao Đức Thông*/3 4 public class Hello5 {6 // Phương thức main, điểm bắt đầu của chương trình7 public static void main( String args[ ] )8 {9[r]
26Đa hình (Polymorphism)• Tính đa hình thể hiện qua việc: cùng một phương thức nhưng có nội dung thực hiện khác nhau trên các đối tượng khác nhau. • Phương thức gọi được xác định thông qua đối tượng được tham chiếu, không thông qua kiểu khai báo của tham chiếu.• Trong Java, các phương thức lu[r]
PRIVATE STATIC CHAR TAB = ‘\T’; • PHƯƠNG THỨC STATIC: LÀ PHƯƠNG THỨC CHỈ TRANG 4 KẾ THỪA INHERITANCE • KẾ THỪA LÀ VIỆC XÂY DỰNG LỚP MỚI DỰA TRÊN LỚP ĐÃ CÓ SẴN • LỚP ĐÃ CÓ SẴN LÀ LỚP CHA:[r]
Lớp TimeTest13• javac TimeTest.java• java TimeTestChạy TimeTest14Phạm vi truy cập• private• Chỉ truy cập được từ trong lớp khai báo.• protected• Truy cập được từ trong lớp khai báo, lớp con của của lớp khai báo và các lớp cùng gói với lớp khai báo.• public• Truy cập được từ mọi nơi.• M[r]
Kĩ thuật khung hình phụ31• Ví dụ về sự di chuyển “bị nháy”import java.applet.Applet;import java.awt.*;public class DemoMove1 extends Applet{private int x = 50;private int y = 50;public void paint(Graphics g){if (x > 300) x = 50;g.fillOval(x, y, 100, 100);delay(100);move(); }Kĩ t[r]
Applet36• Khả năng củaApplet• Applet được đặt tại một Server trên mạng• Applet được chuyển tới máy Client theo một trang HTML nào đó• Khi một trình duyệt (tương thích với Java) nhận được trang web này, nó sẽ tải mã của Applet và thực thi trên máy clientApplet37• GiớihạncủaApplet• Không đượcnạ[r]
Kếtquả khi có đồng bộ36Producer writes 1Consumer reads 1Producer writes 2Consumer reads 2Producer writes 3Consumer reads 3Producer writes 4Consumer reads 4Producer writes 5Producer finished.Consumer reads 5Consumer finished.Tạotuyếntừ giao tiếp Runnable37• Một lớp có thể trở thành một tuyến khi cài[r]
• javax.swing.Timer• java.util.Timer• Lớp java.swing.Timer• Đơn giản, dễ dùng trên GUI• Lớp java.util.Timer• Nhiều tính năng hơn java.swing.TimerVí dụ: Đếm ngược45import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class CountDo[r]