Môn học: Lập trình Java Bài thực hành số 3: Kết tập, kế thừa đa hình Bài 1) Lấy kết lớp Point thực hành Tạo lớp tứ giác Quadrangle gói com.bean gồm đối tượng lớp Point (p1, p2, p3, p4 theo thứ tự điểm tứ giác) a) Viết phương thức get/set cho lớp Quadrangle b) Viết phương thức khởi tạo sau: i) Phương thức khởi tạo tham số nào: Các điểm khởi tạo mặc định sau: A(0,0), B(0,1), C(1,1), D(1,0) ii) Phương thức khởi tạo nhận đối tượng thuộc lớp Point làm tham số c) Viết phương thức nhập vào tứ giác từ bàn phím: Nhập điểm theo thứ tự điểm tứ giác Chú ý nhập phương thức JOptionPane.showInputDialog(), có sử dụng Exception để kiểm tra liệu người dùng có nhập chữ vào hay không public void nhap(){…} d) Viết phương thức hiển thị thông tin tứ giác bao gồm loại, tên tứ giác tọa độ đỉnh: Ví dụ: ABCD: A(0,0), B(0,1), C(1,1), D(1,0) public void hienThi(){…} e) Viết phương thức lấy tên đối tượng lớp Quadrangle sau: public String getName(){ return “Tu giac”; } f) Chỉnh sửa lớp Quadrangle thành lớp trừu tượng (abstract) Viết phương thức trừu tượng tính diện tích cho lớp Quadrangle có chữ ký sau: public abstract double getArea(); g) Viết hàm main cho lớp TestQuad kiểm tra phương thức cài đặt cho lớp sau: package com.test; import com.bean.*; public class TestQuad { public static void main(String[] args) { //Goi ham khoi tao khong tham so Quadrangle q1 = new Quadrangle(); q1.hienThi(); Point p1 = new Point(0, 2); Point p2 = new Point(0, 3); Point p3 = new Point(4, 3); Point p4 = new Point(2, 2); //Goi ham khoi tao tham so Quadrangle q2 = new Quadrangle(p1, p2, p3, p4); q2.hienThi(); Quadrangle q3 = new Quadrangle(); q3.nhap(); q3.hienThi(); } } Bài 2) Tạo lớp hình vuông Square gói com.bean thừa từ lớp Quadrangle gồm thuộc tính tâm đối xứng đối tượng lớp Point (tamDX) a) Viết phương thức set/get cho thuộc tính lớp Square b) Xây dựng phương thức khởi tạo: Sau khởi tạo cho đỉnh, tiến hành tính toán tọa độ cho tâm đối xứng khởi tạo cho thuộc tính tamDX Một phương thức tham số Các điểm khởi tạo mặc định sau: A(0,0), B(0,1), C(1,1), D(1,0) Một phương thức nhận đối tượng thuộc lớp Point làm tham số c) Viết lại phương thức lấy tên đối tượng lớp Square sau: public String getName(){ return “Hinh vuong voi tam doi xung la: ” + tamDX.getTenDiem() + “(” + tamDX.getTungDo() + “,” + tamDX.getHoanhDo() + “)”; } d) Cài đặt cụ thể cho phương thức tính diện tích kế thừa từ lớp Quadrangle theo công thức tính diện tích hình vuông e) Viết hàm main lớp TestSquare thực lệnh để kiểm tra phương thức lớp xây dựng sau: package com.test; import javax.swing.JOptionPane; import com.bean.*; public class TestSquare { public static void main(String[] args) { //Goi ham khoi tao khong tham so Square s1 = new Square(); s1.setP3(new Point(-1,1)); s1.setP4(new Point(-1,0)); s1.hienThi(); Point p1 = new Point(0, 2); Point p2 = new Point(0, 3); Point p3 = new Point(1, 3); Point p4 = new Point(1, 2); //Goi ham khoi tao tham so Square s2 = new Square(p1, p2, p3, p4); s2.hienThi(); //Goi ham khoi tao tham so Quadrangle q1 = new Quadrangle(p1, p4, new Point(1,1), new Point(0,1)); Quadrangle q2 = new Square(p1, p2, p3, p4); //Up casting JOptionPane.showMessageDialog(null,q1.getName()); q1.hienThi(); JOptionPane.showMessageDialog(null,q2.getName()); q2.hienThi(); Square s3 = (Square) q1; //Down casting JOptionPane.showMessageDialog(null,s3.getName()); s3.hienThi(); Square s4 = new Square(); s4.nhap(); s4.hienThi(); } } Bài 3) Viết applet có vẽ hình nhúng ảnh bên applet, có truyền tham số từ HTML vào Hướng dẫn: a) VD1: Tạo HelloWWW2.java: import java.applet.Applet; import java.awt.*; public class HelloWWW2 extends Applet { public void init() { setFont(new Font("SansSerif", Font.BOLD, 30)); Color background = Color.GRAY; Color foreground = Color.DARK_GRAY; String backgroundType = getParameter("BACKGROUND"); if (backgroundType != null) { if (backgroundType.equalsIgnoreCase("LIGHT")){ background = Color.WHITE; foreground = Color.BLACK; } else if (backgroundType.equalsIgnoreCase("DARK")){ background = Color.BLACK; foreground = Color.WHITE; } } setBackground(background); setForeground(foreground); } public void paint(Graphics g) { g.drawString("Hello, World Wide Web.", 5, 35); } } Tạo chạy HelloWWW2.html: Customizable HelloWWW Applet Error! You must use a Java-enabled browser. Error! You must use a Java-enabled browser. Error! You must use a Java-enabled browser. b) VD2: Tạo JavaJump.java import java.applet.Applet; import java.awt.*; /** An applet that draws an image */ public class JavaJump extends Applet{ private Image jumpingJava; public void init() { setBackground(Color.white); setFont(new Font("SansSerif", Font.BOLD, 18)); jumpingJava = getImage(getDocumentBase(), getParameter(“image”)); add(new Label("Great Jumping Java!")); System.out.println("Yow! I'm jiving with Java."); } public void paint(Graphics g) { g.drawImage(jumpingJava, 0, 50, this); } } Tạo chạy JavaJump.html, truyền tên image có máy vào file Jumping Java Jumping Java ... s4.hienThi(); } } Bài 3) Viết applet có vẽ hình nhúng ảnh bên applet, có truyền tham số từ HTML vào Hướng dẫn: a) VD1: Tạo HelloWWW2 .java: import java. applet.Applet; import java. awt.*; public... Error! You must use a Java- enabled browser. b) VD2: Tạo JavaJump .java import java. applet.Applet; import java. awt.*; /** An applet that draws an image */ public class JavaJump extends... Jumping Java! ")); System.out.println("Yow! I'm jiving with Java. "); } public void paint(Graphics g) { g.drawImage(jumpingJava, 0, 50, this); } } Tạo chạy JavaJump.html, truyền tên image có máy