BI TP JAVA NÂNG CAO
Thông tin liên h:
Website: https://amzuni.com
Facebook: https://www.facebook.com/amzuni
Youtube: https://www.youtube.com/channel/UCBMgtQYuwvRBPiA297S23vA
1. Lp v i tưng
To project
Name Project: ClassAndObject
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau:
a) To lp Student lưu tr cc thông tin sau:
- Tên
- Tui
- Đa ch
- S in thoi
- Đim trung bnh
b) Trong Lp MainApp:
Vit phương thc input() nhp mng 10 sinh viên vo t bn phm, s
dng lp Scanner . Hưng dn s dng lp Scanner  cui trang
- Vit phương thc print() in ra mng danh sch 10 sinh viên  nhp Đưa
project lên github
2. Hm khi to, getter, setter
To project
Name Project: GetterSetter
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau:
a) To lp Student lưu tr cc thông tin sau:
- Tên
- Tui
- Đa ch
- S in thoi
- Đim trung bnh
Lưu : mc  truy nhp cc thuc tnh l private
b) Vit phương thc get v set d liu cho cc thuc tnh. Kim tra tnh ng n
ca d liu
- Đi vi thuc tnh tui phi l s nguyên ln hơn 0.
- Đi vi im trung bnh phi l s thc ln hơn bng 0.
c) Trong Lp MainApp:
Vit phương thc input() nhp mng 10 sinh viên vo t bn phm, s
dng lp Scanner . Hưng dn s dng lp Scanner  cui trang
- Vit phương thc print() in ra mng danh sch 10 sinh viên  nhp
- Vit hm sp xp mng sinh viên theo th t im trung bnh tăng dn
Đưa project lên github
3. Overloading, package
To project
Name Project: OverLoading
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau. Đưa
project lên github
4. K tha, lp cơ s, inner class
To project
Name Project: Inheritance
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau:
a) To lp cơ s Person lưu tr cc thông tin sau:
- Tên
- Tui - S in thoi
b) To lp Student k tha lp Person lưu tr cc thông tin sau -
Đim Ton
- Đim L
- Đim Ha
- M sinh viên
- Lp
- Vit hm tnh im trung bnh: diemTrungBinh()
c) To lp Teacher k tha lp Person lưu tr cc thông tin sau
- M gio viên
- H s lương
- Vit hm tnh lương tinhLuong()
d) Khai bo mng 10 Person: Person persons = new Person[10];
- Vit hm nhp input(Person[] persons) vo mng persons gm 4 Teacher
v 6 Student
- Vit hm xut print(Person[] persons) ra mng persons
- Vit hm findTeacher(Person[] persons) tm gio viên no c lương cao
nht
- Vit hm tm sinh viên no c im trung bnh cao nht Đưa project lên
github
5. Đa hnh, abstract class, final class Name Project:
Abstracts
- Package: advance.dev
- Class: MainApp
a) Xây dng lp cơ s tru tưng Shape cha 2 phương thc tru tưng
- chuVi() : tnh chu vi ca hnh - dienTich(): tnh din tch ca hnh
b) Xây dng 3 lp k tha lp cơ s Shape Lp
Triangle (Tam gic):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich() Lp Circle (Hnh trn):
- Lưu thông tin bn knh r
- Thc thi 2 phương thc chuVi() v dienTich() Lp Rectangle (Hnh
ch nht):
- Lưu thông tin  di 2 cnh a, b
- Thc thi 2 phương thc chuVi() v dienTich()
c) Trong class MainApp
- Khai bo mng 10 phn t Shape shapes = new Shape[10]
- Vit phương thc input(Shape[] shapes) nhp gi tr cho mng shapes 3
hnh trn, 3 hnh ch nht, 4 hnh tam gic
- Vit phương thc print(Shape[] shapes) xut ra cc hnh va nhp
- Vit phương thc tm hnh c din tch lơn nht
- Vit phương thc tm din tch ln nht ca mi hnh trn, ch nht, tam
gic
Đưa project lên github
6. Lp Object Name Project: Objects
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc yêu cu sau Scanner
sc = new Scanner(System.in);
Object ten = sc.next();
Object tuoi = sc.nextInt();
Object diem = sc.nextDouble();
Tm hiu s khc bit gia kiu d liu primitive v Object Đưa
project lên github
7. Interface
Name Project: Interfaces
- Package: advance.dev
- Class: MainApp
a) Xây dng lp cơ s tru tưng Shape cha 2 phương thc tru tưng
- chuVi() : tnh chu vi ca hnh
- dienTich(): tnh din tch ca hnh
b) Xây dng interface IShape cha 2 phương thc
- input(Shape[] shapes)
- print(Shape[] shapes)
c) Xây dng 3 lp k tha (extends) lp cơ s Shape v thc thi
(implements) lp IShape
Lp Triangle (Tam gic):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
Lp Circle (Hnh trn):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
Lp Rectangle (Hnh ch nht):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
d) Trong class MainApp
- Khai bo mng 10 phn t Shape shapes = new Shape[10]
- Vit phương thc input(Shape[] shapes) nhp gi tr cho mng shapes 3
hnh trn, 3 hnh ch nht, 4 hnh tam gic
- Vit phương thc print(Shape[] shapes) xut ra cc hnh va nhp
- Vit phương thc tm hnh c din tch lơn nht
Vit phương thc tm din tch ln nht ca mi hnh trn, ch nht, tam
gic
Đưa project lên github
8. So snh interface v abstract
Name Project: InterfaceAndAbstract
- Package: advance.dev
- Class: MainApp
Lp Animal vi phương thc sau:
- eat()
Lp Machine c phương thc:
- fuel() //nhiên liu
a)
Xây d
ng c
p tr
u tư
ng:
b) Xây dng lp k tha lp cơ s
Animal - Lp Dog - Lp Fish
- Lp Bird
c) Xây dng lp k tha lp cơ s
Machine - Lp Car - Lp AirPlain
d) Xây dng 3 interfaces - Flyable c
phương thc fly()
- Runable c phương thc run();
- Swimable c phương thc swim(); e) Thc thi cc interfaces
- Đi vi Dog, Car thc thi (implements) lp Runable
- Đi vi lp Bird, AirPlan thc thi (implements) lp Flyable
- Đi vi lp Fish thc thi lp Swimable Đưa project lên github
9. Sao chp, clone Name Project: CopyClone
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau:
a) To lp Student lưu tr cc thông tin sau:
- Tên
- Tui
- Đa ch
- S in thoi
- Đim trung bnh
b) Lp Student thc thi (implements) lp Cloneable sao chp cc thuc tnh
ca Student
c) Trong Lp MainApp:
- Khi to i tưng Student std1. S dng phương thc clone  sao chp i
tưng std1 sang Sudent std2. In ra mn hnh phương thc toString() ca 2 i
tưng std1 v std2. Đưa project lên github
10. Đa k tha interface
Name Project: InterfaceInheritance
- Package: advance.dev
- Class: MainApp
To 3 lp:
a) To ba interface như sau:
public interface ICoder {
String sleep(String time);
void code();
}
public interface IGamer {
String sleep(String time);
void playGame();
}
public interface IHacker {
String sleep(String time);
void hackFacebook();
}
b) Lp ItStudent sẽ implements c ba interface :
public class ItStudent implements IHacker, IGamer, ICoder {
@Override
public void code() {
}
@Override
public void playGame() {
}
@Override
public void hackFacebook() {
}
@Override
public String sleep(String time) {
return time;
}
}
c) Khi to i tưng ItStudent v gi cc phương thc ca i tưng ra trong
phương thc main.
Đưa project lên github
11. Ngoi l, try catch
Name Project: TryCatch
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau
a) Nhp vo bn phm hai s nguyên a, b. Khai bo s nguyên c = a / b. S
dng try catch  bt li trưng hp b = 0.
b) Nhp vo bn phm mt chui a (String a). S dng hm
Interger.parse(a)  chuyn chui a sang s nguyên. S dng try catch 
bt li nhp vo không phi dng s. Đưa project lên github
12. Nm li throw v throws
Name Project: ThrowAndThrows
- Package: advance.dev
- Class: MainApp
Vit chương trnh thc hin cc nhim v sau
a) Vit phương thc divide(int a, int b) tr v return a / b. S dng throw v
throws  nm li. Gi phương thc divide  phương thc main
b) Vit phương thc parse(String a) s dng phương thc Interger.parse(a)
 chuyn chui a sang s nguyên. S dng throw v throws  nm li.
Gi phương thc parse trong phương thc main
a, b l 2 s nguyên nhp vo bn thông qua hm Scanner . Hưng dn
s dng lp Scanner  cui trang Đưa project lên github
13. Ty bin Exception Name Project: Exceptions
- Package: advance.dev
- Class: MainApp
a) To lp AgeException k tha t lp Exception.
b) Vit phương thc checkAge(int age) trong phương thc main. Nm li
AgeException nu kim tra age <= 0
c) Gi phương thc checkAge trong phương thc main.
age nhp vo t bn phm thông qua lp Scanner. Hưng dn s dng
lp Scanner  cui trang Đưa project lên github
14. Lp Collections
Name Project: CollectionsClass
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau.
Đưa project lên github
15. Iterator, Iterable, List, Queue, Set, Map
Name Project: CollectionsBase
- Package: advance.dev
- Class: MainApp
a) Xây dng lp cơ s tru tưng Shape cha 2 phương thc tru tưng
- chuVi() : tnh chu vi ca hnh
- dienTich(): tnh din tch ca hnh
Thuc tnh
- name
b) Xây dng interface IShape cha 2 phương thc
- input(Shape[] shapes)
- print(Shape[] shapes)
c) Xây dng 3 lp k tha (extends) lp cơ s Shape v thc thi
(implements) lp IShape
Lp Triangle (Tam gic):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
Lp Circle (Hnh trn):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
Lp Rectangle (Hnh ch nht):
- Lưu thông tin  di 3 cnh a, b, c
- Thc thi 2 phương thc chuVi() v dienTich()
d) Trong class MainApp
- Khai bo List<Shape> shapes = new ArrayList<Shape>();
- Vit phương thc readFromFile(List<Shape> shapes) nhp gi tr cho
mng t tp tin input.txt.
- Ni dung File input.txt
#circle1
3
#circle2
5
#circle3
6
7
8
#rectangle1
5
6
#rectangle2
6
9
#triangle1
3
3
6
#triangle2
6
8
9
Hưng dn c tp tin txt  cui trang
- Vit phương thc print(List<Shape> shapes) xut ra cc hnh va nhp.
S dng Iterator  duyt
- Vit phương thc tm hnh c din tch lơn nht, s dng Iterator  duyt
- Vit phương thc tm din tch ln nht ca mi hnh trn, ch nht, tam
gic. S dng Iterator  duyt
Đưa project lên github
16. LinkedList, ArrayList, Stack, Vector,
PriorityQueue, HashMap
Name Project: CollectionsAdvance
- Package: advance.dev
- Class: MainApp
Thc hin bi tp 15 thay ArrayList bng LinkedList. Kim tra tc  x l
vi s trgip.
long begin = System.currentTimeMillis();
//Code ... long end =
System.currentTimeMillis();
System.out.println(String.format("Thoi gian xu ly: %d mili giay", end -
begin));
Đưa project lên github
17. Lp Arrays Name Project: Arrays
- Package: advance.dev - Class: MainApp
Đưa project lên github
18. Lp HashTable v Lp Properties
Name Project: HashTableAndProperties
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau.
Đưa project lên github
19. Lp String, StringBuffer, StringTokenizer
Name Project: StringAdvance
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau. Đưa
project lên github
20. Kĩ thut Serialization, Deserialization Name
Project: Serialization
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau. Đưa
project lên github
21. Threading v Multithreading Name Project:
Threading
- Package: advance.dev
- Class: MainApp
Vit cc dng code sau.
Đưa project lên github
THÔNG TIN B SUNG:
1. Nhp thông tin t bn phm Cch 1:
/* S dng thư vin cn thit */
import java.io.*;
/* S dng phương thc System.in lm tham s cho phương thc khi to
ca InputStreamReader */
InputStreamReader isr = new InputStreamReader(System.in);
/* S dng b m d liu BufferedReader  lưu d liu c */
BufferedReader br = new BufferedReader(isr);
/* c ththực hin ược m kh ng cn lưu vo b m, khi ó bn chỉ c th c
mt byte ti mt thời im v v o mt bin kiu int, phương thc read
() trả về kiu int:
InputStreamReader isr = new InputStreamReader(System.in);
*/
int a = isr.read();
try
{
/* c mt d ng tb m; phương thc readLine () yŒu cu x l mt lỗi c
th xy ra khi nhp từ bảng iu khin trong mt khi th */
String line = br.readLine();
// chuyn i mt chui th nh mt s
int number = Integer.parseInt(line);
}
catch (NumberFormatException e) // KH NG phải l mt s ược
nhp, bn kh ng th chuyn i th nh kiu int, bt li
{
System.out.println("Kh ng phi l s nguyŒn");
}
catch (IOException e)
{
System.out.println("Li nhp tbn phm");
}
Cch 2:
package binh.dev;
import java.util.Scanner;
/**
*
* @author TranThanhBinh
*/
public class MainApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(); double b =
sc.nextDouble(); String str =
sc.nextLine();
}
}
2. Hin th gi tr s nh dng
/* S dng thư vin cn thit */ import
java.text.*;
/* S dng class, v d nh dng 5 ch s hng thp ph n */
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(5);
System.out.println(formatter.format(number));
3. V d s dng cc phương thc ton hc trong lp Math
Math.pow(10, k);
//tnh 10 m k
Math.exp(x);
//tnh e m x
Math.sqrt(x);
//tnh căn bc 2 ca x
Math.sin(x);
//tnh sin x
4. Đc tp tin text
try {
FileInputStream fstream = new FileInputStream("input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Đc từng dng từ tập tin input.txt
while((strLine = br.readLine()) != null) {
System.out.println(strLine);
}
} catch (Exception e) {
// TODO: handle exception
}
V d: https://github.com/binhdev/CollectionDemo

Preview text:

BÀI TẬP JAVA NÂNG CAO
Thông tin liên hệ:
Website: https://amzuni.com
Facebook: https://www.facebook.com/amzuni
Youtube: https://www.youtube.com/channel/UCBMgtQYuwvRBPiA297S23vA 1. Lớp và ối tượng Tạo project
Name Project: ClassAndObject - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau:
a) Tạo lớp Student lưu trữ các thông tin sau: - Tên - Tuổi - Địa chỉ - Số iện thoại - Điểm trung bình b) Trong Lớp MainApp:
Viết phương thức input() nhập mảng 10 sinh viên vào từ bàn phím, sử
dụng lớp Scanner . Hướng dẫn sử dụng lớp Scanner ở cuối trang
- Viết phương thức print() in ra mảng danh sách 10 sinh viên ã nhập Đưa project lên github 2.
Hàm khởi tạo, getter, setter Tạo project
Name Project: GetterSetter - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau:
a) Tạo lớp Student lưu trữ các thông tin sau: - Tên - Tuổi - Địa chỉ - Số iện thoại - Điểm trung bình
Lưu ý: mức ộ truy nhập các thuộc tính là private
b) Viết phương thức get và set dữ liệu cho các thuộc tính. Kiểm tra tính úng ắn của dữ liệu
- Đối với thuộc tính tuổi phải là số nguyên lớn hơn 0.
- Đối với iểm trung bình phải là số thực lớn hơn bằng 0. c) Trong Lớp MainApp:
Viết phương thức input() nhập mảng 10 sinh viên vào từ bàn phím, sử
dụng lớp Scanner . Hướng dẫn sử dụng lớp Scanner ở cuối trang
- Viết phương thức print() in ra mảng danh sách 10 sinh viên ã nhập
- Viết hàm sắp xếp mảng sinh viên theo thứ tự iểm trung bình tăng dần Đưa project lên github 3. Overloading, package Tạo project
Name Project: OverLoading - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
4. Kế thừa, lớp cơ sở, inner class Tạo project
Name Project: Inheritance - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau:
a) Tạo lớp cơ sở Person lưu trữ các thông tin sau: - Tên
- Tuổi - Số iện thoại
b) Tạo lớp Student kế thừa lớp Person lưu trữ các thông tin sau - Điểm Toán - Điểm Lý - Điểm Hóa - Mã sinh viên - Lớp
- Viết hàm tính iểm trung bình: diemTrungBinh()
c) Tạo lớp Teacher kế thừa lớp Person lưu trữ các thông tin sau - Mã giáo viên - Hệ số lương
- Viết hàm tính lương tinhLuong()
d) Khai báo mảng 10 Person: Person persons = new Person[10];
- Viết hàm nhập input(Person[] persons) vào mảng persons gồm 4 Teacher và 6 Student
- Viết hàm xuất print(Person[] persons) ra mảng persons
- Viết hàm findTeacher(Person[] persons) tìm giáo viên nào có lương cao nhất
- Viết hàm tìm sinh viên nào có iểm trung bình cao nhất Đưa project lên github
5. Đa hình, abstract class, final class Name Project: Abstracts - Package: advance.dev - Class: MainApp
a) Xây dựng lớp cơ sở trừu tượng Shape chứa 2 phương thức trừu tượng
- chuVi() : tính chu vi của hình - dienTich(): tính diện tích của hình
b) Xây dựng 3 lớp kế thừa lớp cơ sở Shape Lớp
Triangle (Tam giác):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich() Lớp Circle (Hình tròn):
- Lưu thông tin bán kính r
- Thực thi 2 phương thức chuVi() và dienTich() Lớp Rectangle (Hình chữ nhật):
- Lưu thông tin ộ dài 2 cạnh a, b
- Thực thi 2 phương thức chuVi() và dienTich() c) Trong class MainApp
- Khai báo mảng 10 phần tử Shape shapes = new Shape[10]
- Viết phương thức input(Shape[] shapes) nhập giá trị cho mảng shapes 3
hình tròn, 3 hình chữ nhật, 4 hình tam giác
- Viết phương thức print(Shape[] shapes) xuất ra các hình vừa nhập
- Viết phương thức tìm hình có diện tích lơn nhất
- Viết phương thức tìm diện tích lớn nhất của mỗi hình tròn, chữ nhật, tam giác Đưa project lên github
6. Lớp Object Name Project: Objects - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các yêu cầu sau Scanner
sc = new Scanner(System.in);
Object ten = sc.next();
Object tuoi = sc.nextInt();
Object diem = sc.nextDouble();
Tìm hiểu sự khác biệt giữa kiểu dữ liệu primitive và Object Đưa project lên github 7. Interface
Name Project: Interfaces - Package: advance.dev - Class: MainApp
a) Xây dựng lớp cơ sở trừu tượng Shape chứa 2 phương thức trừu tượng
- chuVi() : tính chu vi của hình
- dienTich(): tính diện tích của hình
b) Xây dựng interface IShape chứa 2 phương thức - input(Shape[] shapes) - print(Shape[] shapes)
c) Xây dựng 3 lớp kế thừa (extends) lớp cơ sở Shape và thực thi (implements) lớp IShape Lớp Triangle (Tam giác):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich()
Lớp Circle (Hình tròn):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich()
Lớp Rectangle (Hình chữ nhật):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich() d) Trong class MainApp
- Khai báo mảng 10 phần tử Shape shapes = new Shape[10]
- Viết phương thức input(Shape[] shapes) nhập giá trị cho mảng shapes 3
hình tròn, 3 hình chữ nhật, 4 hình tam giác
- Viết phương thức print(Shape[] shapes) xuất ra các hình vừa nhập
- Viết phương thức tìm hình có diện tích lơn nhất
Viết phương thức tìm diện tích lớn nhất của mỗi hình tròn, chữ nhật, tam giác Đưa project lên github
8. So sánh interface và abstract
Name Project: InterfaceAndAbstract - Package: advance.dev - Class: MainApp
a) Xây d ự ng c á c 2 l ớ p tr ừu tượ ng:
Lớp Animal với phương thức sau: - eat()
Lớp Machine có phương thức: - fuel() //nhiên liệu b)
Xây dựng lớp kế thừa lớp cơ sở
Animal - Lớp Dog - Lớp Fish - Lớp Bird c)
Xây dựng lớp kế thừa lớp cơ sở
Machine - Lớp Car - Lớp AirPlain d)
Xây dựng 3 interfaces - Flyable có phương thức fly()
- Runable có phương thức run();
- Swimable có phương thức swim(); e) Thực thi các interfaces
- Đối với Dog, Car thực thi (implements) lớp Runable
- Đối với lớp Bird, AirPlan thực thi (implements) lớp Flyable
- Đối với lớp Fish thực thi lớp Swimable Đưa project lên github
9. Sao chép, clone Name Project: CopyClone - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau:
a) Tạo lớp Student lưu trữ các thông tin sau: - Tên - Tuổi - Địa chỉ - Số iện thoại - Điểm trung bình
b) Lớp Student thực thi (implements) lớp Cloneable sao chép các thuộc tính của Student c) Trong Lớp MainApp:
- Khởi tạo ối tượng Student std1. Sử dụng phương thức clone ể sao chép ối
tượng std1 sang Sudent std2. In ra màn hình phương thức toString() của 2 ối
tượng std1 và std2. Đưa project lên github
10. Đa kế thừa interface
Name Project: InterfaceInheritance - Package: advance.dev - Class: MainApp Tạo 3 lớp:
a) Tạo ba interface như sau: public interface ICoder { String sleep(String time); void code(); } public interface IGamer { String sleep(String time); void playGame(); } public interface IHacker { String sleep(String time); void hackFacebook(); }
b) Lớp ItStudent sẽ implements cả ba interface ó:
public class ItStudent implements IHacker, IGamer, ICoder { @Override public void code() { } @Override public void playGame() { } @Override public void hackFacebook() { } @Override
public String sleep(String time) { return time; } }
c) Khởi tạo ối tượng ItStudent và gọi các phương thức của ối tượng ra trong phương thức main. Đưa project lên github 11. Ngoại lệ, try catch Name Project: TryCatch - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau
a) Nhập vào bàn phím hai số nguyên a, b. Khai báo số nguyên c = a / b. Sử
dụng try catch ể bắt lỗi trường hợp b = 0.
b) Nhập vào bàn phím một chuỗi a (String a). Sử dụng hàm
Interger.parse(a) ể chuyển chuỗi a sang số nguyên. Sử dụng try catch ể
bắt lỗi nhập vào không phải dạng số. Đưa project lên github
12. Ném lỗi throw và throws
Name Project: ThrowAndThrows - Package: advance.dev - Class: MainApp
Viết chương trình thực hiện các nhiệm vụ sau
a) Viết phương thức divide(int a, int b) trả về return a / b. Sử dụng throw và
throws ể ném lỗi. Gọi phương thức divide ở phương thức main
b) Viết phương thức parse(String a) sử dụng phương thức Interger.parse(a)
ể chuyển chuỗi a sang số nguyên. Sử dụng throw và throws ể ném lỗi.
Gọi phương thức parse trong phương thức main
a, b là 2 số nguyên nhập vào bàn thông qua hàm Scanner . Hướng dẫn
sử dụng lớp Scanner ở cuối trang Đưa project lên github
13. Tùy biến Exception Name Project: Exceptions - Package: advance.dev - Class: MainApp
a) Tạo lớp AgeException kế thừa từ lớp Exception.
b) Viết phương thức checkAge(int age) trong phương thức main. Ném lỗi
AgeException nếu kiểm tra age <= 0
c) Gọi phương thức checkAge trong phương thức main.
age nhập vào từ bàn phím thông qua lớp Scanner. Hướng dẫn sử dụng
lớp Scanner ở cuối trang Đưa project lên github 14. Lớp Collections
Name Project: CollectionsClass - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
15. Iterator, Iterable, List, Queue, Set, Map
Name Project: CollectionsBase - Package: advance.dev - Class: MainApp
a) Xây dựng lớp cơ sở trừu tượng Shape chứa 2 phương thức trừu tượng
- chuVi() : tính chu vi của hình
- dienTich(): tính diện tích của hình Thuộc tính - name
b) Xây dựng interface IShape chứa 2 phương thức - input(Shape[] shapes) - print(Shape[] shapes)
c) Xây dựng 3 lớp kế thừa (extends) lớp cơ sở Shape và thực thi (implements) lớp IShape Lớp Triangle (Tam giác):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich()
Lớp Circle (Hình tròn):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich()
Lớp Rectangle (Hình chữ nhật):
- Lưu thông tin ộ dài 3 cạnh a, b, c
- Thực thi 2 phương thức chuVi() và dienTich() d) Trong class MainApp
- Khai báo List shapes = new ArrayList();
- Viết phương thức readFromFile(List shapes) nhập giá trị cho
mảng từ tập tin input.txt.
- Nội dung File input.txt #circle1 3 #circle2 5 #circle3 6 7 8 #rectangle1 5 6 #rectangle2 6 9 #triangle1 3 3 6 #triangle2 6 8 9
Hướng dẫn ọc tập tin txt ở cuối trang
- Viết phương thức print(List shapes) xuất ra các hình vừa nhập.
Sử dụng Iterator ể duyệt
- Viết phương thức tìm hình có diện tích lơn nhất, sử dụng Iterator ể duyệt
- Viết phương thức tìm diện tích lớn nhất của mỗi hình tròn, chữ nhật, tam
giác. Sử dụng Iterator ể duyệt Đưa project lên github
16. LinkedList, ArrayList, Stack, Vector, PriorityQueue, HashMap
Name Project: CollectionsAdvance - Package: advance.dev - Class: MainApp
Thực hiện bài tập 15 thay ArrayList bằng LinkedList. Kiểm tra tốc ộ xử lý với sự trợ giúp.
long begin = System.currentTimeMillis(); //Code ... long end =
System.currentTimeMillis();
System.out.println(String.format("Thoi gian xu ly: %d mili giay", end - begin)); Đưa project lên github
17. Lớp Arrays Name Project: Arrays
- Package: advance.dev - Class: MainApp Đưa project lên github
18. Lớp HashTable và Lớp Properties
Name Project: HashTableAndProperties - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
19. Lớp String, StringBuffer, StringTokenizer
Name Project: StringAdvance - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
20. Kĩ thuật Serialization, Deserialization Name Project: Serialization - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
21. Threading và Multithreading Name Project: Threading - Package: advance.dev - Class: MainApp
Viết các dòng code sau. Đưa project lên github
THÔNG TIN BỔ SUNG:
1. Nhập thông tin từ bàn phím Cách 1:
/* Sử dụng thư viện cần thiết */ import java.io.*;
/* Sử dụng phương thức System.in làm tham số cho phương thức khởi tạo của InputStreamReader */
InputStreamReader isr = new InputStreamReader(System.in);
/* Sử dụng bộ ệm dữ liệu BufferedReader ể lưu dữ liệu ọc */
BufferedReader br = new BufferedReader(isr);
/* c thể thực hiện ược m kh ng cần lưu vào bộ ệm, khi ó bạn chỉ c thể ọc
một byte tại một thời iểm v v o một biến kiểu int, vì phương thức read () trả về kiểu int:
InputStreamReader isr = new InputStreamReader(System.in); int a = isr.read(); */ try {
/* ọc một d ng từ bộ ệm; phương thức readLine () yŒu cầu xử l một lỗi c
thể xảy ra khi nhập từ bảng iều khiển trong một khối thử */ String line = br.readLine();
// chuyển ổi một chuỗi th nh một số
int number = Integer.parseInt(line); }
catch (NumberFormatException e) // KH NG phải l một số ược
nhập, bạn kh ng thể chuyển ổi th nh kiểu int, bắt lỗi {
System.out.println("Kh ng phải là số nguyŒn"); } catch (IOException e) {
System.out.println("Lỗi nhập từ bàn phím"); } Cách 2: package binh.dev;
import java.util.Scanner; /** *
* @author TranThanhBinh */
public class MainApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); int a = sc.nextInt(); double b = sc.nextDouble(); String str = sc.nextLine(); } } 2.
Hiển thị giá trị số ịnh dạng
/* Sử dụng thư viện cần thiết */ import java.text.*;
/* Sử dụng class, ví dụ ịnh dạng 5 chữ số hàng thập ph n */
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(5);
System.out.println(formatter.format(number)); 3.
Ví dụ sử dụng các phương thức toán học trong lớp Math Math.pow(10, k); //tính 10 mũ k Math.exp(x); //tính e mũ x Math.sqrt(x); //tính căn bậc 2 của x Math.sin(x); //tính sin x 4.
Đọc tập tin text try {
FileInputStream fstream = new FileInputStream("input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); String strLine;
//Đọc từng dòng từ tập tin input.txt
while((strLine = br.readLine()) != null) {
System.out.println(strLine); }
} catch (Exception e) { // TODO: handle exception }
Ví dụ: https://github.com/binhdev/CollectionDemo