Java - Xây dựng chương trình vẽ hình đơn giản (tính kế thừa)
Làm lại bài tập vẽ hình đơn giản trong bài Tính kế thừa trong Java và bổ sung thêm các yêu cầu sau:
- Thực hiện lại 3 yêu cầu đầu tiên của bài.
- Viết lớp
Artist, lớp này có hàmdrawShape(), hàm này không trả về giá trị và có một tham số kiểuShape, trong hàm này gọi hàm draw() để vẽ hình tùy theo tham số Shape truyền vào. - Viết lớp
ArtistDemo, lớp này chứa hàmmain(): khai báo biếnShape; dùng biến này để khởi tạo cho đối tượngRectanglevới chiều dài là 8, chiều rộng là 4; tạo đối tượngArtistđể vẽ hình chữ nhật này; dùng lại biếnShapeđể khởi tạo cho đối tượngRightTrianglevới cạnh là 20, dùng đối tượngArtistđể vẽ hình tam giác này.
Bài giải
-------------------- ######## --------------------

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Shape.java
package baitapvehinh;
public class Shape {
public void draw() {
System.out.println("Drawing a Shape");
}
}
Rectangle.java
package baitapvehinh;
public class Rectangle extends Shape {
private int chieuDai, chieuRong;
public Rectangle() {
super();
}
public Rectangle(int chieuDai, int chieuRong) {
super();
if ((chieuDai < 1) || (chieuDai > 15)) {
System.out.println("Giá trị của chiều dài phải nằm trong khoảng [1...15]");
return;
}
if (chieuDai < chieuRong) {
System.out.println("Chiều dài phải lớn hơn chiều rộng");
return;
}
this.chieuDai = chieuDai;
this.chieuRong = chieuRong;
}
public int getChieuDai() {
return chieuDai;
}
public void setChieuDai(int chieuDai) {
this.chieuDai = chieuDai;
}
public int getChieuRong() {
return chieuRong;
}
public void setChieuRong(int chieuRong) {
if ((chieuRong) < 1 || (chieuRong > 15)) {
System.out.println("Giá trị của chiều rộng phải nằm trong khoảng [1...15]");
}
this.chieuRong = chieuRong;
}
public void draw() {
// vẽ chiều rộng
for (int i = 1; i <= chieuRong; i++) {
// vẽ chiều dài
for (int j = 1; j <= chieuDai; j++) {
if ((j == 1) || (j == chieuDai) || (i == 1) || (i == chieuRong)) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println("\n");
}
}
}
Bài viết này được đăng tại [free tuts .net]
RightTriangle.java
package baitapvehinh;
public class RightTriangle extends Shape {
private int canhVuong, n;
public RightTriangle() {
super();
}
public RightTriangle(int canhVuong) {
super();
if ((canhVuong < 1) || (canhVuong > 20)) {
System.out.println("Giá trị của cạnh phải nằm trong khoảng [1...20]");
return;
}
this.canhVuong = canhVuong;
}
public int getCanhVuong() {
return canhVuong;
}
public void setCanhVuong(int canhVuong) {
this.canhVuong = canhVuong;
}
public void draw() {
n = canhVuong;
for (int i = 1; i <= canhVuong; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
Artist.java
package baitapvehinh;
public class Artist {
public void drawShape(Shape shape) {
shape.draw();
}
}
ArtistDemo.java
package baitapvehinh;
import java.util.Scanner;
public class ArtistDemo {
public static void main(String[] args) {
System.out.println("Vẽ hình chữ nhật có chiều dài = 8 và chiều rộng = 4");
Shape shape = new Rectangle(8, 4); // lúc này shape có vai trò là 1 Rectangle
Artist artist = new Artist();
artist.drawShape(shape);
System.out.println("\nVẽ hình tam giác vuông có cạnh vuông = 20");
shape = new RightTriangle(20); // còn lúc này shape có vai trò là 1 RightTriangle
artist = new Artist();
artist.drawShape(shape);
}
}
Kết quả sau khi biên dịch chương trình:
Câu hỏi thường gặp liên quan:
- Java - Viết chương trình tính lương nhân viên trong 1 công ty (NV thời vụ + thời gian).
- Java - Xây dựng chương trình vẽ hình đơn giản (tính kế thừa)
- Java - Viết chương trình quản lý đất của công ty bất động sản.
- Java - Viết chương trình quản lý cán bộ của một trường đại hoc.
- Java - Viết chương trình quản lý nhân viên trong 1 công ty phần mềm.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng