1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập lập trình hướng đối tượng trong java

73 1,5K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 3,97 MB

Nội dung

Mặc định mỗi một Project, Eclipse thiết lập mặc định “Build Automatically”, Nếu trong có trình biên dịch mà xuất hiện những lỗi mà chúng ta không hiểu biết nguyên nhân vì sao thì ta có t

Trang 1

Khối: Đại Học Và Cao Đẳng

Năm 2013

Hướng dẫn:

 Bài tập thực hành được chia theo Module

 Mỗi Module được thiết kế cho thời lượng là 312 tiết thực hành tại lớp với sự hướng dẫn của giảng viên

 Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module

 Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng Những sinh viên chưa hòan tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà

 Các bài có dấu (*) là các bài tập nâng cao dành cho sinh viên khá giỏi

Trang 2

MỤC LỤC

Module 1: Program and Statement 3

Module 2: Objects and Primitive data 22

Module 3: Writing Class 29

Module 4: Enhancing Class 38

Module 5: Array and Collections 43

Module 6: Inheritance 48

Module 7: Exception – IO Stream 51

Module 8: Graphic User Interface 54

Trang 3

Module 1: Program and Statement

Nội dung kiến thức thực hành:

+ Sử dụng JDK để biên dịch và thực thi chương trình

+ Sử dụng Eclipse để soạn thảo, biên dịch và thực thi chương trình

+ Khai báo và sử dụng biến, đối tượng

+ Sử dụng các cấu trúc điều khiển

+ Nhận dữ liệu từ đối số hàm main

Để biên dịch được các source code Java, máy tính của chúng ta phải có máy Ảo Java

Để có được máy Ảo Java các bạn vào link bên dưới để download bộ JDK

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Sau khi click vào đường link bên trên, danh mục JAVA Kit sẽ hiển thị như hình bên dưới:

Trang 4

chọn JDK để Download, sau khi click chọn Download thì một màn hình mới sẽ được hiển thị ra, trong màn hình mới này tùy vào cấu hình của máy tính mà chúng ta chọn tập tin Download cho hợp lý

Giả sử rằng máy tính của bạn 32bits, bạn sẽ chọn Windows x86 để load Sau khi load và cài đặt thành công bạn vào Control Panel để kiểm tra xem máy ảo Java đã được cài đặt vào máy hay chưa Nếu có biểu tượng Java như hình bên dưới thì coi như bạn đã cài đặt thành công:

Trang 5

1 Bấm chuột phải vào biểu tượng Computer/ chọn Properties

2 Một cửa sổ mới hiện lên, chúng ta chọn Advanced System Settings

Trang 6

3 Cửa sổ System Properties sẽ hiển thị ra, chúng ta vào tab Advanced, click chọn button Environment Variables…Cửa sổ Environment variables sẽ hiển thị như hình bên dưới:

4 Trong mục System variables, click chọn button New

Mục Variable name, chúng ta nhập vào biến JAVA_HOME

Mục Variable value, chúng ta copy đường dẫn cài đặt JDK vào đây, trong ví dụ này thì JDK

được cài đặt như hình minh họa Tức là nếu máy của bạn cài JDK ở đâu thì copy paste đường dẫn đó vào mục này

Trang 7

Sau khi chọn OK, bạn quan sát trong vùng System Variables, biến JAVA_HOME và giá trị của

nó sẽ xuất hiện như hình minh họa bên dưới:

Trang 8

5 Bước tiếp theo, các bạn tìm tới biến Path trong mục System variables, click chọn Edit:

Trong mục Variable value, các bạn di chuyển tới cuối, nhập vào các giá trị như hình minh họa :

;%JAVA_HOME%\bin;.;

6 Kiểm tra lại cấu hình có chính xác hay không:

Để kiểm tra xem máy tính của bạn đang cài JDK version bao nhiêu, vào Start/ Run Hoặc gõ tổ

hợp phím Windows+R để hiển thị cửa sổ Run, trong cửa sổ này các bạn gõ vào lệnh cmd rồi

nhấn phím Enter

Trang 9

Gõ java –version để kiểm tra JDK version

Gõ javac –version để kiểm tra javac version

2 Chọn menu File  Save As và đánh tên file ‘Welcome.java’ (giống tên của class)

3 Chọn Start  Run và đánh lệnh ‘cmd’ vào trong hộp thoại Run

4 Click vào button OK để cửa sổ command prompt xuất hiện Thay đổi đường dẫn thư mục

lưu file trong bước 3

5 Biên dịch chương trình sử dụng lệnh ‘javac’

6 Chạy chương trình sử dụng ‘java’

Trang 10

Yêu cầu:

1.Khởi động Eclipse

Sau khi download và giải nén, các bạn khởi động Eclipse sẽ có giao diện như hình bên dưới:

Để thiết lập Perspective: Vào menu Window / Open Perspective / chọn Other…

Trong cửa sổ Open Perspective các bạn chọn Java sau đó nhấn nút OK

- Cách tạo Java Project:

Trang 11

-Vào menu File / New / Java Project

Trong mục Project name của cửa sổ New Java Project: Bạn nhập tên project vào mục này, sau đó nhấn Finish

Bây giờ ta tiến hành tạo 1 class tên là HelloTeo113 Các bạn bấm chuột phải vào Project / New/ chọn Class (xem hình minh họa bên dưới)

Trang 12

Cửa sổ New Java Class sẽ xuất hiện như bên dưới:

Nhấn Finish để tạo Class

Các bạn quan sát trong hàm main, ở đây Ta viết dòng lệnh:

System.out.println("HI I'm Teo 113");

Hàm này có tác dụng xuất dữ liệu ra màn hình trên những dòng khác nhau

Trang 13

Để biên dịch và thực thi chương trình, ta vào menu Run/Run (hoặc nhấn tổ hợp phím Ctrl+ F11)

Sau khi chọn Run, các bạn quan sát cửa sổ Console ở bên dưới, kết quả sẽ được hiển thị ra như hình minh họa

- Chú ý: Nếu như trong Project của bạn có chứa Font chữ tiếng việt thì nhớ cấu hình dạng UTF-8

Trang 14

Từ menu Project/ chọn Properties (xem hình minh họa bên trên) Sau khi chọn Properties thì cửa

sổ Properties for test sẽ hiển thị ra (ở đây test là tên Project) Các bạn chọn Resource/ chọn

UTF-8 như hình bên dưới, sau đó chọn OK để thiết lập cấu hình

Mặc định mỗi một Project, Eclipse thiết lập mặc định “Build Automatically”, Nếu trong có trình biên dịch mà xuất hiện những lỗi mà chúng ta không hiểu biết nguyên nhân vì sao thì ta có thể

vào menu Project/ Clean

Cửa sổ Clean sẽ xuất hiện như hình bên dưới, nếu muốn clean toàn bộ Project thì bạn chọn

“Clean all projects”, còn nếu muốn chỉ clean những project riêng lẻ thì bạn chọn “clean projects selected below” Nhấn OK để tiến hành Clean

Trang 15

Các bạn để ý rằng, nếu như muốn tự mình Build Project thì hãy unchecked “Build

Automatically” Lúc này các mục Build All, Build Project…sẽ được hiển thị cho phép chúng ta chọn lựa chúng

Một số editing template hay dùng:

Gõ sysout sau đó nhấn Ctrl-Spacebar sẽ cho System.out.println();

Gõ main sau đó nhấn Ctrl-Spacebar sẽ cho public static void main(String[] args) {}

….Để tìm hiểu thêm, vào menu Window->Reference

Trang 16

Các phím tắt hay dùng: Trong Eclipse, vào menu Help->Key Assitst hoặc nhấn tổ hợp Ctrl-Shift-L để hiển thị

1 Thực thi chương trình:

Nhấn chuộ phải lên lớp cần chạy, chọn menu Run As-> Java Application

2 Mở Project trong Eclipse

Eclipse không hỗ trợ mở project trực tiếp nên bạn không có kiểu “double-click-for –open” thường thấy, mà bạn phải import project vào workspace như sau:

Vào menu File->Import rồi chọn như hình

Trang 17

Nhấn Next Sau đó nhấn nút Browse để tìm đến thư mục chứa project

Chọn Project cần import rồi nhấn Finish

3 Export file jar tự chạy(executable jar file) trong eclipse

Nhấn chuột phải lên Project cần export, chọn Export

Trang 18

Chọn Runnable JAR file như hình Nhấn Next

Chọn Lauch configuration Chọn thư mục chứa cũng như tên file jar Nhấn Finish

Thực thi jar file dưới dạng command-line:

Nếu Project của bạn ở cơ chế GUI thì bạn có thể mở file jar của bạn bằng Java Plaform

SE library như hình

Hướng dẫn:

Trang 19

public class MathOps {

//method to print a string and an int

static void printInt(String s, int i) {

System.out.println(s + " = " + i);

}

//method to print a string and a float

static void printFloat(String s, float f) {

System.out.println(s + " = " + f);

}

public static void main(String[] args) {

Random random = new Random();

// Floating-point number tetts

float u, v, w; // also applies to doubles

Trang 20

Bài tập 6:

Mục đích:

- Thao tác với toán tử tự động tăng giảm

Yêu cầu:

public class AutoInc_DecOps {

public static void main(String[] args) {

int i = 1;

System.out.println("i : " + i);

System.out.println("++i : " + ++i); // Pre-increment

System.out.println("i++ : " + i++); // Post-increment

System.out.println("i : " + i);

System.out.println(" i : " + i); // Pre-decrement

System.out.println("i : " + i ); // Post-decrement

public class Rel_LogOps {

public static void main(String[] args) {

Random random = new Random();

Trang 21

c) Viết chương trình xuất ra tổng các số là bội số của 7 (từ 1 đến 100)

d) Viết chương trình in ra tổng 1+2+3….+n với n được nhập từ tham số command line

e) Viết chương trình in ra tổng 1+3+5….+n nếu n là số chẳn, 2+4+6+….n nếu n là số lẻ

Giá trị n được nhập vào từ tham số command line

f) Viết chương trình in ra giá trị lớn nhất và nhỏ nhất trong một dãy các giá trị user đã nhập vào từ tham số command line

g) Viết chương trình giải phương trình bậc 1 với hệ số a, b được nhập vào bởi user từ tham

số command line

h) Viết chương trình đọc một giá trị nguyên từ bàn phím và in ra số đó là số chẵn, lẻ hoặc zero

i) Viết chương trình in ra bội số của 3 từ 300 đến 3

j) Viết chương trình in ra số lần kí tự „a‟ xuất hiện trong một chuỗi

k) Vẽ các hình bên dưới:

Hướng dẫn:

Trang 22

Module 2: Objects and Primitive data

Nội dung kiến thức thực hành:

HD: Dùng lớp DecialFormat để định dạng kết quả với 4 chữ số thập phân:

DecialFormat df = new DecialFormat ("0.####");

số a, b, c có lập thành một tam giác không (a, b, c lập thành tam giác khi tổng 2 số bất kỳ

luôn lớn hơn số còn lại)

Hướng dẫn:

Trang 23

Viết chương trình cho nhập một chuỗi và đếm số khoảng trắng có trong chuỗi đó

HD: dùng hàm isSpace(char) của lớp Character để kiểm tra khoảng trắng

Trang 25

(i) Viết một hàm có tên square, hàm có 1 tham số x kiểu số thực Hàm này tính toán và trả về bình phương của x

(ii) Đưa hàm trên vào một chương trình và nó được gọi thực hiện bởi hàm main Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền khác nhau

Viết hàm alarm in ra các chuỗi “Alarm!”, mỗi chuỗi trên một dòng Hàm alarm có

một tham số kiểu số nguyên biểu thị cho số dòng cần in, nếu số này nhỏ hơn 1 thì in ra câu thông báo lỗi

Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với giá trị truyền khác nhau

Hướng dẫn:

Bài tập 14:

Mục đích:

Yêu cầu:

Trang 26

Viết hàm sumRange, hàm có hai tham số kiểu số nguyên biểu thị cho khoảng giá trị

Nếu tham số thứ hai nhỏ hơn tham số thứ nhất thì xuất ra một thông báo lỗi và trả ra giá trị 0, ngược lại hàm trả về tổng của các giá trị trong khoảng đó

Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền khác nhau

Hướng dẫn:

Bài tập 15:

Mục đích:

Yêu cầu:

Viết hàm countA, hàm này nhận một tham số kiểu String và trả về số lần xuất hiện ký tự

„A‟ trong chuỗi đó

Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với giá trị truyền khác nhau

(ii) Overload hàm average với ba tham số nguyên, hàm trả về giá trị trung bình của ba số đó

Test các hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền khác nhau

Hướng dẫn:

Bài tập 17:

Mục đích:

Yêu cầu:

Viết hàm multiConcat, hàm nhận một tham số kiểu String và một số nguyên n, hàm

trả về một chuỗi mới là chuỗi được ghép từ n lần chuỗi trong tham số Nếu n<2 thì xuất ra chuỗi gốc

Ví dụ gọi hàm multiConcat(“hi”,4) kết quả xuất ra “hihihihi” Test hàm vừa viết

bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền cho hàm khác nhau

Hướng dẫn:

Trang 27

- Số Fib thứ k = (số Fib thứ k-1) + (số Fib thứ k-2), tức là 13 =8+5, 21=13+8

- 2 số Fib đầu tiên trong dãy luôn luôn là 1

Hướng dẫn:

Bài tập 19:

Mục đích:

Yêu cầu:

Hãy viết phương thức tên Panlyndrome nhận 1 tham số có kiểu String và trả về true nếu

tham số là chuỗi panlyndrome (chuỗi panlyndrome là chuỗi có chuỗi đảo ngược bằng chính nó,

Viết một hàm đặt tên là NegativeNumberInStrings(String str) Hàm này có đối số

truyền vào là một chuỗi bất kỳ, Hãy viết lệnh để xuất ra các số nguyên âm trong chuỗi

Ví dụ: Nếu nhập vào chuỗi “abc -5 xyz -12 k9l p” thì hàm phải xuất ra được 2 số nguyên âm đó

là -5 và -12

Trang 28

Hướng dẫn:

Bài tập 21:

Mục đích:

Yêu cầu:

Viết chương trình chơi game đoán số, mô tả game như sau:

- Khởi tạo ban đầu người chơi có 5 điểm

- Máy tự động Random ngẫu nhiên 1 số từ 0->5 (số này sẽ không xuất ra, chỉ dùng để so

sánh với số số mà người chơi đoán

- Người chơi đoán số, Nếu đoán đúng thì + 1 điểm vào điểm khởi tạo, ngược lại -1 điểm (Chú

ý là có xuất thông báo khi người chơi đoán trúng hay đoán sai)

- Khi người chơi không còn điểm nào thì thông báo Game Over

- Nếu người chơi tích lũy được 10 điểm thì thông báo Congratulations! You Win!

Trang 29

Module 3: Writing Class

Nội dung kiến thức thực hành:

Cho lớp Distance như sau:

Tìm hiểu lớp này và giải thích kết quả Nếu chương trình bị lỗi, hãy sửa lỗi

Trang 30

// Time.java

import java.text.DecimalFormat;

public class Time {

private int hour; // 0 - 23

private int minute; // 0 - 59

private int second; // 0 - 59

// Time constructor initializes each instance variable to zero Ensures that Time object

// starts in a consistent state

public Time() {

setTime( 0, 0, 0 );

}

// Time constructor: hour supplied, minute and second defaulted to 0

public Time( int h ) {

setTime( h, 0, 0 );

}

// Time constructor: hour and minute supplied, second defaulted to 0

public Time( int h, int m ) {

setTime( h, m, 0 );

}

// Time constructor: hour, minute and second supplied

public Time( int h, int m, int s ) {

setTime( h, m, s );

}

// Time constructor: another Time object supplied

public Time( Time time ) {

setTime( time.hour, time.minute, time.second );

}

// Set a new time value using universal time Perform

// validity checks on data Set invalid values to zero

private void setTime( int h, int m, int s ) {

// convert to String in universal-time format

public String toUniversalString() {

DecimalFormat twoDigits = new DecimalFormat( "00" );

return twoDigits.format( hour ) + ":" + twoDigits.format( minute ) + ":" +

twoDigits.format( second );

}

// convert to String in standard-time format

public String toString() {

DecimalFormat twoDigits = new DecimalFormat( "00" );

return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" + twoDigits.format( minute ) +

":" + twoDigits.format( second ) + ( hour < 12 ? " AM" : " PM" );

}

}

Trang 31

// TimeTest.java

import javax.swing.*;

public class TimeTest {

// test constructors of class Time2

public static void main( String args[] ) {

public class Date {

private int month; // 1-12

private int day; // 1-31 based on month

private int year; // any year

public Date( int theMonth, int theDay, int theYear ) {

if ( theMonth > 0 && theMonth <= 12 ) // validate month

month = theMonth;

else {

month = 1;

Trang 32

System.out.println( "Month " + theMonth + " invalid Set to month 1." );

}

year = theYear; // could validate year

day = checkDay( theDay ); // validate day

System.out.println( "Date object constructor for date " + toString() );

}

private int checkDay( int testDay ) {

int daysPerMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

// check if day in range for month

if ( testDay > 0 && testDay <= daysPerMonth[ month ] )

return testDay;

// check for leap year

if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||

( year % 4 == 0 && year % 100 != 0 ) ) )

return testDay;

System.out.println( "Day " + testDay + " invalid Set to day 1." );

return 1; // leave object in consistent state

}

// Create a String of the form month/day/year

public String toDateString() {

return month + "/" + day + "/" + year;

}

}

// Employee.java

public class Employee {

private String firstName;

private String lastName;

private Date birthDate;

private Date hireDate;

// constructor to initialize name, birth date and hire date

// convert Employee to String format

public String toEmployeeString() {

Trang 33

return lastName + ", " + firstName + " Hired: " + hireDate.toDateString() + " Birthday: " + birthDate.toDateString();

}

}

//EmployeeTest.java

import javax.swing.JOptionPane;

public class EmployeeTest {

public static void main( String args[] ) {

Date birth = new Date( 7, 24, 1949 );

Date hire = new Date( 3, 12, 1988 );

Employee employee = new Employee( "Bob", "Jones", birth, hire );

JOptionPane.showMessageDialog( null, employee.toEmployeeString(),

"Testing Class Employee", JOptionPane.INFORMATION_MESSAGE );

+ setCanhA(v : int) : void

Trang 34

+ getCanhB() : int + setCanhB(v : int) : void + getCanhC() : int

+ setCanhC(v : int) : void + laTamGiac() : boolean + laTamGiac(int, int, int) : boolean + getChuVi() : int

+ getDienTich() : double Trong đó:

ộc tính ma, mb, mc là ba cạnh của tam giác

ởi tạo CHinhTamGiac(int, int, int): yêu cầu kiểm tra:

o nếu giá trị truyền có số âm thì thông báo và gán thuộc tính tương ứng bằng 0;

o nếu 3 giá trị truyền vào không lập thành một hình tam giác thì thông báo "Không phải hình tam giác" và gán 3 thuộc tính bằng 0

HD : ba giá trị lập thành một hình tam giác khi và chỉ khi tổng hai cạnh bất kỳ luôn lớn hơn cạnh còn lại

setCanhA, setCanhB, setCanhC cũng yêu cầu phải kiểm tra giá trị gán có là

số dương và lập thành tam giác hay không, nếu không thì không gán (giữ lại giá trị cũ)

getChuVi(), getDienTich(): tính chu vi và diện tích của tam giác

laTamGiac(): trả về giá trị true khi ba giá trị ma, mb, mc lập thành một hình tam

giác, ngược lại trả về giá trị false

laTamGiac(int, int, int): trả về giá trị true khi ba giá trị a, b, c lập thành một

hình tam giác, ngược lại trả về giá trị false

(ii) Viết hàm main để kiểm tra lớp CHinhTamGiac theo yêu cầu sau:

Cho nhập vào 3 giá trị số nguyên và khởi tạo hình tam giác có các cạnh ứng với 3 giá trị này, nếu 3 giá trị này không lập thành tam giác thì thông báo, ngược lại thì tính và xuất ra chu vi

Trang 35

+ getMaNV() : String + setMaNV(ma : String) : void + getSoSP() : int

+ setSoSP(sp : int) : void + coVuotChuan() : boolean + getTongKet() : String + getLuong(): double + XuatTieuDe() : static void

+ toString() : String

rong các hàm khởi tạo và các hàm setSoSP, khi gán giá trị cho thuộc tính soSP thì cần

kiểm tra giá trị đó có phải là số dương không, nếu là số dương thì mới gán giá trị cho thuộc tính, ngược lại thì gán bằng 0

coVuotChuan() : trả về true nếu soSP > 500, ngược lại trả về false

Giải thích: hàm này dùng để kiểm tra xem số lượng sản phẩm của nhân viên có vượt quá số lượng chuẩn hay không

getTongKet() : trả về chữ "Vượt" khi soSP > 500, ngược lại để trống (có thể sử

dụng hàm coVuotChuan() để kiểm tra)

getLuong() : trả về lương của một nhân viên, lương ăn theo sản phẩm với đơn giá cơ

bản cho 1 sản phẩm là 20000, và nếu số sản phẩm của nhân viên vượt chuẩn thì phần vượt chuẩn được tính đơn giá là 30000

XuatTieuDe() : xuất tiêu đề gồm các cột : mã nhân viên, số sản phẩm, lương, tổng

kết

toString() : trả về chuỗi chứa thông tin của nhân viên gồm các cột: Mã nhân viên

(maNV), Số sản phẩm (soSP), Lương và Tổng kết

(ii) Viết hàm main để kiểm tra lớp NhanVien theo yêu cầu sau:

Tạo 2 nhân viên với các thuộc tính cho người dùng nhập vào Xuất ra các thông tin của

(i) Xây dựng lớp CNhanVien, biết:

ần lượt là các thuộc tính họ, tên và số sản phẩm của nhân viên

ết hàm khởi tạo CNhanVien(String, String, int), hàm này sẽ khởi tạo họ, tên, số sản phẩm của nhân viên; hàm phải kiểm tra số sản phẩm là số lớn hơn hoặc bằng 0, nếu là số

âm thì gán giá trị cho mSoSP bằng 0

ết các hàm lấy và gán giá trị cho thuộc tính của lớp (các hàm get/set)

ết hàm getLuong() để tính lương cho nhân viên, lương = số sản phẩm * đơn giá, với đơn giá tùy thuộc vào số sản phẩm như sau:

Trang 36

(ii) Viết hàm main sử dụng lớp CNhanVien theo yêu cầu sau:

Cho người dùng nhập vào 2 nhân viên, mỗi nhân viên nhập vào họ, tên, số sản phẩm của

họ Hãy tính và xuất ra lương của từng nhân viên So sánh và xuất ra thông báo nhân viên nào

có số sản phẩm nhiều hơn và nhiều hơn bao nhiêu Dùng 2 cách so sánh: dùng hàm LonHon và không dùng hàm LonHon

Xây dựng lớp SinhVien với các thuộc tính của sinh viên là mã sinh viên, họ tên, điểm lý thuyết,

điểm thực hành Viết hàm main cho phép thực hiện:

(i) Nhập thông tin cho một sinh viên

(ii) Tính điểm trung bình của sinh viên (điểm trung bình = (đlt+dth)/2)

(iii) Xuất thông tin sinh viên và cho biết kết quả học tập của sinh viên (Đậu khi điểm trung bình >=5, ngược lại là Rớt)

Ngày đăng: 20/10/2014, 18:55

HÌNH ẢNH LIÊN QUAN

Hình tam giác, ngược lại trả về giá trị false. - Bài tập lập trình hướng đối tượng trong java
Hình tam giác, ngược lại trả về giá trị false (Trang 34)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w