ự ọ
T h c java ể Bài 3: Cách khai báo bi n , h ng và các ki u ằ ế d li u trong Java
ữ ệ
1, Bi n trong Java
ế
- Bi n là vùng nh dùng đ l u tr các giá tr c a ch ng trình. ể ư ị ủ ữ ế ớ ươ
ộ ỗ ắ ế ấ ọ ộ ể ữ ệ ỗ ạ ằ ướ ộ ấ i hay d u dollar. ấ
ng trình. ế c trùng v i các t ươ khóa : abstract, assert, ượ ữ gi a tên. ắ ở ữ b t kỳ n i đâu trong ch c khai báo ơ ở ấ khóa trong Java. (Ví d t ụ ừ ừ ớ
t ch hoa ch th ư ữ ậ ặ - M i bi n g n li n v i m t ki u d li u và m t đ nh danh duy nh t g i là tên bi n. ế ộ ị ề ớ ng là m t chu i các ký t - Tên bi n thông th (Unicode), ký s . ườ ố ế ự - Tên bi n ph i b t đ u b ng m t ch cái ho c m t d u g ch d ặ ộ ả ắ ầ ế - Tên bi n không có kho ng tr ng ả ế - Trong java, bi n có th đ ể ượ - Tên bi n không đ ế boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends final, finally, float, for,goto, if , implements , import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short , static, strictfp, super, switch, synchronized, this throw, throws, transient, try, void, volatile, while.) - Ví d :ụ Tên bi n đúng: a , _a, A, _b, _B, $d, hoTen, _giaTri, sinhVien1, sinhVien2 ế Tên bi n sai: 5a , hoc sinh, 1gia tri, if, try ế - L u ý: Trong Java phân bi các bi n, các đ i t ng trình. ng, vì v y chúng ta c n l u ý khi đ t tên cho ầ ư ữ ườ ng d li u cũng nh các x lý trong ch ử ư ệ ữ ệ ố ươ ươ ễ
2, Khai báo bi nế trong Java.
ệ
ể
ế
ữ
ể
ố
ệ
ể
ế
ữ
ự
[Ki u d li u] [tên bi n]; ế ệ ư ế ể ữ ệ
khóa (public, private, ….) tr ừ ướ ng đ i t ầ Tên bi n = giá tr ị ế ể c dòng khai báo bi n (vd: private ế ng trong Java. ố ượ ầ ướ ị, ho c gán ngay trong quá ặ ế
ị ủ
ế
ị
ư ệ ả ặ ạ ỗ ị
C u trúc câu l nh khai báo bi n trong java nh sau: ấ Ví d :ụ Mã: int giaTri; // Khái báo bi n có tên là “giaTri”, ki u d li u là int – ki u s nguyên. String hoTen; //Khai báo bi n có tên là “hoTen”, ki u d li u là String – Là ỗ ộ m t chu i ký t . - Ngoài ra còn có thêm t String hoTen), ph n này mình s nói khi chúng ta sang ph n h ẽ - Đ gán giá tr cho bi n ta ch vi c dùng cú pháp ỉ ệ trình khai báo ví d :ụ Mã: int giaTri; giaTri = 5; Ho cặ Mã: int giaTri = 5; Đ in m t chu i văn b n ho c giá tr ra màn hình Console ta dùng l nh d ng nh sau: ộ ể Mã: System.out.print(“Giá tr c a bi n là: ”+ giaTri1 + giaTri2); ế // giaTri1 và giaTri2 là 2 bi n đã khai báo và gán giá tr . i thi u các ki u d li u trong Java 3, Gi ể ữ ệ
ớ
ệ
ữ ệ ơ ở ể ữ ệ ủ Trong Java có 2 nhóm ki u d li u, th nh t là ki u d li u nguyên th y (d li u c s ) và ứ ấ th 2 là nhóm ki u d li u m r ng: (photo) ể ữ ệ ở ộ ể ữ ệ ứ
ẽ ỉ ớ ể ữ ệ ủ ữ Ở m r ng s đ t vào bài h c vi ng đ i t ng trong Java. trong bài này bài này mình s ch gi ế ở ộ ẽ ượ ướ i thi u các ki u d li u nguyên th y, còn nh ng ki u ể ệ ố ượ
a, Ki u s nguyên: ể ố
b, Ki u s th c: ể ố ự
(char) c, Ki u d li u ký t ể ữ ệ ự
m i bi n char s có giá tr là m t kí t Unicode. ộ ị ự ẽ ế ự ỗ ụ c đ t trong d u nháy đ n ‘ ’, không ph i là nháy kép “ ả ấ ơ ị ể ế ượ ặ
ế ị ế ự -Đây là ki u d li u v kí t ề ể ữ ệ Ví d : ’a’,’b’, ‘d’,’$’,… -Chú ý, giá tr đ gán cho các bi n đ ” nhé. Vd: char kyTu; // Khai báo bi n kyTu ki u char ể kyTu = ‘a’; // Gán giá tr bi n kyTu là ký t ‘a’ - Giá tr kh i t o m c đ nh c a ki u char là null ặ ị ở ạ ủ ể ị
d) Ki u d li u Boolean ể ữ ệ
ặ ặ ị - Đây là ki u d li u ch nh n m t trong 2 giá tr true ho c false (đúng ho c sai) - Giá tr kh i t o m c đ nh c a ki u boolean là false ể ữ ệ ở ạ ỉ ặ ị ậ ủ ộ ể ị
4, H ngằ
ằ ế ươ ằ ế ướ ng h p giá tr h ng d ng long ta thêm vào cu i chu i s ch “l” hay ằ ng trình c gi ng nh tên bi n. ư ở ạ ỗ ố ữ ố
ằ ị ằ ữ ế ờ ợ ữ
ữ ằ ặ ơ ữ ằ ấ
- H ng là m t giá tr b t bi n trong ch ị ấ ộ c đ t theo qui - Tên h ng đ ố ượ ặ - H ng s nguyên: tr ị ằ ợ ườ ố “L”. (ví d : 1L, 5L, 3L) ụ - H ng s th c: tru ng h p giá tr h ng có ki u float ta thêm ti p vĩ ng “f” hay “F”, còn ki u ể ể ố ự s double thì ta thêm ti p vĩ ng “d” hay “D”. ế ố - H ng Boolean: java có 2 h ng boolean là true, false. ằ ằ : là m t ký t - H ng ký t đ n n m gi a n m gi a 2 d u ngo c đ n. ự ơ ộ ự ằ Ví d : ‘a’: h ng ký t ằ ụ M t s h ng ký t t (photo) a ự đ c bi ự ặ ộ ố ằ ệ
đ ợ ấ ằ ậ ữ ộ ằ ỗ c đ t gi a hai d u nháy kép “ ”. M t h ng chu i ự ộ ằ ự ượ ặ nào là m t h ng chu i r ng. ỗ ỗ ụ c khai báo và s ả ể ữ ệ ơ ở ư ẫ ượ ử ộ ng trình. final + ki u d li u + tên h ng = giá tr c n gán ể ữ ệ , ví d : ụ ị ầ ằ
ọ ạ ằ ậ ậ ả ọ ẽ ấ ủ ừ ử ạ ừ ể ế ể - H ng chu i: là t p h p các ký t ỗ không có ký t Ví d : “Ban dang tham gia khoa hoc Java mien phi tai Android.Vn” L u ý: H ng chu i không ph i là m t ki u d li u c s nh ng v n đ ỗ ằ ư d ng trong các ch ươ ụ Cú pháp khai báo h ng: ằ Mã: final int NAM_SINH = 1992; i, Bài t p làm ngay khi đ c xong bài này, b n th làm b ng cách bình lu n phía d ướ ủ mình s ch m đi m cho t ng bài c a t ng b n đ đánh giá k t qu h c bài này c a ỗ ạ m i b n
ế ế ữ
ị ấ ổ ố ế ế ị ễ ế ớ ế ườ ằ c gán vào trong thân ch ng trình, hãy vi t ch ng tròn – ki u ể ng trình tính di n tích và ệ ể ố ự ươ ượ ươ ế Bài 1: Trong nh ng tên bi n sau, tên bi n nào khai báo sai: a , c, _a, 3a, %s, *d, _e, class, _else, super, $super, ^void, $goTo, Public, Return, If, _case, New, $new; Bài 2: Khai báo 2 bi n nguyên (int), gán giá tr b t kỳ cho 2 bi n, tính t ng 2 s , gán t ng vào bi n t, in giá tr bi n t ra ngoài màn hình. ổ Bài 3: Khai báo h ng PI = 3.14 ki u s th c, v i bi n r là bán kính đ s th c, đ ố ự chu vi hình tròn, in k t qu ra màn hình. ế ả
t ự ậ ệ ồ cho rõ ràng và đ n code giác ọ ạ trong th n spoiler ẻ ẩ c khi th s c t ớ làm bài t p, hoàn thi n r i đăng lên, các bài b n đã làm, nên đ ể , đ khi ể ạ làm, b n không nên nhìn code c a các b n ử ứ ự ể ẩ ạ ẻ ướ ủ (Chú ý: Các b n nên ạ code trong th code - ch n th PHP ẻ click vào m i hi n code lên , tr ệ khác đã đăng nhé )
ử
ọ và bi u th c, hàm toán h c
ứ
ể
Bài 4: Toán t trong Java
1, Toán tử s h c:
ố ọ
ư
ệ
ế
ả
V i 2 câu l nh a= a+1 và a++ có k t qu là nh nhau, t: ệ
ớ ề ả
ự
ấ ằ
ị
ỡ ố
ắ
ạ
ơ
ọ
Ví d :ụ PHP: public class SoHoc { public static void main(String[] args) { int a, b, du, nguyen; a = 10; b = 3; du = a % b; nguyen = a / b; System.out.println("Ph nầ dư (a:b) là: " + du); System.out.println("Ph nầ nguyên (a:b) là: " + nguyen); a++; System.out.println("Giá trị a đã tăng lên 1, giá trị m iớ là : " + a); b--; System.out.println("Giá trị c aủ b đã gi mả đi 1, giá trị mớ i là: " + b); System.out.println("V iớ 2 giá trị a, b m iớ trên, Tích (a x b) = " + a * b); } } L u ý: ư nh ng v b n ch t có s khác bi ư a = a+1 là gán a b ng giá tr a+1, còn phép a++ là tăng a lên 1, phép a++ đ t n tài nguyên h n, cú pháp ng n g n, các b n nên ch n cách này đ ch
i u h n
ng trình t
ố ư
ươ
ể
ọ
ơ
2, Toán t
trên
ử
quan hệ, logic:
Ví d :ụ
cượ gán b ngằ giá trị phủ
PHP: public class QuanHeLogic { public static void main(String[] args) { boolean soSanh; int a, b; a = 5; b = 10; soSanh = (a == b); System.out.println("K tế quả so sánh " + a + "=" + b + " k hông? " + soSanh); soSanh = (a < b); System.out.println("K tế quả so sánh " + a + "<" + b + " k hông? " + soSanh); soSanh = (a!=b); System.out.println("K tế quả so sánh " + a + "#" + b + " k hông? " + soSanh); soSanh = (a >= b); System.out.println("K tế quả so sánh " + a + ">=" + b + " không? " + soSanh); soSanh = (a < b)||(a==b); System.out.println("K tế quả so sánh " + a + "<=" + b + " không? " + soSanh); soSanh = !true; System.out.println("Bi nế soSanh đ c aủ true, giá trị đó là: "+soSanh); đ nhị } }
3, Toán t trên bit: ử
ữ ứ ư Ở ế ỉ ớ ả ơ ả ị ạ ả ệ ế ể ớ ị
trái 1 bit thì giá trị là: "
trái 2 bit thì giá trị là: "
ph iả 1 bit ph iả 2 bit
ph iả 1 bit thì giá trị là: "
ả ế ị ị ả ế ồ ế ạ ầ ệ ế i c n bi ạ ả i sao có phép nhân, phép chia r i, chúng ta l ậ ạ ơ ườ t 2 phép t ki m tài nguyên h th ng h n là b n dùng phép ể ơ ệ ươ ể ệ ạ ng trình ch y nhanh h n. Nó cũng th hi n tính chuyên nghi p trong ậ ọ ọ ề ượ ệ ố ng. Nói chung, khi có th , b n nên dùng 2 phép này đ ể ạ ạ ủ ố ả ề ổ ầ c h c, mình s ạ t nói v ph n này!) ả ươ ng i đây:
ử - ki n th c c b n, chúng ta ch a nghiên c u sâu vào nh ng toán t ứ ơ ả này, mình ch chú ý t i 2 phép đó là d ch trái, d ch ph i. Hi u c b n thì ị ị d ch trái d ch ph i n bit cho k t qu gi ng vi c b n nhân v i 2^n và chia ả ố ị cho 2^n (d ch trái – nhân, d ch ph i - chia) ả ị - Vd s 16: ố D ch trái đi 2 bit thì k t qu là nhân 16 x 2^2 = 64 D ch ph i đi 3 bit thì k t qu là chia 16 : (2^3) = 2 - V y t này. Vì 2 phép này ti chia thông th ch cách l p trình c a b n! (Ph n này đa s các b n h c CNTT c b n đ u đ ẽ ạ ầ ơ ả không gi i thích nhi u, b n nào ch a hi u có th tìm trên m ng xem. ể ể ạ ư N u th y không n, mình s vi t 1 bài vi ề ế ẽ ế ấ ế t cú pháp và cách s d ng 2 phép này, b n tham kh o ch Đ bi ạ ử ụ ể ế trình d ướ PHP: public class PhepDich { public static void main(String[] args) { int a, dichPhai1, dichPhai2, dichTrai1, dichTrai2; a = 16; dichTrai1 = a << 1; dichTrai2 = a << 2; System.out.println("Giá trị a ban đ u:ầ " + a); System.out.println("Khi a d chị + dichTrai1); System.out.println("Khi a d chị + dichTrai2); System.out.println("\n"); // Xu ngố dòng dichPhai1 = a >> 1; // D chị dichPhai2 = a >> 2; // D chị System.out.println("Giá trị a ban đ u:ầ " + a); System.out.println("Khi a d chị + dichPhai1);
ph iả 2 bit thì giá trị là: "
System.out.println("Khi a d chị + dichPhai2); } }
4, Toán t
ép ki u:
ử
ể
ki u nh sang
ể ộ
ừ ể
ỏ
ki u l n sang ki u
ể ớ ể
ừ ể ớ
ể
ẹ ả
ỏ
- Ép ki u r ng (widening conversion): t
ki u l n (không m t mát thông tin)
ấ
- Ép ki u h p (narrow conversion): t
nh (có kh năng m t mát thông tin)
ấ
ế
ể
B n hãy tham kh o ch
ng trình nh sau:
ạ
ả
ươ
ỏ
PHP: public class EpKieu { public static void main(String[] args) { float soThuc; int soNguyen; soThuc = 10.6f; soNguyen = (int) soThuc; System.out.println("Số th cự vào là: " + soThuc); System.out.println("Số nguyên ép ki uể từ số th cự là: " + soNguyen); } }
5, M t s hàm toán h c:
ộ ố
ọ
ạ
ư
ấ
ấ ẽ ấ ấ
ề
Java, b n kéo xu ng và ch n cái b n c n.
ẽ ợ ạ
ẵ
ạ
ọ
ọ
ạ ố ấ ủ
ố
ỏ
Các b n thao tác nh sau, gõ “Math.” (có d u ch m phía cu i), ố r i n Ctrl + “cách”, IDE s g i ý cho b n s th y r t nhi u hàm ồ ấ toán h c có s n trong ầ Vd: Math.min(a,b): tìm giá tr nh nh t c a 2 s a và b ị Math.sqrt(b): tính căn c a s b ố
ủ
ộ ố
ụ ể ể
B n xem ví d đ hi u m t s hàm này ạ PHP: public class ToanHoc { public static void main(String[] args) { float a = -3.2f; float b = 16.4f; float triTuyetDoi; float can;
float min; triTuyetDoi = Math.abs(a); System.out.println("Giá trị tuy tệ đ iố c aủ a là: "+triTuyet Doi); can = (float) Math.sqrt(b); System.out.println("Căn c aủ b là: "+can); min = Math.min(a, b); // Hàm tìm giá trị nhỏ nh tấ c aủ 2 số System.out.println("Giá trị nhỏ nh tấ c aủ 2 số a và b là: "+min); } }
Bài t p v nhà: ậ ề
ế
ầ
ị ầ
ư
ả
ố
ị
Bài 1: Các bi n a, b, c là các s nguyên. Gán giá tr cho các bi n. ế ố Tìm ph n nguyên khi chia các s này cho 2, tìm ph n d khi chia ố các s này cho 3, in k t qu ra màn hình. Tăng giá tr a, b, c m i ỗ bi n lên 1, in giá tr 3 s ra màn hình. ị
ế ố
ế
i ph
ươ
ố ự
ng trình 2ax+b = 8c v i a, b, c là s th c – đ ớ ị ầ
ề ố
ả
ượ c Bài 2: Gi ả ng trình, x cũng là s th c, là giá tr c n tìm. gán giá tr trong ch ố ự ươ ị Sau khi tính x in k t qu ra màn hình, ép ki u x v s nguyên, in ể ế k t qu ép ki u c a x ra màn hình! ủ
ể
ế
ả
ượ
t ch
ị
ươ
ạ ươ
ủ
ế
ộ ng trình. Vi ả
ố
ả
c gán giá Bài 3: Cho a, b, c là đ dài 3 c nh tam giác, a, b, c đ ng trình tính di n tích s c a tam tr trong ch ệ giác, in k t qu ra màn hình. Tìm s đo 3 góc c a tam giác đó, in ủ ế k t qu ra màn hình. ế ấ
ứ
ể
Bài 5: C u trúc if ..else, bi u th c boolean và coding style trong Java
1, C u trúc đi u ki n if … else ề
ệ
ấ
ệ >){
ố
ệ >;
t này: ế ủ ủ ề ặ ạ ọ ậ , chúng ta b t đ u vào ch đ chính c a bài vi ờ ữ ỏ ế ắ ầ ừ ộ ớ ấ ặ ố ệ ượ ặ ư ố ệ ố ệ
ế ữ đây là d ng logic, nghĩa là nó ch có th là đúng ho c sai. ể ặ ỉ ố ẵ ạ ế ẽ ng trình nh sau: ư
Bây gi
V i nh ng b n đã t ng h c l p trình pascal, c, ho c 1 ngôn ng nào đó, thì có
ữ
ớ
ớ
quá quen thu c v i c u trúc này. Ch có 1 chú ý nh n u nh b n nào m i
l
ư ạ
ỉ
ẽ
ch h c pascal đó là các kh i l nh trong Java đ
ọ
c đ t trong 2 d u ngo c nh n:
ấ
ỉ ọ
{
ệ >){
>;
>;
ế ữ ụ ố ẵ ng trình nh sau: t ch ố ẻ ươ ư
}
}
D ng 2:
ạ
PHP:
ề
if (<đi u_ki n
ể
Ph n này, anh Vi ầ ệ ả
t bên Blog StudyAndShare nói r t k r i, các b n tham kh o ấ ỹ ồ ạ video nhé!
3, Coding style – Cách vi
t mã l nh trong Java
ế
ệ
ọ ầ ắ ễ ọ ẹ ễ ể ế ủ ạ
t theo quy cách b n thích nh ng d
ạ
ệ ư
ấ
i đ c
ạ ọ
ng, các t ng th c: B t đ u b ng ch cái th li n nhau, ừ ề t hoa ch cái đ u. Ví d : ten, hoTen, lop, ờ ạ
ứ
sau vi ỏ
ắ ầ
ế ươ
ữ ữ
ầ ừ
cách nhau b i d u “_”, ví d : PI , HANG_SO, ở ấ ừ ụ
t hoa ch cái đ u c a m i t t li n nhau, ví , vi ầ ủ ế ề ỗ ừ ữ ế - Mình b sung thêm ph n này vào trong bài này vì nó cũng ng n g n thôi, tuy
ổ
i r t quan tr ng, nó giúp code Java c a b n đ p, d nhìn, d hi u, d
v y nó l
ễ ể
ạ ấ
ậ
i đây là
i. T t nhiên b n có th vi
s a l
ạ
ướ
ấ
ử ỗ
quy cách mà nhi u l p trình viên áp d ng. Có đôi ch b n th y có nh ng khái
ữ
ỗ ạ
ụ
ề ậ
, b n hãy b qua, mai này quay l
ni m ch a g p bao gi
ư ặ
- Tên bi n, tên ph
ườ
ằ
ế
tr t
đ u tiên, nh ng t
ụ
ữ
ừ ừ ầ
namSinh, maSinhVien, …v.v.
- Tên h ng: Vi
t in hoa, các t
ế
ằ
NAM_SINH, …
- Tên Object, tên class (l p) vi
ớ
d : QuanLySinhVien, HangHoa, ViDuDemo, …..
ụ
ỹ ể ể ể ọ ế ạ ơ ề ư ớ ắ ầ ư t riêng v v n đ
ề ấ
t nhi u khái ni m, b n
ạ
ệ
ả ọ ạ ,
i ạ ẫ ắ Ngoài ra, đ hi u k , sâu h n, b n có th đ c thêm 1 bài vi
này, nh ng khi m i b t đ u, đ đ b r i do ch a bi
ề
nên b qua , nh ng mình v n li
ắ
ư
ỏ
t v cách vi
t chi ti
xem bài vi i đây. ế
t kê vì mai này ch c ch n b n ph i đ c l
t mã l nh t
ệ ể ỡ ị ố
ệ
ế ế ề ế ạ
Bài t p v nhà:
ậ ề
ng trình. a là s nguyên. Xét xem a có ị ố
ế ế Bài 1: Gán giá tr cho bi n a trong ch
ươ
chia h t cho 5 không, n u có báo ra màn hình là chia h t cho 5, n u không, hãy
tìm th ế
ế
ng và s d và in ra màn hình. ế
ươ ố ư
c gán trong ch ng trình, k c s âm và ể ả ố ớ ố ự ượ ng. Hãy báo ra màn hình đây có ph i là đ dài c a 1 tam giác không, n u có ế ả ộ ươ
ủ Bài 2: V i a, b, c là các s th c đ
d
ươ
thì đó là c a lo i tam giác nào.
ạ ủ
i ph ả ớ ươ
c gán giá tr trong ch
ị ố ự
ng trình b c 2: ax^2 + bx + c = 0 v i a, b, c là các s th c
ả ệ ng trình b c 2 và in nghi m) Bài 3: Gi
đ
ượ
(N u a = 0 báo ra màn hình đây không ph i là ph
ế ậ
ng trình. In k t qu các nghi m ra màn hình.
ươ
ươ ế
ả ệ ậ
Bài 6: C u trúc Switch Case trong Java!
ấ
C u trúc Switch…Case:
ấ
ả
ự ệ
ớ
ợ
ơ
ườ
i nhi u
ề
ẽ
ầ
ế
ề
ng h p giá tr c a bi n, n u dùng if - else nhi u thì code s
ặ
ị ủ
ạ
ạ
t nh t nh ng là phù
ư
ấ
ấ
ế
ể
ả
ố
Đ n gi n, khi chúng ta c n x lý các s ki n liên quan t
ử
tr
ế
dài, l p, không m ch l c, nên chúng ta dùng c u trúc Switch
Case đ thay th ! Nó không ph i là cách t
h p v i nhi u tình hu ng!
ố
ề
ợ
ớ
c vi
ượ
ế
t nh sau:
ư
ấ
ố
ệ
ệ
ố
>:
>;
>:
>;
Trong Java, c u trúc Switch Case đ
PHP:
switch () {
case :
;
break;
case
ố ệ
>;
i:
ạ ộ
ư
ướ
t ch
ng trình, gán bi n nguyên a là 1 giá
ớ
ầ
ế
ế
ủ ậ
ế
ị ấ
ứ
ị
ạ
ả
1 t
i 7".
ừ ớ
c vi
ỉ ượ
ng trình s d ng Switch Case s đ
ươ
ử ụ
ẽ ượ
c gán s nguyên t
ố
t nh sau:
ư
ế
Ví d :ụ V i yêu c u sau: Vi
ươ
tr b t kỳ. N u a = 1 thì in ra màn hình là "Ch nh t", a = 2 thì in ra
ế
"Th Hai", ..... a = 7 thì in ra "Th B y". N u a không trong kho ng [1 ;
ứ ả
7] thì báo "B n đã gán sai giá tr , ch đ
Ch
PHP:
public class SwitchDemo {
public static void main(String[] args) {
int a = 3;
switch (a) {
case 1:
System.out.println("Chủ nh t"ậ );
break;
case 2:
System.out.println("Thứ Hai");
break;
case 3:
System.out.println("Thứ Ba");
break;
case 4:
System.out.println("Thứ T "ư );
break;
case 5:
System.out.println("Thứ Năm");
break;
case 6:
System.out.println("Thứ Sáu");
break;
case 7:
System.out.println("Thứ B y"ả );
break;
default:
System.out.println("B nạ đã gán sai giá tr ,ị chỉ đư
cợ gán số nguyên từ 1 t iớ 7");
break;
}
}
}
Chú ý:
ế
ể
ữ ệ
ỉ ỗ ợ ể
ừ
ữ ệ
ề
ể
ớ
- Ki u d li u c a bi n trong switch ch h tr ki u d li u:
ữ ệ int,
ủ
JDK 7, h tr thêm ki u String và các giá tr
byte, short,char, t
ị
ỗ ợ
ể
truy n vào trong m i case thì ph i trùng ki u d li u v i bi n
ế
ả
ỗ
trong switch.
ấ
ả
ắ
ộ
ươ
ể
ạ
ạ
ng h p nh t đ nh, nh ng khi đó, ch
ớ
ấ ị
ươ
ư
ể ừ
ề
ỏ
- L nh "break" trong c u trúc này không ph i là b t bu c ph i có
ả
ệ
ng trình m i ch y, b n có th không dùng "break" v i
ớ
thì ch
ế
ng trình s ch y h t
tr
ạ
ẽ
ợ
ườ
ươ
khi ch
các kh i l nh trong các "case" ti p theo sau, k t
ng
ố ệ
trình tìm đ
ế
i khi h t
ớ
ị
ượ
"case" ho c g p l nh "break".
ặ
ế
c "case" có giá tr truy n vào th a mãn, t
ặ ệ
t bên Blog StudyAndShare
ủ
ệ
B n nên tham kh o 2 video c a anh Vi
ả
đ hi u rõ h n v c u trúc này:
ơ ề ấ
ạ
ể ể
ế
t
0 đ n 9. Vi
ế
ế
ừ
ằ
ươ
ố
ụ
ng trình in ra tên các ch s nh p vào b ng ti ng Anh. Ví d
ng trình ch y s in ra “1 đ c là One”, gán a
ữ ố
ạ
ậ
ẽ
ươ
ằ
ọ
Bài t p v nhà:
ậ ề
Bài 1: Gán bi n a là 1 trong các s ngu yên t
ế
ch
gán a b ng 1 thì ch
= 2 thì in ra “2 đ c là Two”
ọ
ị
ế
ầ
ộ ậ
ợ
c âm.
ượ
ế
ế
ạ
ậ
Bài 2: Khai báo 2 bi n nguyên “thang” và “nam” gán giá tr là
tháng và năm.Yêu c u “thang” thu c t p h p [1..12], năm không
đ
- N u gán sai tháng thì báo “B n đã nh p sai tháng”, n u gán sai
năm thì báo “B n đã gán sai năm”. Khi 1 trong 2 thông tin b gán
ạ
ị
ệ
ữ
ạ
ẽ
ậ
ườ
ng.
ậ
ế
ậ
ự
ị
sai, nh ng câu l nh sau s không ch y!
- N u năm đó là năm nhu n thì in ra thông báo: Đây là năm
nhu n. không thì báo ra là năm th
- D a vào thông tin năm đó là năm nhu n hay không và giá tr
c a tháng đó là tháng nào đ báo ra tháng đó có bao nhiêu ngày.
ủ
ể
ậ
ệ
Bài 7: Nh p xu t d li u trên giao di n
ấ ữ ệ
Console
ặ
ệ
ứ ự
ẻ ơ ớ
ầ
ế
i thi u theo th t
ng, input – output trong
ớ
này thì có v h i s m, vì nó liên quan đ n
ế
java (là 1 ph n dài dài) nh ng do
ư
ậ
i, s ph i nh p
ặ ắ ớ ẽ ả
ng trình.
ơ
ị
ố
ậ ữ ệ
ệ
ậ ữ ệ
ẽ ố
Ở
ơ
ế
ệ
ạ
ả
ệ
ằ
bài này, mình s gi
ẽ ớ
ượ
ề
ể
ấ ượ
ụ
ẽ
i).
- M c dù n u gi
ế
ớ
khái ni m đ i t
ố ượ
ệ
ti p theo nh ng bài liên quan t
i m ng, các vòng l p s p t
ữ
ả
nhi u d li u, chúng ta không th c gán giá tr trong ch
ề ữ ệ
ươ
ể ứ
l p trình pascal, C c
Nói đ n gi n, thì vi c nh p d li u này nó gi ng nh
ơ
ư ở ậ
ả
ng thì nh p d li u qua màn hình ms-dos (v i java n u b n dùng
b n – th
ế ạ
ớ
ườ
ả
câu l nh java, javac trong cmd thì nó cũng s gi ng nh v y, nh ng b t ti n) .
ấ ệ
ư
ư ậ
ệ
c,
nh ng bài tr
-
ướ
đây, chúng ta có 1 giao di n tích h p vào IDE, n i mà
ở ữ
ợ
ệ
các b n in k t qu ra (l nhSystem.out.println…), và bây gi
ậ ữ
, chúng ta nh p d
ờ
li u vào b ng chính màn hình đó.
i thi u
ệ
c đi u này, nh ng
- Có nhi u cách đ làm đ
ề
c các ki u
cách mà theo mình là ng n g n d hi u nh t đ nh p và l y đ
ể
ọ ễ ể
ắ
d li u thông d ng : ki u nguyên, ki u th c, ki u chu i. (Đi sâu h n, mình s
ơ
ỗ
ể
ể
ữ ệ
nói trong ph n input – output , ch c là vài bài n a m i t
ớ ớ
ư ở
ấ ể ậ
ể
ự
ữ
ầ
ắ
đ u ch
ng trình
Đ u tiên là b n ph i thêm gói này vào
ả
ầ
ạ
ở ầ
ươ
PHP:
import java.util.Scanner;
ng Scanner, tên đ i t
ng b n t
ươ
ố ượ
ạ ự
đây tên đ i t
ng trình, b n t o 1 đ i t
ạ ạ
ng mình đ t là “nhapDuLieu”
ố ượ
ặ
ố ượ
Trong ch
đ t,
ặ ở
PHP:
Scanner nhapDuLieu = new Scanner(System.in);
ả
ể ọ ả
ể ọ
ự
ỗ
ị
ế
ể
Sau đó, đ đ c c dòng văn b n (dùng nó đ đ c chu i ký t ) ta dùng
l nh nhapDuLieu.nextLine(), gán vào bi n nào đó giá tr , vd mình dùng
ệ
bi n “ten” – ki u String
ế
PHP:
ten = nhapDuLieu.nextLine();
T
ng t
ươ
ự ể ọ
, đ đ c ki u d li u d ng s nguyên, s th c dùng l nh :
ố
ể ữ ệ ạ
ố ự
ệ
tìm hi u thêm b ng cách gõ tên đ i t
ng Scanner r i tìm
ố ượ
ằ
ồ
ụ
+ ten+"\n");
Bài demo:
PHP:
package demo.android.vn;
import java.util.Scanner;
public class AndroidVn {
public static void main(String[] args) {
int tuoi;
String ten;
Scanner nhapDuLieu = new Scanner(System.in);
System.out.print("Nh pậ Tên: ");
ten = nhapDuLieu.nextLine();
System.out.print("Nh pậ Tu i:ổ ");
tuoi = nhapDuLieu.nextInt();
System.out.println("\nTên V aừ Nh p:"ậ
System.out.println("Tu iổ V aừ Nh p:ậ " + tuoi);
}
}
K t qu màn hình Console:
PHP:
nhapDuLieu.nextInt();
nhapDuLieu.nextFloat();
B n th t
ể
ử ự
ạ
g i nh , ví d gõ
ớ
ợ
nhapDuLieu. + Ctrl + Cách (space)
ế ả
Bài t p v nhà:
ậ ề
ừ
ọ
ể
ọ
Bài 1: T màn hình console, nh p d li u c a 1 sinh viên là h và tên,
ậ ữ ệ ủ
năm sinh, đi m toán, lý , hóa (ki u s th c). D a vào đi m trung bình 3
ự
ể ố ự
ể
môn in ra đó là h c sinh gi
i, khá hay trung bình
ấ
ặ
ỏ
Bài 8: C u trúc l p while, do while, for trong
Java!
D ng 1: while(…)
ạ
ặ ệ
c, đúng r i m i th c hi n kh i l nh. Vd:
ố ệ
ệ
ớ
ồ
ệ
ề
ự
ướ
Xét đi u ki n tr
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
i = 0;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
i = 15;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
}
}
while(đi u_ki n_l p){
ề
kh i_l nh;
ố ệ
}
D ng 2: do{…}while;
ạ
do{
kh i_l nh;
ố ệ
}while(đi u_ki n);
ề
ệ
ệ
ề
ướ
l n đ u, t
kh i l nh luôn
ầ ừ ố ệ
ệ
ự
c, r i xét đi u ki n, n u sai thì không th c
ế
ồ
ả ề
c th c hi n ít nh t 1 l n. Vd:
ầ
ự
ố ệ
ư ậ
ệ
Th c hi n kh i l nh tr
ự
ệ
hi n n a. Nh v y, ngay c đi u ki n sai t
ệ ữ
ừ ầ
đ
ấ
ượ
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i = 0;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
i = 15;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
}
}
D ng 3: for(…)
ạ
ế
ở ạ
ế
ặ
for(kh i_t o_bi n_đ m;đk_l p;tăng_bi n){
ế
;
ố ệ
}
Vd:
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++) {
System.out.print(" " + i);
}
System.out.println("\n..i = " + i);
}
}
Bài t p v nhà:
ậ ề
ừ
ố
ế
ậ
ng ng v i s v a nh p.
ớ ố ừ
ậ ữ ệ ủ
ươ ứ
ế
ả
Bài 1: T màn hình console, nh p d li u c a bi n a là 1 trong các s
t
ừ
Gi ng hình bên bài 1 c a hình phía d
i:
1 đ n 9. In ra màn hình b ng nhân t
ố
ướ
ủ
Bài 2: In ra toàn b b ng c u ch
ng gi ng hình bài 2 trong hình phía
ộ ả
ử
ươ
ố
i:ướ
d
Bài 9: M ng trong Java!
ả
1, Khái ni m m ng
ệ
ả
ả
ầ ử
ượ
ả
ỗ
có cùng tên, cùng ki u d li u
ể ữ ệ
c truy xu t thông qua ch s c a
ỉ ố ủ
ấ
M ng là t p h p nhi u ph n t
ậ
ề
ợ
và m i ph n t
trong m ng đ
ầ ử
nó trong m ng.ả
2, Khai báo m ngả
ể ữ ệ
ả
[];
ho cặ
[] ;
ể ữ ệ
ả
ả
Ví d cách cách khai báo m ng:
ụ
PHP:
int arrInt1[];
int[] arrInt2;
int[] arrInt3, arrInt4, arrInt5;
3, C p phát b nh cho m ng
ộ ớ
ấ
ả
ộ
ớ
ả
ể ấ
ấ ả
ể ấ
m ng trong Java
ề
ớ
khóa
ừ
ng). Ch ng
ẳ
ư
ả
ta c n dùng t
Đ c p phát b nh cho
ầ
new. (T t c trong Java đ u thông qua các đ i t
ố ượ
h n đ c p phát vùng nh cho m ng trong Java ta làm nh sau:
ạ
PHP:
int arrInt = new int[100];
4, Kh i t o m ng
ở ạ
ả
ị
ầ
c a
ầ ử ủ
c khai báo.
ể ở ạ
ượ
Chúng ta có th kh i t o giá tr ban đ u cho các ph n t
m ng khi nó đ
ả
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
char arrChar[] = {‘a’, ‘b’, ‘c’};
String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’};
5, Truy c p m ng
ậ
ả
ắ ầ ừ
ầ ử ứ
ặ
đ u tiên có
0. Vì v y ph n t
ầ ử ầ
ậ
c a
th n có ch s là n - 1. Các ph n t
ỉ ố
ầ ử ủ
c truy xu t thông qua ch s c a nó đ t gi a c p d u
ấ
ữ ặ
ỉ ố ủ
ữ
ẳ
ạ
c xem nh m t m ng các ký t
ư ộ
Trong nh ng ngôn ng l p trình khác (C ch ng h n),
ữ ậ
. Trong java thì
ả
ỗ ượ
ng
ộ ớ
ể
ấ
Ch s m ng trong Java b t đ u t
ỉ ố ả
ch s là 0, và ph n t
ỉ ố
m ng đ
ấ
ượ
ả
ngo c vuông ([]).
ặ
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.
L u ý:ư
m t chu i đ
ộ
khác, java cung c p m t l p String đ làm vi c v i đ i t
d li u chu i cùng khác thao tác trên đ i t
ữ ệ
ự
ệ ớ ố ượ
ng d li u này.
ữ ệ
ố ượ
ỗ
Code ví d :ụ
PHP:
ố
ề
ề
ạ
public class ViDuArray {
public static void main(String[] args) {
int arrInt[];
arrInt = new int[4];
arrInt[0] = 9;
arrInt[1] = 17;
arrInt[2] = 13;
arrInt[3] = 14;
String arrString[] = {"Vu Van A", "Nguyen Van B", "Nguyen
Van C"};
System.out.println("M ngả số nguyên: ");
for (int i = 0; i < 4; i++) {
System.out.print(arrInt[i] + " ");
}
System.out.println("\nM ngả các chu i:ỗ ");
for (int i = 0; i < 3; i++) {
System.out.println(arrString[i] + " ");
}
System.out.println("");
}
}
6, M ng nhi u chi u! (Theo dõi đo n cu i video
d
ả
i)ướ
Bài t p v nhà:
ậ ề
bàn phím. Khai báo 1 m ng g m danh sách
ố
ả
ồ
ậ ừ
ng trình h i nh p tên sinh viên mu n tìm ki m. Tìm và in ra
ươ
ậ
bàn phím. Sau khi nh p
ậ
ế
ố
Bài 1: S sinh viên nh p t
ậ ừ
h tên sinh viên. Tên t ng sinh viên nh p t
ừ
ọ
xong, ch
ỏ
k t qu là có trong danh sách hay không.
ả
ế
bàn phím theo th t
ắ ế
ậ
ố
ừ
ứ ự
Bài 2: S p x p 1 dãy n s nguyên nh p vào t
tăng d n!ầ
c a 2 ma tr n cùng s hàng s c t vào t
ầ ử ủ
ừ
ố
ố ộ
ế
ậ
ổ
ả
ậ
ậ
Bài 3: Nh p các ph n t
bàn
ậ
phím. In 2 ma tr n ra màn hình. Tính t ng 2 ma tr n! In k t qu ra màn
hình!
Bài 10: Break và Continue trong Java
1, L nh break:
ệ
ấ ệ ứ ể
ệ
nh v y, trong c u trúc l p, câu l nh
ấ ỏ ấ
ặ ng t
ự ư ậ
ặ ế ẽ ể ặ ủ ặ Trong c u trúc switch chúng ta dùng câu l nh break đ thoát th i c u trúc
switch trong cùng ch a nó. T
ươ
break dùng đ thoát kh i c u trúc l p trong cùng ch a nó.
ỏ ấ
ể
ứ
t là các bài tìm ki m, s dùng break đ thoát vòng l p khi
, đ c bi
Trong th c t
ệ
ự ế ặ
i t n cùng c a vòng l p, gây lãng
chúng ta đã tìm th y k t qu , tránh vi c l p t
ả
ế
ấ
phí tài nguyên, vì th giúp ch ệ ặ ớ ậ
ng trình ch y nhanh h n!
ạ ươ ế ơ
Tìm ki m s th t c a ph n t có giá tr là 10 trong 1 m ng các s ố ứ ự ủ ầ ử ế ả ị ố
Ví d 1 : ụ
nguyên:
Show Spoiler
2, L nh continue:
ệ
ể ơ
ề ng dùng continue đ b qua vòng l p hi n t
ể ỏ
ế ệ ạ
ấ ặ ặ
ả
ố ệ ủ ệ ả ế
ệ ữ ệ ặ ỏ Hi u đ n gi n, chúng ta th
i khi
ườ
ả
g p đi u ki n nào đó đ ti p t c sang vòng l p ti p theo! Còn b n ch t, vì nó
ể ế ụ
ệ
ặ
cũng là 1 l nh nh y, nó nh y xu ng v trí k t thúc ("}") c a kh i l nh trong
ị
ả
vòng l p ch a nó và b qua t
cùng kh i l nh v i continue c a vòng l p) ố
t c các câu l nh sau nó (Nh ng câu l nh thu c
ộ
ấ ả
ủ ứ
ố ệ ặ ớ
có giá tr nh h n 35 và giá tr các ph n t
ị ầ ử ỏ ơ ị ố ứ ự ả Ví d 2: ụ Tìm ki m và in ra s th t
ế
trong m ng các s nguyên!
ố
Show Spoiler
3, Nhãn (label):
ả ư ỗ ợ ệ ị
ế
khóa break và ể
ng trình. Java dùng k t h p nhãn (label) v i t
ớ ừ
ế ợ ế ặ ệ
ỉ ố ớ ể ử ụ
Không gi ng nh C/C++, Java không h tr l nh goto đ nh y đ n 1 v trí nào
ố
đó c a ch
ươ
ủ
continue đ thay th cho l nh
ể
goto. Tuy nhiên, ta cũng ch có th s d ng label đ i v i các vòng l p mà thôi!
PHP:
label:
for (…){
for (…){
if (){
break label;
}
else{
continue label;
}
}
}
L nh “label:”
ệ
ị ị ủ ư ế ể ặ ề ệ ủ
ẽ ự ệ ả ỏ ệ
ượ ạ ẽ ế ụ ệ
ặ i s ti p t c vòng l p có nhãn “label” (khác v i
ớ
ng ch thoát kh i hay ti p t c vòng l p trong cùng
ế ụ ườ ặ ỏ ỉ ứ
Xác đ nh v trí c a nhãn và xem nh tên c a vòng l p ngoài. N u đúng thì l nh break label s th c hi n vi c nh y ra kh i vòng l p
có nhãn là “label”, ng
c l
break và continue thông th
ch a nó). ứ
ỉ ố ủ ầ ử ế ậ ấ ậ ấ
tìm th y Ví d 3: ụ Bài sau đây nh p xu t ma tr n, tìm ki m ch s c a ph n t
đ u tiên theo yêu c u!
ầ ầ
Show Spoiler
Bài t p v nhà:
ề
ậ
ọ
ọ
ớ
. S p x p theo th t
ả
ế
ứ ự
ậ
ậ
Bài 11: Th i gian h th ng trong Java
ầ
Bài 1: Nh p 1 danh sách h tên sinh viên 1 l p h c vào 1 m ng n ph n
ậ
a, b, c ... r i dùng thu t toán tìm ki m nh phân,
t
ồ
ử ắ ế
ị
tìm ki m chính xác tên sinh viên v a nh p và in ra màn hình s th t
ố ứ ự
ừ
ế
c a sinh viên đó!
ủ
ờ
ệ ố
ờ
ch y 1 đo n l nh trong ch
ạ ệ
ạ
ươ
ng
1, Tính th i gian
trình
ng th c "currentTimeMillis()", ta dùng nó đ ứ ể ươ ờ i
ạ ờ ạ ặ ể ế ể ạ ệ
c t ng th i gian ch y ch ờ ờ ạ ươ ệ ủ ờ ẽ ể ề
ố
ng th c "nanoTime()" trong đ i ươ ứ ẽ
a, Tính th i gian theo mini giây: (10^(-3)s)
ờ
ng System có ph
Trong đ i t
ố ượ
đánh d u 1 m c th i gian t
ố
ấ
v trí đ t câu l nh. Đ tính th i gian ch y xong 1 đo n l nh, ta đ t 2 bi n đ
ệ
ặ
ị
l y ra 2 m c
ố
ấ
th i gian r i l y hi u c a chúng là tính đ
ng trình.
ồ ấ
ượ ổ
ng trình sau s tính th i gian theo mini giây đ máy tính sin c a
Ví d : Ch
ủ
ươ
ụ
100000 giá tr truy n vào:
ị
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd1
long start = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
System.out.println(Math.sin(i));
}
long end = System.currentTimeMillis();
long t = end - start;
System.out.println("T ngổ th iờ gian: " + t + " millisecond
");
}
}
b, Tính th i gian theo nano giây (10^(-9)s)
ờ
ng t
nh trên, ch khác là ta s dùng ph
T
ỉ
ự ư
ươ
t
ng System thay vì
ượ
dùng ph ng th c "currentTimeMillis()" ươ ứ
h th ng
2, L y th i gian t
ờ
ấ
ừ ệ ố
, phút, giây và ngày, tháng, năm t ừ ệ
h ẽ ấ gi
ừ ờ ị ể
ạ
B n xem ví d sau, s l y th i gian t
ạ
ờ
ụ
th ng và hi n th ra bên ngoài:
ố
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd2
//Lay gio he thong
Date thoiGian = new Date();
//Khai bao dinh dang ngay thang
SimpleDateFormat dinhDangThoiGian = new SimpleDateFormat(
"HH:mm:ss dd/MM/yyyy ");
//parse ngay thang sang dinh dang va chuyen thanh string.
String hienThiThoiGian = dinhDangThoiGian.format(thoiGian.
getTime());
System.out.println("" + hienThiThoiGian);
}
}
Bài t p v nhà:
ậ ề
Các b n làm l
ạ
ụ
ạ
Bài 12: Class (l p) và đ i t
ng trong Java!
i các ví d trên cho thành th o!
ố ượ
ớ
1. Khái ni m class (l p):
ệ
ớ
ể ư ộ ồ ọ ầ ữ ệ ủ ố ượ
ng
ng (fields hay properties) và các
ươ
ng ữ ệ ủ ố ượ
ng th c (methods) tác đ ng lên thành ph n d li u đó g i là các ph
ộ
ớ ự ượ ượ ọ ể ệ ủ ớ
c g i là các th hi n c a l p c xây d ng b i các l p nên đ
ở
ớ ầ ư ả ấ
t ư ặ ơ ớ ồ ộ
ng d a trên l p này, các ố ượ ự ạ ớ nh m u trên. ng đ u t ng t ề ươ
ng a, khi đó a s có 3 thu c tính, và ta có th thao tác gán giá tr các ố ượ ẽ ể ộ ị
Chúng ta có th xem l p nh m t khuôn m u (template) c a đ i t
ẫ
ớ
(Object). Trong đó bao g m d li u c a đ i t
ph
ươ
ứ
th c c a l p.
ứ ủ ớ
ng đ
Các đ i t
ố ượ
(class instance).
L p trong java
g n gi ng nh b n ghi trong l p trình C ho c pascal, nh ng t
ậ
ố
nhiên nó cao c p h n.
ấ
Ví d 1:ụ Ta khai báo 1 l p SinhVien g m các thu c tính:
- hoTen
- namSinh
- lopHoc.
L p này chính là 1 khuôn m u. Khi ta t o ra các đ i t
ẫ
ớ
đ i t
ự ư ẫ
ố ượ
Vd :
T o đ i t
ạ
thu c tính đó nh sau:
ộ
- hoTen là "Nguy n Văn A"; ư
ễ
ng t ươ ừ
nh ng giá tr c a chúng s đ c tr ng cho t ng ị ủ ng b, c, ... cũng t
ng riêng. Có l ẽ ế
, các b n s th y nó có v gi ng v i các b n ghi n u
ẻ ố ẽ ặ
ớ ư
ả c h c l p trình C ho c Pascal. - namSinh là "1992";
- lopHoc là "At7a";
đ i t
ố ượ
đ i t
ố ượ
nh b n đã đ
ư ạ ượ ọ ậ ự ư
ạ ẽ ấ
ặ
2. Khai báo/đ nh nghĩa l p:
ị
ớ
ừ ặ ầ ữ ệ ủ ớ ộ
ự ự ng th c/hàm th hi n các thao tác x lý, tác ng l p.
ớ
ể ệ ở ạ
ươ ử PHP:
class {
;
;
constructor
method_1
method_2
}
- class: là t
khóa c a java
ủ
- ClassName: là tên chúng ta đ t cho l p
ớ
- field_1, field_2: các thu c tính, các bi n, hay các thành ph n d li u c a l p.
ế
- constructor: là s xây d ng, kh i t o đ i t
ố ượ
- method_1, method_2: là các ph
ứ
đ ng lên các thành ph n d li u c a l p.
ộ ầ ữ ệ ủ ớ
i constructor và method nhé, ẽ ư ờ Ở
ạ
nh ng bài sau mình s vi t rõ v nh ng khái ni m đó. bài này, t m th i chúng ta s ch a quan tâm t
ớ
ệ
ữ ề ữ ẽ ế
ế ạ ữ ụ
i s đây, t m th i ch a c n hi u public là gì nhé, xu ng ph n d t trong ví d 1
ầ ướ ẽ ờ ạ ể ị
ể
Các b n hãy xem vd2 code v l p đ đ nh nghĩa nh ng gì đã vi
ề ớ
Ví d 2:ụ (
ố
ư ầ
Ở
nói k h n)
ỹ ơ
PHP:
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
3. T o đ i t
ng c a l p:
ủ ớ
ố ượ
ạ
ClassName objectName = new ClassName();
ng sinh viên a và sinh viên b d a trên class đã đ nh nghĩa ự ị ạ ố ượ ví d 2:
ụ
Ví d 3:ụ T o 2 đ i t
ở
PHP:
SinhVien a = new SinhVien();
SinhVien b = new SinhVien();
4. Thu c tính c a l p
ủ ớ
ộ
c khai báo bên ủ ớ ượ Vùng d li u (fields) hay thu c tính (properties) c a l p đ
ộ
ữ ệ
trong l p nh sau:
ớ ư
ố ượ ấ ủ ữ ệ ủ
ng khác đ i v i vùng d li u c a ố ớ
ố ượ ng dùng 3 ti n t
ề ố
t
ấ ừ ấ ả
ể ớ ng khác
ủ
ả ớ ỉ ớ
l p đó truy c p đ n.
ế ấ ừ ớ ủ
ậ ẫ PHP:
class {
// khai báo nh ngữ thu cộ tính c aủ l pớ
field1;
// …
}
Đ xác đ nh quy n truy xu t c a các đ i t
ề
ị
ể
i ta th
l p ng
sau:
ườ
ườ
ớ
- public: có th truy xu t t
t c các đ i t
ể
- private: m t l p không th truy xu t vùng private c a 1 l p khác.
ấ
ộ ớ
- protected: vùng protected c a 1 l p ch cho phép b n thân l p đó và nh ng
ữ
l p d n xu t t
ớ
Xem thêm video Blog StudyAndShare v các thu c tính này: ộ ề
t c các đ i t ng khác. c truy c p đ n t
ậ t
ế ừ ấ ả ể ượ ố ượ
các đ i t c t ậ ượ ừ ể ỉ ố ượ ể
ng có ki u
ố ượ ộ ng c a các l p con d n xu t t ể
ng có ki u
l p "SinhVien" ậ ượ ừ
ớ các đ i t
ấ ừ ớ ố ượ c t
ẫ ể
ủ
t c các th ế ậ ị ấ ả ể Ví d 4:ụ
PHP:
class SinhVien{
public String hoTen;
private int namSinh;
protected String lopHoc;
public static String tenTruong = "HV KT M tậ Mã";
}
- Thu c tính "hoTen" có th đ
ộ
(public)
- Thu c tính "namSinh" ch có th truy c p đ
ộ
"SinhVien"(private)
- Thu c tính "lopHoc", so có th truy c p đ
"SinhVien" và các đ i t
(protected)
- "tenTruong" là bi n tĩnh có giá tr là "HV KT M t Mã"trong t
hi n t o ra t l p "SinhVien" (public static) ệ ạ ừ ớ
ườ ng ng
ả ườ ng đ an toàn cho vùng d li u c a các đ i t
Thông th
L u ý:ư
ng ch n ti n t
tránh dùng ti n t
ọ
ề ố
các ph
truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ i ta
ố ượ
ữ ệ ủ
ề ố private đ ngăn c n quy n
ề
ể
ng th c bên ngoài l p đó.
ươ ườ
ể
public, mà th
ữ ệ ủ ứ ế ậ ớ
t ượ ị ậ ố ượ bài sau mình s vi ế ở ị
ng, truy c p d li u c a các đ i t
ậ ữ ệ ủ
ẽ ế
Ở v trí nào trong 1 bài l p trình Java
ố ượ
ng
t rõ và k h n đ các
ể
ỹ ơ c đ nh nghĩa, đ
c vi
V y class đ
ượ
ậ
ng đ i t
h
ng. Vi c t o đ i t
ố ượ
ệ ạ
ướ
c t o t o nh ng class đó ra sao!
đ
ữ
ượ ạ ạ
b n có cái nhìn c th !
ụ ể
ạ
K t thúc bài này, mình s vi ẽ ế ế t 1 ví d đ n gi n:
ụ ơ ả
Ví D 5:ụ T o class sinh viên g m các thu c tính: hoTen, namSinh, lopHoc ạ ồ ộ
ườ
ng"
;
ị ộ ạ ừ ng là sinh viên a và sinh viên b. Gán giá tr cho các thu c tính và in
ố ượ
ộ
T o 2 đ i t
giá tr các thu c tính t ng sinh viên ra màn hình!
ị
PHP:
package javademoandroidvn;
//Vd5
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn T
a.namSinh = 1992;
a.lopHoc = "At7a";
SinhVien b = new SinhVien();
b.hoTen = "Nguy nễ Văn Tùng";
b.namSinh = 1990;
b.lopHoc = "Bk1";
System.out.println("Thông tin sinh vien a là: ");
System.out.println("Họ tên: " + a.hoTen + " Năm sinh: " +
a.namSinh + " L pớ H c:ọ " + a.lopHoc);
System.out.println("\nThông tin sinh vien b là: ");
System.out.println("Họ tên: " + b.hoTen + " Năm sinh: " +
b.namSinh + " L pớ H c:ọ " + b.lopHoc);
}
}
Bài t p v nhà:
ề
ậ
ồ ớ ạ
ố ượ ọ
ố
ng h c sinh a và h c sinh b, giá tr c a các thu c tính c a 2 đ i ể
ộ ị ủ ủ ọ ọ
ng tìm ra ng ố ượ ậ ừ ữ ể ườ
i Bài 1: T o class HocSinh g m 3 thu c tính: H tên, l p, đi m trung bình.
ộ
T o 2 đ i t
ạ
ngượ
t
đ
ượ
có đi m cao h n báo ra màn hình console! bàn phím. So sánh đi m trung bình gi a 2 đ i t
ơ c nh p t
ể
Bài 13: Class trong Java (ti p)ế
1, Bài có 1 class, dùng class ch a hàm main!
ứ
ạ ẽ ấ ườ ạ Khi b n lên m ng, tìm code, b n s th y ng
ạ
t này th
ng có 1 class duy nh t. Cách vi
Th ườ ườ
ườ ng dùng cách này
i ta th
ng dùng đ chia s thu t toán,
ậ ế ể ẻ ấ
i thi u các ph ng th c c a 1 đ i t ng trong th vi n nào ớ ặ ệ ươ ư ệ ứ ủ ố ượ
ộ ả ậ
ặ ậ ư ặ ể ọ ể ệ ể ế ạ cú pháp ho c gi
đó.
Ví d 1:ụ M t bài t p qu n lý sinh viên nh :
ỏ
PHP:
package sinh.vien;
public class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
}
}
Khi làm bài t p ho c làm các project, ít khi dùng cách này, nó không hay cho
vi c qu n lý, gi
ả
nh ng bài chia s d ng trên! i thi u đ các b n có th đ c và hi u n u nh g p ph i
ả
ớ
ẻ ạ ệ
ữ
2, Class đ t cùng file class ch a hàm main
ứ
ặ
bài tr ị ặ ứ ướ ở ụ ng trình chính,
ớ ỉ
ề ứ ề
ư Vd1, b sung thêm class gi ng viên, nh ng s b ỗ
t, s r t khó nhìn và qu n lý cũng nh nâng c p!
ả
ả ế
ố ẽ ấ
ộ ư ở ư ổ ẽ ố t ví d
c, mình có vi
V trí đ t ngoài class ch a ch
ế
ươ
theo cách này! Nó ch thích h p v i bài ít class, class ít thu c tính và ph
ươ
ng
ộ
ợ
th c. N u bài có nhi u class, m i class có nhi u ph
ng th c, đi u này cũng
ề
ươ
ứ
không t
ấ
Ví d 2:ụ N i dung bài nh
trí l i v trí class nh sau: ạ ị ư
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
class GiangVien {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
ng trình v n ch y n u b n đ các class SinhVien và GiangVien ươ ể ẫ ạ ở
}
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien gv1 = new GiangVien();
}
}
Chú ý: Ch
phía cu i ch
ng trình, ch c n n m ngoài class Main là đ ạ
ỉ ầ c
ượ ế
ằ ươ ố
3, M i class đ t riêng 1 file, cùng 1 gói (package)
ặ
ỗ
ở ề ng h c: ạ
ọ SinhVien, ườ
ẽ ạ ớ các bài t p có nhi u class, các class cùng 1 lo i.
Cách này
ậ
Ví d 4:ụ Các class cùng là nhân s c a 1 tr
ự ủ
GiangVienKhoa1, GiangVienKhoa2.
V i bài này, chúng ta s t o project v i 1 package là truong.hoc, trong
ớ
package này s có 4 file nh sau: ư ẽ
ứ
ạ ạ ả ộ ư ộ
File "main.java" ch a hàm main:
PHP:
package truong.hoc;
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien1 gv1 = new GiangVien1();
}
}
File GiangVien.java là 1 class, b n t o b ng cách nháy chu t ph i vào package
ằ
ch n New --> Java Class, n i dung nh sau:
ọ
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
File GiangVien1.java:
PHP:
package truong.hoc;
class GiangVien1 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
}
File GiangVien2.java:
PHP:
package truong.hoc;
class GiangVien2 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
public String phongThucHanh;
}
Nh vào IDE, vi c qu n lý các class tr lên ti n l
i h n r t nhi u! ệ ả ở ờ ệ ợ ơ ấ ề
4, Các class đ
nhi u package khác nhau:
c đ t
ượ ặ ở
ề
, s có r t nhi u class khác nhau đ ớ ữ ự ế ẽ c đ
ượ ể ở ề ấ nhi u gói
ề
các ví d trên. T o 1 project có tên:
ạ ẽ ở ộ ụ
V i nh ng project th c t
(package) khác nhau.
Ví d 4:ụ Project này s m r ng t
ừ
QuanLyTruongHoc. Trong project có 3 package: truong.hoc, nhan.su,
thu.vien.sach
Code bài 4 dài mình đính kèm phía d i, các b n Import vào IDE là ok! ướ ạ
ề
i các ví d !
ụ ầ
Bài 14: Ph
Bài t p v nhà:
ậ
Đ c hi u và code l
ạ
ọ
ể
ng Java đ u tiên c a b n
Đ c thêm:
T o 1 đ i t
ủ ạ
ố ượ
ọ
ạ
ng th c (method) trong Java
ứ
ươ
1, Khái ni m: ệ
ng th c ươ ứ (method) trong Java là kh i l nh ố ệ ệ ứ ủ ớ ự
ệ ủ ụ ạ ậ ng, chúng ta s h n ch g i nh v y, hãy ng trong ố ượ
ng th c, nó liên quan đ n tính h
ứ ữ
ệ
ư ậ
ng đ i t
ố ượ ấ
ng đ i t
ươ ớ
ế ọ
ướ ẽ ạ
ế Hàm hay ph
th c hi n các ch c năng, các hành vi x lý c a l p lên vùng d
ử
li u. Trong l p trình c u trúc, các b n đã làm quen v i khái ni m hàm, th t c.
Trong l p trình h
ướ
ậ
quen g i chúng là ph
ọ
Java!
2, Khai báo ph
ng th c:
ươ
ứ
ngươ th cứ > (){
ề ng khác đ i v i
ố ớ PHP:
;
}
Đ xác đ nh quy n truy xu t c a các đ i t
ể
các ph i ta th ố ượ
ng dùng các ti n t sau: ị
ng th c c a l p ng
ứ ủ ớ
ươ ấ ủ
ườ ườ ề ố
bên ngoài c t ứ ươ ậ ượ ừ ng th c có th truy c p đ
ể
c t l p khai báo và ậ ượ ừ ớ ữ ể
ấ ừ
c truy c p bên trong b n thân l p khai ớ ả nó.
ậ ẫ
ỉ ượ
ươ ứ ớ ấ ả ể ng th c l p dùng chung cho t
ươ t c các th
c
ể ượ
ng c a l p ch a
ứ ng th c đó có th đ
ứ
ố ượ ủ ớ
này không đ c khai báo ề ố ượ các l p d n xu t. ấ ầ ứ
ẫ
ng th c không c n cài đ t (không có
ự ặ
c hi n th c trong các l p d n
ẫ ệ ớ
ủ ể ộ ng khác lên đ i t ồ - public: ph
l p khai báo.
ớ
- protected: có th truy c p đ
nh ng l p d n xu t t
ớ
- private: ch đ
báo.
- static: ph
hi n c a l p, có nghĩa là ph
ệ ủ ớ
th c hi n k c khi không có đ i t
ự
ể ả
ệ
ng th c đó.
ph
ứ
ươ
- final: ph
ng th c có ti n t
ươ
ch ng
ớ
ớ
ồ
- abstract: ph
ứ
ươ
ph n source code), s đ
ầ
ẽ ượ
l p này.
xu t t
ấ ừ ớ
- synchoronized: dùng đ ngăn các tác đ ng c a các đ i
ố
t
ng đang xét trong khi đang đ ng
ượ
ố ượ
b hóa. Dùng trong l p trình miltithreads.
ậ
ộ
ộ ớ ể ể ể ơ ở
c gi ng tên bi n.
ố ả ề
ươ ướ ế - : có th là ki u void, ki u c s hay m t l p.
ể
- : đ t theo qui
ặ
ứ
- : có th r ng ể ỗ ố
ườ ộ ớ khóa ng là ừ ng trong m t l p các ph
ươ
public, khác v i vùng d li u th
ớ ng th c nên đ
ứ
ữ ệ c
ượ
ườ ụ ề ố private vì m c đích an toàn. ứ ủ ớ ng th c c a l p là các bi n
ế ộ
c kh i t o sau khi khai báo.
Chú ý:
- Thông th
khai báo dùng t
dùng ti n t
- Nh ng bi n n m trong m t ph
ằ
ế
ữ
c c b (local) và nên đ
ụ ộ
ượ ươ
ở ạ
Xem thêm video blog StudyAndShare
ể ạ ớ ọ ồ ớ Ví d 1:ụ T o 1 l p h c sinh g m các thu c tính: h tên, l p, đi m toán, lý, hóa.
ọ
Tính đi m trung bình, tính x p lo i h c l c! ộ
ạ ọ ự ể ế
đây tính đi m trung bình c a 3 môn, nh v y ph ể ủ Ở ư ậ ươ ứ
ng th c
ị ố ố
ế ề
ạ ọ ự ố ự
ự ố ố ươ ế ấ ng th c này tr
ứ ả
i. ặ ỏ
** Phân tích:
tính đi mể
có 3 đ i s truy n vào và tr v 1 giá tr là s th c.
ả ề
Tính x p lo i h c l c, đ i s vào là 1 bi n th c duy nh t, ph
v 1 chu i
ỗ
ề
là x p lo i: y u, trung bình, khá ho c gi
ạ
ế
ế
Code nh sau:
ư
PHP:
package javademoandroidvn;
ữ ậ ề ộ ề ệ ướ
class HocSinh {
public String hoTen, lop;
public float toan, ly, hoa;
public float diemTB(float toan, float ly, float hoa) {
return (float) (toan + ly + hoa) / 3;
}
public String xepLoai(float diemTB) {
if (diemTB >= 8 && diemTB <= 10) {
return "gi i"ỏ ;
}
if (diemTB >= 6.5f && diemTB < 8) {
return "khá";
}
if (diemTB >= 5.0f && diemTB < 6) {
return "trung bình";
}
if (diemTB >= 0.0f && diemTB < 5) {
return "y u"ế ;
}
return "Nh pậ sai!";
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.hoTen = "Vu Van T";
a.lop = "At7a";
a.toan = 8.0f;
a.ly = 9.0f;
a.hoa = 10.0f;
System.out.println("Thông tin: ");
System.out.println("Họ tên: " + a.hoTen + " - L p:ớ " + a.
lop);
System.out.println("Toán: " + a.toan + " Lý:" + a.ly + "
Hóa: " + a.hoa);
System.out.println("Đi mể trung bình: " + a.diemTB(a.toan,
a.ly, a.hoa));
System.out.println("X pế lo iạ " + a.xepLoai(a.diemTB(a.toa
n, a.ly, a.hoa)));
}
}
Ví d 2:ụ Gán chi u dài, chi u r ng hình ch nh t, hi n lên màn hình kích
th
Tính di n tích và chu vi hình ch nh t theo cách vi
ng đ i t t code h ng! c đó.
ệ ố ượ ữ ậ ướ ế
ề ộ ề ộ ng th c show, không có giá ươ ứ ề ** Phân tích: Các hình ch nh t có 2 thu c tính là chi u dài và chi u r ng.
- Đ hi n l
ể ệ ạ
tr tr v , nh ng
ị ả ề ữ ậ
i chi u dài, chi u r ng , ta dùng 1 ph
ề ộ
ư
ầ ề ề ộ ớ ể ứ ươ ị ế
ệ ữ ậ
ế
ng th c dienTich, chuVi v i 2 bi n
ứ ươ ể ệ ề
ị ệ ớ
ng th c showKetQua, v i 2
ậ ố ẽ ữ ứ ươ ử ạ ệ
ố
ng th c show ra ch ký k t thúc bài, s không có đ i
ế
c:ướ ");
" + rong);
.
ự
có giá tr bi n đ u vào là chi u dài và chi u r ng hình ch nh t!
- Đ tính di n tích và chu vi, ta t o 2 ph
ạ
vào (đ i s vào)
ố ố
là chi u r ng, chi u dài.
ề ộ
- Đ hi n giá tr di n tích và chu vi, ta dùng 1 ph
đ i số ố
th c nh p vào là chu vi, di n tích hình tròn.
ự
- Cu i bài, th t o 1 ph
s nào!
ố
Nó ch hi n ra 1 dòng ký t
ỉ ệ
Code nh sau:
ư
PHP:
package javademoandroidvn;
class HCN {
public float chieuDai;
public float chieuRong;
public void showChieuDai(float dai, float rong) {
System.out.println("Hình chữ nh tậ có kích th
System.out.println("Chi uề dài: " + dai);
System.out.println("Chi uề r ng:ộ
}
public float chuVi(float dai, float rong) {
return (dai + rong) * 2;
}
public float dienTich(float dai, float rong) {
return dai * rong;
}
public void showKetQua(float cv, float dt) {
System.out.println("Chu vi hình chữ nh tậ là: " + cv);
System.out.println("Di nệ tích hình chữ nh tậ là " + dt);
}
public void showChuKy() {
System.out.println("K tế thúc bài tính toán hình chữ nh t,ậ
xin chào, h nẹ g pặ l iạ b nạ ở bài ti pế theo!");
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HCN a = new HCN();
a.chieuDai = 6.0f;
a.chieuRong = 10.0f;
a.showChieuDai(a.chieuDai, a.chieuRong);
a.showKetQua(a.chuVi(a.chieuDai, a.chieuRong), a.dienTich(
a.chieuDai, a.chieuRong));
a.showChuKy();
}
}
Bài t p v nhà:
ề
ậ
ng. ồ ạ ớ ố ượ ả ượ ả ề ứ
ổ
ng, nh p các giá tr t màn hình console. ị ừ ng th c tính t ng ti n.
ậ
ơ ồ ng, th i gian mua.
ố ượ
ng th c setter và getter trong Bài 1: T o l p hàng hóa g m: tên hàng, mã hàng, giá hàng, s l
c gi m giá 5%
N u mua vào kho ng 8h -> 17h hàng ngày , đ
ế
T o ph
ươ
ạ
T o 1 đ i t
ố ượ
ạ
In toàn b thông tin đ n hàng ra ngoài màn hình console g m:
ộ
tên, mã, giá, s l
ươ ờ
ứ
Bài 15: Ph
Java
t chú ý 1 đi u nh này:
ề ư
Ở bài 12 mình có vi
ườ ố ượ ườ
các ph ườ
ữ ệ ủ i ta
ng ng
ề ố private đ ngăn c n
ả
ể
ng th c bên
ứ
ươ ề ế
ng đ an toàn cho vùng d li u c a các đ i t
Thông th
ữ ệ ủ
ể
ng ch n ti n t
public, mà th
tránh dùng ti n t
ề ố
ọ
quy n truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ
ế
ậ
ngoài l p đó.
ớ
ụ ướ ộ các ví d tr
ư ả ẫ ng đ
Ở
nh ng đó không ph i là cách n. N u chuy n v
các thu c tính nh các bài ví d tr
ư c, các thu c tính mình th
ổ
ế
ụ ướ ườ
ể
c thì s l
ẽ ỗ ạ
ể public , ch
ng trình ch y,
ươ
ề private, mà b n v n truy c p
ậ
ạ
i nh này:
ư ộ
ng đ V y làm nh nào đ truy c p các thu c tính c a đ i t
ậ ủ ố ượ ư ể ậ ộ ể private?
1, Bi n this
ế
ể ầ
ế ấ ả ớ ữ
c s d ng trong khi ộ
t c các l p trong ngôn ng java. M t
ượ ử ụ Đ u tiên b n c n hi u bi n này là gì?
ế
ạ ầ
i trong t
Bi n this là m t bi n n t n t
ế ẩ ồ ạ
ộ
class trong Java luôn t n t
ế
ồ ạ
ế
ộ
ch y và tham kh o đ n b n thân l p ch a nó.
ớ
ả
ế i m t bi n this, bi n this đ
ứ ả ạ
2, Ph
ươ
ng th c setter
ứ
ng th c setter là chúng ta dùng nó đ truy c p vào thu c tính ứ ươ ậ ủ ố ượ ộ ọ ộ
ng! Tên g i, hay
ng th c này là tùy b n, nó cũng v n ch y nh ng theo
ư ươ ạ ạ ng làm thì nó s th M c đích c a ph
ủ
ể
ụ
ng và gán giá tr cho các thu c tính c a đ i t
c a đ i t
ủ ố ượ
cách b n đ t tên ph
ặ
ẫ
ạ
ng là set....
style code l p trình viên th
ậ ị
ứ
ườ ẽ ườ
Ví d 1: ụ
PHP:
package javademoandroidvn;
class HocSinh {
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
}
}
2, Ph
ng th c getter
ứ
ươ
ng t ươ nh ph
ự ư ươ ộ
ng th c setter, nó cũng dùng đ truy c p vào các thu c ứ ể ậ
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
i setter, ph c l
ượ ạ ươ ộ
ng th c getter s tr v các thu c ẽ ả ề ứ Cũng t
tính
c a đ i t
ủ ố ượ
tính c a đ i t ng, nh ng ng
ư
ng! ủ ố ượ
Ví d 2: ụ
PHP:
package javademoandroidvn;
class HocSinh {
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public String getHoTen() {
return hoTen;
}
public String getLop() {
return lop;
}
public float getDiemTb() {
return diemTb;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
System.out.println("Họ tên: " + a.getHoTen());
System.out.println("L p:ớ " + a.getLop());
System.out.println("Đi mể Tb: " + a.getDiemTb());
}
}
Các b n nên xem video sau c a blog StudyAndShare đ hi u h n! ể ể ủ ạ ơ
3, Cách t
chèn các ph
ng th c getter và setter:
ự
ươ
ứ
ạ ự ự ể ư
chèn các ph ớ
ng th c getter và setter. V i ươ ề Khi b n m i code java thì ch a nên dùng cách này, th c s hi u getter và setter
ớ
r i thì m i nên dùng.
ớ
ồ
c 2 IDE ph bi n đ u h tr t
ỗ ợ ự
Ở ả
ổ ế
nh ng bài khi khai báo nhi u bi n, dùng tính năng này s r t ti n!
ế
ữ ứ
ẽ ấ ệ ề
ộ
ớ
ạ
ả ọ ị ặ
V i Netbeans:
B n nháy chu t ph i lên v trí so n th o code, ch n Insert Code
ả
ạ
Sau đó s hi n ra 1 menu nh , b n ch n getter, setter ho c getter and setter tùy
ọ
ỏ ạ
ẽ ệ
m c đích b n dùng!
ạ
B n s th y Netbeans t
sinh code cho các ph ụ
ạ ẽ ấ ng th c đó!
ứ ươ ự
Source --> Generate Getter and Setter r i ch n bi n c n t o ph ng ế ầ ạ ồ ọ ươ c!
V i Eclipese:
ớ
B n vào
ạ
th c getter và setter là đ
ứ
ượ
Bài t p v nhà:
ề
ậ
ạ ả ồ ọ ự
ộ ể ớ ọ ươ ạ ớ ọ ộ
ạ
ạ bàn phím. ừ ậ ủ ủ ể Bài 1: T o package nhân s , trong có 2 class là sinh viên và gi ng viên
Class sinh viên g m các thu c tính: h tên, l p h c, đi m toán, lý, hóa.
ng.
Class gi ng viên g m các thu c tính: h tên, l p d y, năm sinh, l
ồ
ả
ng h c sinh a.
T o đ i t
ố ượ
ọ
T o đ i t
ng gi ng viên b.
ả
ố ượ
Các giá tr c a thu c tính a và b nh p vào t
ộ
ị ủ
X lý d li u báo ra thông tin c a a và b, tính và báo ra đi m trung bình c a a,
ữ ệ
ử
x p lo i h c l c, báo b có d y a hay không!
ạ ọ ự
ế ạ
ng th c getter, setter. ộ ử ụ ươ ứ Các thu c tính đ private, s d ng ph
ể
ng đ i t
L p trình h ng! ố ượ ướ ậ
ể
Ph n này, anh Vi ầ ệ ả t bên Blog StudyAndShare nói r t k r i, các b n tham kh o ấ ỹ ồ ạ video nhé!
3, Coding style – Cách vi
t mã l nh trong Java
ế
ệ
ọ ầ ắ ễ ọ ẹ ễ ể ế ủ ạ t theo quy cách b n thích nh ng d ạ
ệ ư ấ i đ c ạ ọ ng, các t ng th c: B t đ u b ng ch cái th li n nhau, ừ ề t hoa ch cái đ u. Ví d : ten, hoTen, lop, ờ ạ ứ sau vi ỏ ắ ầ ế ươ ữ ữ ầ ừ
cách nhau b i d u “_”, ví d : PI , HANG_SO, ở ấ ừ ụ
t hoa ch cái đ u c a m i t t li n nhau, ví , vi ầ ủ ế ề ỗ ừ ữ ế - Mình b sung thêm ph n này vào trong bài này vì nó cũng ng n g n thôi, tuy ổ i r t quan tr ng, nó giúp code Java c a b n đ p, d nhìn, d hi u, d v y nó l ễ ể ạ ấ ậ i đây là i. T t nhiên b n có th vi s a l ạ ướ ấ ử ỗ quy cách mà nhi u l p trình viên áp d ng. Có đôi ch b n th y có nh ng khái ữ ỗ ạ ụ ề ậ , b n hãy b qua, mai này quay l ni m ch a g p bao gi ư ặ - Tên bi n, tên ph ườ ằ ế tr t đ u tiên, nh ng t ụ ữ ừ ừ ầ namSinh, maSinhVien, …v.v. - Tên h ng: Vi t in hoa, các t ế ằ NAM_SINH, … - Tên Object, tên class (l p) vi ớ d : QuanLySinhVien, HangHoa, ViDuDemo, ….. ụ
ỹ ể ể ể ọ ế ạ ơ ề ư ớ ắ ầ ư t riêng v v n đ ề ấ t nhi u khái ni m, b n ạ ệ ả ọ ạ , i ạ ẫ ắ Ngoài ra, đ hi u k , sâu h n, b n có th đ c thêm 1 bài vi này, nh ng khi m i b t đ u, đ đ b r i do ch a bi ề nên b qua , nh ng mình v n li ắ ư ỏ t v cách vi t chi ti xem bài vi i đây. ế t kê vì mai này ch c ch n b n ph i đ c l t mã l nh t ệ ể ỡ ị ố ệ ế ế ề ế ạ
Bài t p v nhà: ậ ề
ng trình. a là s nguyên. Xét xem a có ị ố ế ế Bài 1: Gán giá tr cho bi n a trong ch ươ chia h t cho 5 không, n u có báo ra màn hình là chia h t cho 5, n u không, hãy tìm th ế ế ng và s d và in ra màn hình. ế ươ ố ư
c gán trong ch ng trình, k c s âm và ể ả ố ớ ố ự ượ ng. Hãy báo ra màn hình đây có ph i là đ dài c a 1 tam giác không, n u có ế ả ộ ươ ủ Bài 2: V i a, b, c là các s th c đ d ươ thì đó là c a lo i tam giác nào. ạ ủ
i ph ả ớ ươ c gán giá tr trong ch ị ố ự ng trình b c 2: ax^2 + bx + c = 0 v i a, b, c là các s th c ả ệ ng trình b c 2 và in nghi m) Bài 3: Gi đ ượ (N u a = 0 báo ra màn hình đây không ph i là ph ế ậ ng trình. In k t qu các nghi m ra màn hình. ươ ươ ế ả ệ ậ
Bài 6: C u trúc Switch Case trong Java!
ấ
C u trúc Switch…Case:
ấ
ả
ự ệ
ớ
ợ
ơ ườ
i nhi u ề ẽ
ầ ế
ề
ng h p giá tr c a bi n, n u dùng if - else nhi u thì code s ặ
ị ủ ạ
ạ
t nh t nh ng là phù ư
ấ ấ
ế
ể
ả
ố
Đ n gi n, khi chúng ta c n x lý các s ki n liên quan t ử tr ế dài, l p, không m ch l c, nên chúng ta dùng c u trúc Switch Case đ thay th ! Nó không ph i là cách t h p v i nhi u tình hu ng! ố ề
ợ
ớ
c vi
ượ
ế
t nh sau: ư
ấ
ố
ệ
ệ
ố
>: >;
>: >;
Trong Java, c u trúc Switch Case đ
PHP:
switch () {
case :
;
break;
case
ố ệ
>;
i:
ạ ộ
ư
ướ
t ch
ng trình, gán bi n nguyên a là 1 giá
ớ
ầ
ế
ế
ủ ậ
ế
ị ấ
ứ
ị
ạ
ả
1 t
i 7".
ừ ớ
c vi
ỉ ượ
ng trình s d ng Switch Case s đ
ươ
ử ụ
ẽ ượ
c gán s nguyên t
ố
t nh sau:
ư
ế
Ví d :ụ V i yêu c u sau: Vi
ươ
tr b t kỳ. N u a = 1 thì in ra màn hình là "Ch nh t", a = 2 thì in ra
ế
"Th Hai", ..... a = 7 thì in ra "Th B y". N u a không trong kho ng [1 ;
ứ ả
7] thì báo "B n đã gán sai giá tr , ch đ
Ch
PHP:
public class SwitchDemo {
public static void main(String[] args) {
int a = 3;
switch (a) {
case 1:
System.out.println("Chủ nh t"ậ );
break;
case 2:
System.out.println("Thứ Hai");
break;
case 3:
System.out.println("Thứ Ba");
break;
case 4:
System.out.println("Thứ T "ư );
break;
case 5:
System.out.println("Thứ Năm");
break;
case 6:
System.out.println("Thứ Sáu");
break;
case 7:
System.out.println("Thứ B y"ả );
break;
default:
System.out.println("B nạ đã gán sai giá tr ,ị chỉ đư
cợ gán số nguyên từ 1 t iớ 7");
break;
}
}
}
Chú ý:
ế
ể
ữ ệ
ỉ ỗ ợ ể
ừ
ữ ệ
ề
ể
ớ
- Ki u d li u c a bi n trong switch ch h tr ki u d li u:
ữ ệ int,
ủ
JDK 7, h tr thêm ki u String và các giá tr
byte, short,char, t
ị
ỗ ợ
ể
truy n vào trong m i case thì ph i trùng ki u d li u v i bi n
ế
ả
ỗ
trong switch.
ấ
ả
ắ
ộ
ươ
ể
ạ
ạ
ng h p nh t đ nh, nh ng khi đó, ch
ớ
ấ ị
ươ
ư
ể ừ
ề
ỏ
- L nh "break" trong c u trúc này không ph i là b t bu c ph i có
ả
ệ
ng trình m i ch y, b n có th không dùng "break" v i
ớ
thì ch
ế
ng trình s ch y h t
tr
ạ
ẽ
ợ
ườ
ươ
khi ch
các kh i l nh trong các "case" ti p theo sau, k t
ng
ố ệ
trình tìm đ
ế
i khi h t
ớ
ị
ượ
"case" ho c g p l nh "break".
ặ
ế
c "case" có giá tr truy n vào th a mãn, t
ặ ệ
t bên Blog StudyAndShare
ủ
ệ
B n nên tham kh o 2 video c a anh Vi
ả
đ hi u rõ h n v c u trúc này:
ơ ề ấ
ạ
ể ể
ế
t
0 đ n 9. Vi
ế
ế
ừ
ằ
ươ
ố
ụ
ng trình in ra tên các ch s nh p vào b ng ti ng Anh. Ví d
ng trình ch y s in ra “1 đ c là One”, gán a
ữ ố
ạ
ậ
ẽ
ươ
ằ
ọ
Bài t p v nhà:
ậ ề
Bài 1: Gán bi n a là 1 trong các s ngu yên t
ế
ch
gán a b ng 1 thì ch
= 2 thì in ra “2 đ c là Two”
ọ
ị
ế
ầ
ộ ậ
ợ
c âm.
ượ
ế
ế
ạ
ậ
Bài 2: Khai báo 2 bi n nguyên “thang” và “nam” gán giá tr là
tháng và năm.Yêu c u “thang” thu c t p h p [1..12], năm không
đ
- N u gán sai tháng thì báo “B n đã nh p sai tháng”, n u gán sai
năm thì báo “B n đã gán sai năm”. Khi 1 trong 2 thông tin b gán
ạ
ị
ệ
ữ
ạ
ẽ
ậ
ườ
ng.
ậ
ế
ậ
ự
ị
sai, nh ng câu l nh sau s không ch y!
- N u năm đó là năm nhu n thì in ra thông báo: Đây là năm
nhu n. không thì báo ra là năm th
- D a vào thông tin năm đó là năm nhu n hay không và giá tr
c a tháng đó là tháng nào đ báo ra tháng đó có bao nhiêu ngày.
ủ
ể
ậ
ệ
Bài 7: Nh p xu t d li u trên giao di n
ấ ữ ệ
Console
ặ
ệ
ứ ự
ẻ ơ ớ
ầ
ế
i thi u theo th t
ng, input – output trong
ớ
này thì có v h i s m, vì nó liên quan đ n
ế
java (là 1 ph n dài dài) nh ng do
ư
ậ
i, s ph i nh p
ặ ắ ớ ẽ ả
ng trình.
ơ
ị
ố
ậ ữ ệ
ệ
ậ ữ ệ
ẽ ố
Ở
ơ
ế
ệ
ạ
ả
ệ
ằ
bài này, mình s gi
ẽ ớ
ượ
ề
ể
ấ ượ
ụ
ẽ
i).
- M c dù n u gi
ế
ớ
khái ni m đ i t
ố ượ
ệ
ti p theo nh ng bài liên quan t
i m ng, các vòng l p s p t
ữ
ả
nhi u d li u, chúng ta không th c gán giá tr trong ch
ề ữ ệ
ươ
ể ứ
l p trình pascal, C c
Nói đ n gi n, thì vi c nh p d li u này nó gi ng nh
ơ
ư ở ậ
ả
ng thì nh p d li u qua màn hình ms-dos (v i java n u b n dùng
b n – th
ế ạ
ớ
ườ
ả
câu l nh java, javac trong cmd thì nó cũng s gi ng nh v y, nh ng b t ti n) .
ấ ệ
ư
ư ậ
ệ
c,
nh ng bài tr
-
ướ
đây, chúng ta có 1 giao di n tích h p vào IDE, n i mà
ở ữ
ợ
ệ
các b n in k t qu ra (l nhSystem.out.println…), và bây gi
ậ ữ
, chúng ta nh p d
ờ
li u vào b ng chính màn hình đó.
i thi u
ệ
c đi u này, nh ng
- Có nhi u cách đ làm đ
ề
c các ki u
cách mà theo mình là ng n g n d hi u nh t đ nh p và l y đ
ể
ọ ễ ể
ắ
d li u thông d ng : ki u nguyên, ki u th c, ki u chu i. (Đi sâu h n, mình s
ơ
ỗ
ể
ể
ữ ệ
nói trong ph n input – output , ch c là vài bài n a m i t
ớ ớ
ư ở
ấ ể ậ
ể
ự
ữ
ầ
ắ
đ u ch
ng trình
Đ u tiên là b n ph i thêm gói này vào
ả
ầ
ạ
ở ầ
ươ
PHP:
import java.util.Scanner;
ng Scanner, tên đ i t
ng b n t
ươ
ố ượ
ạ ự
đây tên đ i t
ng trình, b n t o 1 đ i t
ạ ạ
ng mình đ t là “nhapDuLieu”
ố ượ
ặ
ố ượ
Trong ch
đ t,
ặ ở
PHP:
Scanner nhapDuLieu = new Scanner(System.in);
ả
ể ọ ả
ể ọ
ự
ỗ
ị
ế
ể
Sau đó, đ đ c c dòng văn b n (dùng nó đ đ c chu i ký t ) ta dùng
l nh nhapDuLieu.nextLine(), gán vào bi n nào đó giá tr , vd mình dùng
ệ
bi n “ten” – ki u String
ế
PHP:
ten = nhapDuLieu.nextLine();
T
ng t
ươ
ự ể ọ
, đ đ c ki u d li u d ng s nguyên, s th c dùng l nh :
ố
ể ữ ệ ạ
ố ự
ệ
tìm hi u thêm b ng cách gõ tên đ i t
ng Scanner r i tìm
ố ượ
ằ
ồ
ụ
+ ten+"\n");
Bài demo:
PHP:
package demo.android.vn;
import java.util.Scanner;
public class AndroidVn {
public static void main(String[] args) {
int tuoi;
String ten;
Scanner nhapDuLieu = new Scanner(System.in);
System.out.print("Nh pậ Tên: ");
ten = nhapDuLieu.nextLine();
System.out.print("Nh pậ Tu i:ổ ");
tuoi = nhapDuLieu.nextInt();
System.out.println("\nTên V aừ Nh p:"ậ
System.out.println("Tu iổ V aừ Nh p:ậ " + tuoi);
}
}
K t qu màn hình Console:
PHP:
nhapDuLieu.nextInt();
nhapDuLieu.nextFloat();
B n th t
ể
ử ự
ạ
g i nh , ví d gõ
ớ
ợ
nhapDuLieu. + Ctrl + Cách (space)
ế ả
Bài t p v nhà:
ậ ề
ừ
ọ
ể
ọ
Bài 1: T màn hình console, nh p d li u c a 1 sinh viên là h và tên,
ậ ữ ệ ủ
năm sinh, đi m toán, lý , hóa (ki u s th c). D a vào đi m trung bình 3
ự
ể ố ự
ể
môn in ra đó là h c sinh gi
i, khá hay trung bình
ấ
ặ
ỏ
Bài 8: C u trúc l p while, do while, for trong
Java!
D ng 1: while(…)
ạ
ặ ệ
c, đúng r i m i th c hi n kh i l nh. Vd:
ố ệ
ệ
ớ
ồ
ệ
ề
ự
ướ
Xét đi u ki n tr
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
i = 0;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
i = 15;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
}
}
while(đi u_ki n_l p){
ề
kh i_l nh;
ố ệ
}
D ng 2: do{…}while;
ạ
do{
kh i_l nh;
ố ệ
}while(đi u_ki n);
ề
ệ
ệ
ề
ướ
l n đ u, t
kh i l nh luôn
ầ ừ ố ệ
ệ
ự
c, r i xét đi u ki n, n u sai thì không th c
ế
ồ
ả ề
c th c hi n ít nh t 1 l n. Vd:
ầ
ự
ố ệ
ư ậ
ệ
Th c hi n kh i l nh tr
ự
ệ
hi n n a. Nh v y, ngay c đi u ki n sai t
ệ ữ
ừ ầ
đ
ấ
ượ
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i = 0;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
i = 15;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
}
}
D ng 3: for(…)
ạ
ế
ở ạ
ế
ặ
for(kh i_t o_bi n_đ m;đk_l p;tăng_bi n){
ế
;
ố ệ
}
Vd:
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++) {
System.out.print(" " + i);
}
System.out.println("\n..i = " + i);
}
}
Bài t p v nhà:
ậ ề
ừ
ố
ế
ậ
ng ng v i s v a nh p.
ớ ố ừ
ậ ữ ệ ủ
ươ ứ
ế
ả
Bài 1: T màn hình console, nh p d li u c a bi n a là 1 trong các s
t
ừ
Gi ng hình bên bài 1 c a hình phía d
i:
1 đ n 9. In ra màn hình b ng nhân t
ố
ướ
ủ
Bài 2: In ra toàn b b ng c u ch
ng gi ng hình bài 2 trong hình phía
ộ ả
ử
ươ
ố
i:ướ
d
Bài 9: M ng trong Java!
ả
1, Khái ni m m ng
ệ
ả
ả
ầ ử
ượ
ả
ỗ
có cùng tên, cùng ki u d li u
ể ữ ệ
c truy xu t thông qua ch s c a
ỉ ố ủ
ấ
M ng là t p h p nhi u ph n t
ậ
ề
ợ
và m i ph n t
trong m ng đ
ầ ử
nó trong m ng.ả
2, Khai báo m ngả
ể ữ ệ
ả
[];
ho cặ
[] ;
ể ữ ệ
ả
ả
Ví d cách cách khai báo m ng:
ụ
PHP:
int arrInt1[];
int[] arrInt2;
int[] arrInt3, arrInt4, arrInt5;
3, C p phát b nh cho m ng
ộ ớ
ấ
ả
ộ
ớ
ả
ể ấ
ấ ả
ể ấ
m ng trong Java
ề
ớ
khóa
ừ
ng). Ch ng
ẳ
ư
ả
ta c n dùng t
Đ c p phát b nh cho
ầ
new. (T t c trong Java đ u thông qua các đ i t
ố ượ
h n đ c p phát vùng nh cho m ng trong Java ta làm nh sau:
ạ
PHP:
int arrInt = new int[100];
4, Kh i t o m ng
ở ạ
ả
ị
ầ
c a
ầ ử ủ
c khai báo.
ể ở ạ
ượ
Chúng ta có th kh i t o giá tr ban đ u cho các ph n t
m ng khi nó đ
ả
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
char arrChar[] = {‘a’, ‘b’, ‘c’};
String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’};
5, Truy c p m ng
ậ
ả
ắ ầ ừ
ầ ử ứ
ặ
đ u tiên có
0. Vì v y ph n t
ầ ử ầ
ậ
c a
th n có ch s là n - 1. Các ph n t
ỉ ố
ầ ử ủ
c truy xu t thông qua ch s c a nó đ t gi a c p d u
ấ
ữ ặ
ỉ ố ủ
ữ
ẳ
ạ
c xem nh m t m ng các ký t
ư ộ
Trong nh ng ngôn ng l p trình khác (C ch ng h n),
ữ ậ
. Trong java thì
ả
ỗ ượ
ng
ộ ớ
ể
ấ
Ch s m ng trong Java b t đ u t
ỉ ố ả
ch s là 0, và ph n t
ỉ ố
m ng đ
ấ
ượ
ả
ngo c vuông ([]).
ặ
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.
L u ý:ư
m t chu i đ
ộ
khác, java cung c p m t l p String đ làm vi c v i đ i t
d li u chu i cùng khác thao tác trên đ i t
ữ ệ
ự
ệ ớ ố ượ
ng d li u này.
ữ ệ
ố ượ
ỗ
Code ví d :ụ
PHP:
ố
ề
ề
ạ
public class ViDuArray {
public static void main(String[] args) {
int arrInt[];
arrInt = new int[4];
arrInt[0] = 9;
arrInt[1] = 17;
arrInt[2] = 13;
arrInt[3] = 14;
String arrString[] = {"Vu Van A", "Nguyen Van B", "Nguyen
Van C"};
System.out.println("M ngả số nguyên: ");
for (int i = 0; i < 4; i++) {
System.out.print(arrInt[i] + " ");
}
System.out.println("\nM ngả các chu i:ỗ ");
for (int i = 0; i < 3; i++) {
System.out.println(arrString[i] + " ");
}
System.out.println("");
}
}
6, M ng nhi u chi u! (Theo dõi đo n cu i video
d
ả
i)ướ
Bài t p v nhà:
ậ ề
bàn phím. Khai báo 1 m ng g m danh sách
ố
ả
ồ
ậ ừ
ng trình h i nh p tên sinh viên mu n tìm ki m. Tìm và in ra
ươ
ậ
bàn phím. Sau khi nh p
ậ
ế
ố
Bài 1: S sinh viên nh p t
ậ ừ
h tên sinh viên. Tên t ng sinh viên nh p t
ừ
ọ
xong, ch
ỏ
k t qu là có trong danh sách hay không.
ả
ế
bàn phím theo th t
ắ ế
ậ
ố
ừ
ứ ự
Bài 2: S p x p 1 dãy n s nguyên nh p vào t
tăng d n!ầ
c a 2 ma tr n cùng s hàng s c t vào t
ầ ử ủ
ừ
ố
ố ộ
ế
ậ
ổ
ả
ậ
ậ
Bài 3: Nh p các ph n t
bàn
ậ
phím. In 2 ma tr n ra màn hình. Tính t ng 2 ma tr n! In k t qu ra màn
hình!
Bài 10: Break và Continue trong Java
1, L nh break:
ệ
ấ ệ ứ ể
ệ
nh v y, trong c u trúc l p, câu l nh
ấ ỏ ấ
ặ ng t
ự ư ậ
ặ ế ẽ ể ặ ủ ặ Trong c u trúc switch chúng ta dùng câu l nh break đ thoát th i c u trúc
switch trong cùng ch a nó. T
ươ
break dùng đ thoát kh i c u trúc l p trong cùng ch a nó.
ỏ ấ
ể
ứ
t là các bài tìm ki m, s dùng break đ thoát vòng l p khi
, đ c bi
Trong th c t
ệ
ự ế ặ
i t n cùng c a vòng l p, gây lãng
chúng ta đã tìm th y k t qu , tránh vi c l p t
ả
ế
ấ
phí tài nguyên, vì th giúp ch ệ ặ ớ ậ
ng trình ch y nhanh h n!
ạ ươ ế ơ
Tìm ki m s th t c a ph n t có giá tr là 10 trong 1 m ng các s ố ứ ự ủ ầ ử ế ả ị ố
Ví d 1 : ụ
nguyên:
Show Spoiler
2, L nh continue:
ệ
ể ơ
ề ng dùng continue đ b qua vòng l p hi n t
ể ỏ
ế ệ ạ
ấ ặ ặ
ả
ố ệ ủ ệ ả ế
ệ ữ ệ ặ ỏ Hi u đ n gi n, chúng ta th
i khi
ườ
ả
g p đi u ki n nào đó đ ti p t c sang vòng l p ti p theo! Còn b n ch t, vì nó
ể ế ụ
ệ
ặ
cũng là 1 l nh nh y, nó nh y xu ng v trí k t thúc ("}") c a kh i l nh trong
ị
ả
vòng l p ch a nó và b qua t
cùng kh i l nh v i continue c a vòng l p) ố
t c các câu l nh sau nó (Nh ng câu l nh thu c
ộ
ấ ả
ủ ứ
ố ệ ặ ớ
có giá tr nh h n 35 và giá tr các ph n t
ị ầ ử ỏ ơ ị ố ứ ự ả Ví d 2: ụ Tìm ki m và in ra s th t
ế
trong m ng các s nguyên!
ố
Show Spoiler
3, Nhãn (label):
ả ư ỗ ợ ệ ị
ế
khóa break và ể
ng trình. Java dùng k t h p nhãn (label) v i t
ớ ừ
ế ợ ế ặ ệ
ỉ ố ớ ể ử ụ
Không gi ng nh C/C++, Java không h tr l nh goto đ nh y đ n 1 v trí nào
ố
đó c a ch
ươ
ủ
continue đ thay th cho l nh
ể
goto. Tuy nhiên, ta cũng ch có th s d ng label đ i v i các vòng l p mà thôi!
PHP:
label:
for (…){
for (…){
if (){
break label;
}
else{
continue label;
}
}
}
L nh “label:”
ệ
ị ị ủ ư ế ể ặ ề ệ ủ
ẽ ự ệ ả ỏ ệ
ượ ạ ẽ ế ụ ệ
ặ i s ti p t c vòng l p có nhãn “label” (khác v i
ớ
ng ch thoát kh i hay ti p t c vòng l p trong cùng
ế ụ ườ ặ ỏ ỉ ứ
Xác đ nh v trí c a nhãn và xem nh tên c a vòng l p ngoài. N u đúng thì l nh break label s th c hi n vi c nh y ra kh i vòng l p
có nhãn là “label”, ng
c l
break và continue thông th
ch a nó). ứ
ỉ ố ủ ầ ử ế ậ ấ ậ ấ
tìm th y Ví d 3: ụ Bài sau đây nh p xu t ma tr n, tìm ki m ch s c a ph n t
đ u tiên theo yêu c u!
ầ ầ
Show Spoiler
Bài t p v nhà:
ề
ậ
ọ
ọ
ớ
. S p x p theo th t
ả
ế
ứ ự
ậ
ậ
Bài 11: Th i gian h th ng trong Java
ầ
Bài 1: Nh p 1 danh sách h tên sinh viên 1 l p h c vào 1 m ng n ph n
ậ
a, b, c ... r i dùng thu t toán tìm ki m nh phân,
t
ồ
ử ắ ế
ị
tìm ki m chính xác tên sinh viên v a nh p và in ra màn hình s th t
ố ứ ự
ừ
ế
c a sinh viên đó!
ủ
ờ
ệ ố
ờ
ch y 1 đo n l nh trong ch
ạ ệ
ạ
ươ
ng
1, Tính th i gian
trình
ng th c "currentTimeMillis()", ta dùng nó đ ứ ể ươ ờ i
ạ ờ ạ ặ ể ế ể ạ ệ
c t ng th i gian ch y ch ờ ờ ạ ươ ệ ủ ờ ẽ ể ề
ố
ng th c "nanoTime()" trong đ i ươ ứ ẽ
a, Tính th i gian theo mini giây: (10^(-3)s)
ờ
ng System có ph
Trong đ i t
ố ượ
đánh d u 1 m c th i gian t
ố
ấ
v trí đ t câu l nh. Đ tính th i gian ch y xong 1 đo n l nh, ta đ t 2 bi n đ
ệ
ặ
ị
l y ra 2 m c
ố
ấ
th i gian r i l y hi u c a chúng là tính đ
ng trình.
ồ ấ
ượ ổ
ng trình sau s tính th i gian theo mini giây đ máy tính sin c a
Ví d : Ch
ủ
ươ
ụ
100000 giá tr truy n vào:
ị
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd1
long start = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
System.out.println(Math.sin(i));
}
long end = System.currentTimeMillis();
long t = end - start;
System.out.println("T ngổ th iờ gian: " + t + " millisecond
");
}
}
b, Tính th i gian theo nano giây (10^(-9)s)
ờ
ng t
nh trên, ch khác là ta s dùng ph
T
ỉ
ự ư
ươ
t
ng System thay vì
ượ
dùng ph ng th c "currentTimeMillis()" ươ ứ
h th ng
2, L y th i gian t
ờ
ấ
ừ ệ ố
, phút, giây và ngày, tháng, năm t ừ ệ
h ẽ ấ gi
ừ ờ ị ể
ạ
B n xem ví d sau, s l y th i gian t
ạ
ờ
ụ
th ng và hi n th ra bên ngoài:
ố
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd2
//Lay gio he thong
Date thoiGian = new Date();
//Khai bao dinh dang ngay thang
SimpleDateFormat dinhDangThoiGian = new SimpleDateFormat(
"HH:mm:ss dd/MM/yyyy ");
//parse ngay thang sang dinh dang va chuyen thanh string.
String hienThiThoiGian = dinhDangThoiGian.format(thoiGian.
getTime());
System.out.println("" + hienThiThoiGian);
}
}
Bài t p v nhà:
ậ ề
Các b n làm l
ạ
ụ
ạ
Bài 12: Class (l p) và đ i t
ng trong Java!
i các ví d trên cho thành th o!
ố ượ
ớ
1. Khái ni m class (l p):
ệ
ớ
ể ư ộ ồ ọ ầ ữ ệ ủ ố ượ
ng
ng (fields hay properties) và các
ươ
ng ữ ệ ủ ố ượ
ng th c (methods) tác đ ng lên thành ph n d li u đó g i là các ph
ộ
ớ ự ượ ượ ọ ể ệ ủ ớ
c g i là các th hi n c a l p c xây d ng b i các l p nên đ
ở
ớ ầ ư ả ấ
t ư ặ ơ ớ ồ ộ
ng d a trên l p này, các ố ượ ự ạ ớ nh m u trên. ng đ u t ng t ề ươ
ng a, khi đó a s có 3 thu c tính, và ta có th thao tác gán giá tr các ố ượ ẽ ể ộ ị
Chúng ta có th xem l p nh m t khuôn m u (template) c a đ i t
ẫ
ớ
(Object). Trong đó bao g m d li u c a đ i t
ph
ươ
ứ
th c c a l p.
ứ ủ ớ
ng đ
Các đ i t
ố ượ
(class instance).
L p trong java
g n gi ng nh b n ghi trong l p trình C ho c pascal, nh ng t
ậ
ố
nhiên nó cao c p h n.
ấ
Ví d 1:ụ Ta khai báo 1 l p SinhVien g m các thu c tính:
- hoTen
- namSinh
- lopHoc.
L p này chính là 1 khuôn m u. Khi ta t o ra các đ i t
ẫ
ớ
đ i t
ự ư ẫ
ố ượ
Vd :
T o đ i t
ạ
thu c tính đó nh sau:
ộ
- hoTen là "Nguy n Văn A"; ư
ễ
ng t ươ ừ
nh ng giá tr c a chúng s đ c tr ng cho t ng ị ủ ng b, c, ... cũng t
ng riêng. Có l ẽ ế
, các b n s th y nó có v gi ng v i các b n ghi n u
ẻ ố ẽ ặ
ớ ư
ả c h c l p trình C ho c Pascal. - namSinh là "1992";
- lopHoc là "At7a";
đ i t
ố ượ
đ i t
ố ượ
nh b n đã đ
ư ạ ượ ọ ậ ự ư
ạ ẽ ấ
ặ
2. Khai báo/đ nh nghĩa l p:
ị
ớ
ừ ặ ầ ữ ệ ủ ớ ộ
ự ự ng th c/hàm th hi n các thao tác x lý, tác ng l p.
ớ
ể ệ ở ạ
ươ ử PHP:
class {
;
;
constructor
method_1
method_2
}
- class: là t
khóa c a java
ủ
- ClassName: là tên chúng ta đ t cho l p
ớ
- field_1, field_2: các thu c tính, các bi n, hay các thành ph n d li u c a l p.
ế
- constructor: là s xây d ng, kh i t o đ i t
ố ượ
- method_1, method_2: là các ph
ứ
đ ng lên các thành ph n d li u c a l p.
ộ ầ ữ ệ ủ ớ
i constructor và method nhé, ẽ ư ờ Ở
ạ
nh ng bài sau mình s vi t rõ v nh ng khái ni m đó. bài này, t m th i chúng ta s ch a quan tâm t
ớ
ệ
ữ ề ữ ẽ ế
ế ạ ữ ụ
i s đây, t m th i ch a c n hi u public là gì nhé, xu ng ph n d t trong ví d 1
ầ ướ ẽ ờ ạ ể ị
ể
Các b n hãy xem vd2 code v l p đ đ nh nghĩa nh ng gì đã vi
ề ớ
Ví d 2:ụ (
ố
ư ầ
Ở
nói k h n)
ỹ ơ
PHP:
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
3. T o đ i t
ng c a l p:
ủ ớ
ố ượ
ạ
ClassName objectName = new ClassName();
ng sinh viên a và sinh viên b d a trên class đã đ nh nghĩa ự ị ạ ố ượ ví d 2:
ụ
Ví d 3:ụ T o 2 đ i t
ở
PHP:
SinhVien a = new SinhVien();
SinhVien b = new SinhVien();
4. Thu c tính c a l p
ủ ớ
ộ
c khai báo bên ủ ớ ượ Vùng d li u (fields) hay thu c tính (properties) c a l p đ
ộ
ữ ệ
trong l p nh sau:
ớ ư
ố ượ ấ ủ ữ ệ ủ
ng khác đ i v i vùng d li u c a ố ớ
ố ượ ng dùng 3 ti n t
ề ố
t
ấ ừ ấ ả
ể ớ ng khác
ủ
ả ớ ỉ ớ
l p đó truy c p đ n.
ế ấ ừ ớ ủ
ậ ẫ PHP:
class {
// khai báo nh ngữ thu cộ tính c aủ l pớ
field1;
// …
}
Đ xác đ nh quy n truy xu t c a các đ i t
ề
ị
ể
i ta th
l p ng
sau:
ườ
ườ
ớ
- public: có th truy xu t t
t c các đ i t
ể
- private: m t l p không th truy xu t vùng private c a 1 l p khác.
ấ
ộ ớ
- protected: vùng protected c a 1 l p ch cho phép b n thân l p đó và nh ng
ữ
l p d n xu t t
ớ
Xem thêm video Blog StudyAndShare v các thu c tính này: ộ ề
t c các đ i t ng khác. c truy c p đ n t
ậ t
ế ừ ấ ả ể ượ ố ượ
các đ i t c t ậ ượ ừ ể ỉ ố ượ ể
ng có ki u
ố ượ ộ ng c a các l p con d n xu t t ể
ng có ki u
l p "SinhVien" ậ ượ ừ
ớ các đ i t
ấ ừ ớ ố ượ c t
ẫ ể
ủ
t c các th ế ậ ị ấ ả ể Ví d 4:ụ
PHP:
class SinhVien{
public String hoTen;
private int namSinh;
protected String lopHoc;
public static String tenTruong = "HV KT M tậ Mã";
}
- Thu c tính "hoTen" có th đ
ộ
(public)
- Thu c tính "namSinh" ch có th truy c p đ
ộ
"SinhVien"(private)
- Thu c tính "lopHoc", so có th truy c p đ
"SinhVien" và các đ i t
(protected)
- "tenTruong" là bi n tĩnh có giá tr là "HV KT M t Mã"trong t
hi n t o ra t l p "SinhVien" (public static) ệ ạ ừ ớ
ườ ng ng
ả ườ ng đ an toàn cho vùng d li u c a các đ i t
Thông th
L u ý:ư
ng ch n ti n t
tránh dùng ti n t
ọ
ề ố
các ph
truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ i ta
ố ượ
ữ ệ ủ
ề ố private đ ngăn c n quy n
ề
ể
ng th c bên ngoài l p đó.
ươ ườ
ể
public, mà th
ữ ệ ủ ứ ế ậ ớ
t ượ ị ậ ố ượ bài sau mình s vi ế ở ị
ng, truy c p d li u c a các đ i t
ậ ữ ệ ủ
ẽ ế
Ở v trí nào trong 1 bài l p trình Java
ố ượ
ng
t rõ và k h n đ các
ể
ỹ ơ c đ nh nghĩa, đ
c vi
V y class đ
ượ
ậ
ng đ i t
h
ng. Vi c t o đ i t
ố ượ
ệ ạ
ướ
c t o t o nh ng class đó ra sao!
đ
ữ
ượ ạ ạ
b n có cái nhìn c th !
ụ ể
ạ
K t thúc bài này, mình s vi ẽ ế ế t 1 ví d đ n gi n:
ụ ơ ả
Ví D 5:ụ T o class sinh viên g m các thu c tính: hoTen, namSinh, lopHoc ạ ồ ộ
ườ
ng"
;
ị ộ ạ ừ ng là sinh viên a và sinh viên b. Gán giá tr cho các thu c tính và in
ố ượ
ộ
T o 2 đ i t
giá tr các thu c tính t ng sinh viên ra màn hình!
ị
PHP:
package javademoandroidvn;
//Vd5
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn T
a.namSinh = 1992;
a.lopHoc = "At7a";
SinhVien b = new SinhVien();
b.hoTen = "Nguy nễ Văn Tùng";
b.namSinh = 1990;
b.lopHoc = "Bk1";
System.out.println("Thông tin sinh vien a là: ");
System.out.println("Họ tên: " + a.hoTen + " Năm sinh: " +
a.namSinh + " L pớ H c:ọ " + a.lopHoc);
System.out.println("\nThông tin sinh vien b là: ");
System.out.println("Họ tên: " + b.hoTen + " Năm sinh: " +
b.namSinh + " L pớ H c:ọ " + b.lopHoc);
}
}
Bài t p v nhà:
ề
ậ
ồ ớ ạ
ố ượ ọ
ố
ng h c sinh a và h c sinh b, giá tr c a các thu c tính c a 2 đ i ể
ộ ị ủ ủ ọ ọ
ng tìm ra ng ố ượ ậ ừ ữ ể ườ
i Bài 1: T o class HocSinh g m 3 thu c tính: H tên, l p, đi m trung bình.
ộ
T o 2 đ i t
ạ
ngượ
t
đ
ượ
có đi m cao h n báo ra màn hình console! bàn phím. So sánh đi m trung bình gi a 2 đ i t
ơ c nh p t
ể
Bài 13: Class trong Java (ti p)ế
1, Bài có 1 class, dùng class ch a hàm main!
ứ
ạ ẽ ấ ườ ạ Khi b n lên m ng, tìm code, b n s th y ng
ạ
t này th
ng có 1 class duy nh t. Cách vi
Th ườ ườ
ườ ng dùng cách này
i ta th
ng dùng đ chia s thu t toán,
ậ ế ể ẻ ấ
i thi u các ph ng th c c a 1 đ i t ng trong th vi n nào ớ ặ ệ ươ ư ệ ứ ủ ố ượ
ộ ả ậ
ặ ậ ư ặ ể ọ ể ệ ể ế ạ cú pháp ho c gi
đó.
Ví d 1:ụ M t bài t p qu n lý sinh viên nh :
ỏ
PHP:
package sinh.vien;
public class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
}
}
Khi làm bài t p ho c làm các project, ít khi dùng cách này, nó không hay cho
vi c qu n lý, gi
ả
nh ng bài chia s d ng trên! i thi u đ các b n có th đ c và hi u n u nh g p ph i
ả
ớ
ẻ ạ ệ
ữ
2, Class đ t cùng file class ch a hàm main
ứ
ặ
bài tr ị ặ ứ ướ ở ụ ng trình chính,
ớ ỉ
ề ứ ề
ư Vd1, b sung thêm class gi ng viên, nh ng s b ỗ
t, s r t khó nhìn và qu n lý cũng nh nâng c p!
ả
ả ế
ố ẽ ấ
ộ ư ở ư ổ ẽ ố t ví d
c, mình có vi
V trí đ t ngoài class ch a ch
ế
ươ
theo cách này! Nó ch thích h p v i bài ít class, class ít thu c tính và ph
ươ
ng
ộ
ợ
th c. N u bài có nhi u class, m i class có nhi u ph
ng th c, đi u này cũng
ề
ươ
ứ
không t
ấ
Ví d 2:ụ N i dung bài nh
trí l i v trí class nh sau: ạ ị ư
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
class GiangVien {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
ng trình v n ch y n u b n đ các class SinhVien và GiangVien ươ ể ẫ ạ ở
}
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien gv1 = new GiangVien();
}
}
Chú ý: Ch
phía cu i ch
ng trình, ch c n n m ngoài class Main là đ ạ
ỉ ầ c
ượ ế
ằ ươ ố
3, M i class đ t riêng 1 file, cùng 1 gói (package)
ặ
ỗ
ở ề ng h c: ạ
ọ SinhVien, ườ
ẽ ạ ớ các bài t p có nhi u class, các class cùng 1 lo i.
Cách này
ậ
Ví d 4:ụ Các class cùng là nhân s c a 1 tr
ự ủ
GiangVienKhoa1, GiangVienKhoa2.
V i bài này, chúng ta s t o project v i 1 package là truong.hoc, trong
ớ
package này s có 4 file nh sau: ư ẽ
ứ
ạ ạ ả ộ ư ộ
File "main.java" ch a hàm main:
PHP:
package truong.hoc;
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien1 gv1 = new GiangVien1();
}
}
File GiangVien.java là 1 class, b n t o b ng cách nháy chu t ph i vào package
ằ
ch n New --> Java Class, n i dung nh sau:
ọ
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
File GiangVien1.java:
PHP:
package truong.hoc;
class GiangVien1 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
}
File GiangVien2.java:
PHP:
package truong.hoc;
class GiangVien2 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
public String phongThucHanh;
}
Nh vào IDE, vi c qu n lý các class tr lên ti n l
i h n r t nhi u! ệ ả ở ờ ệ ợ ơ ấ ề
4, Các class đ
nhi u package khác nhau:
c đ t
ượ ặ ở
ề
, s có r t nhi u class khác nhau đ ớ ữ ự ế ẽ c đ
ượ ể ở ề ấ nhi u gói
ề
các ví d trên. T o 1 project có tên:
ạ ẽ ở ộ ụ
V i nh ng project th c t
(package) khác nhau.
Ví d 4:ụ Project này s m r ng t
ừ
QuanLyTruongHoc. Trong project có 3 package: truong.hoc, nhan.su,
thu.vien.sach
Code bài 4 dài mình đính kèm phía d i, các b n Import vào IDE là ok! ướ ạ
ề
i các ví d !
ụ ầ
Bài 14: Ph
Bài t p v nhà:
ậ
Đ c hi u và code l
ạ
ọ
ể
ng Java đ u tiên c a b n
Đ c thêm:
T o 1 đ i t
ủ ạ
ố ượ
ọ
ạ
ng th c (method) trong Java
ứ
ươ
1, Khái ni m: ệ
ng th c ươ ứ (method) trong Java là kh i l nh ố ệ ệ ứ ủ ớ ự
ệ ủ ụ ạ ậ ng, chúng ta s h n ch g i nh v y, hãy ng trong ố ượ
ng th c, nó liên quan đ n tính h
ứ ữ
ệ
ư ậ
ng đ i t
ố ượ ấ
ng đ i t
ươ ớ
ế ọ
ướ ẽ ạ
ế Hàm hay ph
th c hi n các ch c năng, các hành vi x lý c a l p lên vùng d
ử
li u. Trong l p trình c u trúc, các b n đã làm quen v i khái ni m hàm, th t c.
Trong l p trình h
ướ
ậ
quen g i chúng là ph
ọ
Java!
2, Khai báo ph
ng th c:
ươ
ứ
ngươ th cứ > (){
ề ng khác đ i v i
ố ớ PHP:
;
}
Đ xác đ nh quy n truy xu t c a các đ i t
ể
các ph i ta th ố ượ
ng dùng các ti n t sau: ị
ng th c c a l p ng
ứ ủ ớ
ươ ấ ủ
ườ ườ ề ố
bên ngoài c t ứ ươ ậ ượ ừ ng th c có th truy c p đ
ể
c t l p khai báo và ậ ượ ừ ớ ữ ể
ấ ừ
c truy c p bên trong b n thân l p khai ớ ả nó.
ậ ẫ
ỉ ượ
ươ ứ ớ ấ ả ể ng th c l p dùng chung cho t
ươ t c các th
c
ể ượ
ng c a l p ch a
ứ ng th c đó có th đ
ứ
ố ượ ủ ớ
này không đ c khai báo ề ố ượ các l p d n xu t. ấ ầ ứ
ẫ
ng th c không c n cài đ t (không có
ự ặ
c hi n th c trong các l p d n
ẫ ệ ớ
ủ ể ộ ng khác lên đ i t ồ - public: ph
l p khai báo.
ớ
- protected: có th truy c p đ
nh ng l p d n xu t t
ớ
- private: ch đ
báo.
- static: ph
hi n c a l p, có nghĩa là ph
ệ ủ ớ
th c hi n k c khi không có đ i t
ự
ể ả
ệ
ng th c đó.
ph
ứ
ươ
- final: ph
ng th c có ti n t
ươ
ch ng
ớ
ớ
ồ
- abstract: ph
ứ
ươ
ph n source code), s đ
ầ
ẽ ượ
l p này.
xu t t
ấ ừ ớ
- synchoronized: dùng đ ngăn các tác đ ng c a các đ i
ố
t
ng đang xét trong khi đang đ ng
ượ
ố ượ
b hóa. Dùng trong l p trình miltithreads.
ậ
ộ
ộ ớ ể ể ể ơ ở
c gi ng tên bi n.
ố ả ề
ươ ướ ế - : có th là ki u void, ki u c s hay m t l p.
ể
- : đ t theo qui
ặ
ứ
- : có th r ng ể ỗ ố
ườ ộ ớ khóa ng là ừ ng trong m t l p các ph
ươ
public, khác v i vùng d li u th
ớ ng th c nên đ
ứ
ữ ệ c
ượ
ườ ụ ề ố private vì m c đích an toàn. ứ ủ ớ ng th c c a l p là các bi n
ế ộ
c kh i t o sau khi khai báo.
Chú ý:
- Thông th
khai báo dùng t
dùng ti n t
- Nh ng bi n n m trong m t ph
ằ
ế
ữ
c c b (local) và nên đ
ụ ộ
ượ ươ
ở ạ
Xem thêm video blog StudyAndShare
ể ạ ớ ọ ồ ớ Ví d 1:ụ T o 1 l p h c sinh g m các thu c tính: h tên, l p, đi m toán, lý, hóa.
ọ
Tính đi m trung bình, tính x p lo i h c l c! ộ
ạ ọ ự ể ế
đây tính đi m trung bình c a 3 môn, nh v y ph ể ủ Ở ư ậ ươ ứ
ng th c
ị ố ố
ế ề
ạ ọ ự ố ự
ự ố ố ươ ế ấ ng th c này tr
ứ ả
i. ặ ỏ
** Phân tích:
tính đi mể
có 3 đ i s truy n vào và tr v 1 giá tr là s th c.
ả ề
Tính x p lo i h c l c, đ i s vào là 1 bi n th c duy nh t, ph
v 1 chu i
ỗ
ề
là x p lo i: y u, trung bình, khá ho c gi
ạ
ế
ế
Code nh sau:
ư
PHP:
package javademoandroidvn;
ữ ậ ề ộ ề ệ ướ
class HocSinh {
public String hoTen, lop;
public float toan, ly, hoa;
public float diemTB(float toan, float ly, float hoa) {
return (float) (toan + ly + hoa) / 3;
}
public String xepLoai(float diemTB) {
if (diemTB >= 8 && diemTB <= 10) {
return "gi i"ỏ ;
}
if (diemTB >= 6.5f && diemTB < 8) {
return "khá";
}
if (diemTB >= 5.0f && diemTB < 6) {
return "trung bình";
}
if (diemTB >= 0.0f && diemTB < 5) {
return "y u"ế ;
}
return "Nh pậ sai!";
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.hoTen = "Vu Van T";
a.lop = "At7a";
a.toan = 8.0f;
a.ly = 9.0f;
a.hoa = 10.0f;
System.out.println("Thông tin: ");
System.out.println("Họ tên: " + a.hoTen + " - L p:ớ " + a.
lop);
System.out.println("Toán: " + a.toan + " Lý:" + a.ly + "
Hóa: " + a.hoa);
System.out.println("Đi mể trung bình: " + a.diemTB(a.toan,
a.ly, a.hoa));
System.out.println("X pế lo iạ " + a.xepLoai(a.diemTB(a.toa
n, a.ly, a.hoa)));
}
}
Ví d 2:ụ Gán chi u dài, chi u r ng hình ch nh t, hi n lên màn hình kích
th
Tính di n tích và chu vi hình ch nh t theo cách vi
ng đ i t t code h ng! c đó.
ệ ố ượ ữ ậ ướ ế
ề ộ ề ộ ng th c show, không có giá ươ ứ ề ** Phân tích: Các hình ch nh t có 2 thu c tính là chi u dài và chi u r ng.
- Đ hi n l
ể ệ ạ
tr tr v , nh ng
ị ả ề ữ ậ
i chi u dài, chi u r ng , ta dùng 1 ph
ề ộ
ư
ầ ề ề ộ ớ ể ứ ươ ị ế
ệ ữ ậ
ế
ng th c dienTich, chuVi v i 2 bi n
ứ ươ ể ệ ề
ị ệ ớ
ng th c showKetQua, v i 2
ậ ố ẽ ữ ứ ươ ử ạ ệ
ố
ng th c show ra ch ký k t thúc bài, s không có đ i
ế
c:ướ ");
" + rong);
.
ự
có giá tr bi n đ u vào là chi u dài và chi u r ng hình ch nh t!
- Đ tính di n tích và chu vi, ta t o 2 ph
ạ
vào (đ i s vào)
ố ố
là chi u r ng, chi u dài.
ề ộ
- Đ hi n giá tr di n tích và chu vi, ta dùng 1 ph
đ i số ố
th c nh p vào là chu vi, di n tích hình tròn.
ự
- Cu i bài, th t o 1 ph
s nào!
ố
Nó ch hi n ra 1 dòng ký t
ỉ ệ
Code nh sau:
ư
PHP:
package javademoandroidvn;
class HCN {
public float chieuDai;
public float chieuRong;
public void showChieuDai(float dai, float rong) {
System.out.println("Hình chữ nh tậ có kích th
System.out.println("Chi uề dài: " + dai);
System.out.println("Chi uề r ng:ộ
}
public float chuVi(float dai, float rong) {
return (dai + rong) * 2;
}
public float dienTich(float dai, float rong) {
return dai * rong;
}
public void showKetQua(float cv, float dt) {
System.out.println("Chu vi hình chữ nh tậ là: " + cv);
System.out.println("Di nệ tích hình chữ nh tậ là " + dt);
}
public void showChuKy() {
System.out.println("K tế thúc bài tính toán hình chữ nh t,ậ
xin chào, h nẹ g pặ l iạ b nạ ở bài ti pế theo!");
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HCN a = new HCN();
a.chieuDai = 6.0f;
a.chieuRong = 10.0f;
a.showChieuDai(a.chieuDai, a.chieuRong);
a.showKetQua(a.chuVi(a.chieuDai, a.chieuRong), a.dienTich(
a.chieuDai, a.chieuRong));
a.showChuKy();
}
}
Bài t p v nhà:
ề
ậ
ng. ồ ạ ớ ố ượ ả ượ ả ề ứ
ổ
ng, nh p các giá tr t màn hình console. ị ừ ng th c tính t ng ti n.
ậ
ơ ồ ng, th i gian mua.
ố ượ
ng th c setter và getter trong Bài 1: T o l p hàng hóa g m: tên hàng, mã hàng, giá hàng, s l
c gi m giá 5%
N u mua vào kho ng 8h -> 17h hàng ngày , đ
ế
T o ph
ươ
ạ
T o 1 đ i t
ố ượ
ạ
In toàn b thông tin đ n hàng ra ngoài màn hình console g m:
ộ
tên, mã, giá, s l
ươ ờ
ứ
Bài 15: Ph
Java
t chú ý 1 đi u nh này:
ề ư
Ở bài 12 mình có vi
ườ ố ượ ườ
các ph ườ
ữ ệ ủ i ta
ng ng
ề ố private đ ngăn c n
ả
ể
ng th c bên
ứ
ươ ề ế
ng đ an toàn cho vùng d li u c a các đ i t
Thông th
ữ ệ ủ
ể
ng ch n ti n t
public, mà th
tránh dùng ti n t
ề ố
ọ
quy n truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ
ế
ậ
ngoài l p đó.
ớ
ụ ướ ộ các ví d tr
ư ả ẫ ng đ
Ở
nh ng đó không ph i là cách n. N u chuy n v
các thu c tính nh các bài ví d tr
ư c, các thu c tính mình th
ổ
ế
ụ ướ ườ
ể
c thì s l
ẽ ỗ ạ
ể public , ch
ng trình ch y,
ươ
ề private, mà b n v n truy c p
ậ
ạ
i nh này:
ư ộ
ng đ V y làm nh nào đ truy c p các thu c tính c a đ i t
ậ ủ ố ượ ư ể ậ ộ ể private?
1, Bi n this
ế
ể ầ
ế ấ ả ớ ữ
c s d ng trong khi ộ
t c các l p trong ngôn ng java. M t
ượ ử ụ Đ u tiên b n c n hi u bi n này là gì?
ế
ạ ầ
i trong t
Bi n this là m t bi n n t n t
ế ẩ ồ ạ
ộ
class trong Java luôn t n t
ế
ồ ạ
ế
ộ
ch y và tham kh o đ n b n thân l p ch a nó.
ớ
ả
ế i m t bi n this, bi n this đ
ứ ả ạ
2, Ph
ươ
ng th c setter
ứ
ng th c setter là chúng ta dùng nó đ truy c p vào thu c tính ứ ươ ậ ủ ố ượ ộ ọ ộ
ng! Tên g i, hay
ng th c này là tùy b n, nó cũng v n ch y nh ng theo
ư ươ ạ ạ ng làm thì nó s th M c đích c a ph
ủ
ể
ụ
ng và gán giá tr cho các thu c tính c a đ i t
c a đ i t
ủ ố ượ
cách b n đ t tên ph
ặ
ẫ
ạ
ng là set....
style code l p trình viên th
ậ ị
ứ
ườ ẽ ườ
Ví d 1: ụ
PHP:
package javademoandroidvn;
class HocSinh {
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
}
}
2, Ph
ng th c getter
ứ
ươ
ng t ươ nh ph
ự ư ươ ộ
ng th c setter, nó cũng dùng đ truy c p vào các thu c ứ ể ậ
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
i setter, ph c l
ượ ạ ươ ộ
ng th c getter s tr v các thu c ẽ ả ề ứ Cũng t
tính
c a đ i t
ủ ố ượ
tính c a đ i t ng, nh ng ng
ư
ng! ủ ố ượ
Ví d 2: ụ
PHP:
package javademoandroidvn;
class HocSinh {
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public String getHoTen() {
return hoTen;
}
public String getLop() {
return lop;
}
public float getDiemTb() {
return diemTb;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
System.out.println("Họ tên: " + a.getHoTen());
System.out.println("L p:ớ " + a.getLop());
System.out.println("Đi mể Tb: " + a.getDiemTb());
}
}
Các b n nên xem video sau c a blog StudyAndShare đ hi u h n! ể ể ủ ạ ơ
3, Cách t
chèn các ph
ng th c getter và setter:
ự
ươ
ứ
ạ ự ự ể ư
chèn các ph ớ
ng th c getter và setter. V i ươ ề Khi b n m i code java thì ch a nên dùng cách này, th c s hi u getter và setter
ớ
r i thì m i nên dùng.
ớ
ồ
c 2 IDE ph bi n đ u h tr t
ỗ ợ ự
Ở ả
ổ ế
nh ng bài khi khai báo nhi u bi n, dùng tính năng này s r t ti n!
ế
ữ ứ
ẽ ấ ệ ề
ộ
ớ
ạ
ả ọ ị ặ
V i Netbeans:
B n nháy chu t ph i lên v trí so n th o code, ch n Insert Code
ả
ạ
Sau đó s hi n ra 1 menu nh , b n ch n getter, setter ho c getter and setter tùy
ọ
ỏ ạ
ẽ ệ
m c đích b n dùng!
ạ
B n s th y Netbeans t
sinh code cho các ph ụ
ạ ẽ ấ ng th c đó!
ứ ươ ự
Source --> Generate Getter and Setter r i ch n bi n c n t o ph ng ế ầ ạ ồ ọ ươ c!
V i Eclipese:
ớ
B n vào
ạ
th c getter và setter là đ
ứ
ượ
Bài t p v nhà:
ề
ậ
ạ ả ồ ọ ự
ộ ể ớ ọ ươ ạ ớ ọ ộ
ạ
ạ bàn phím. ừ ậ ủ ủ ể Bài 1: T o package nhân s , trong có 2 class là sinh viên và gi ng viên
Class sinh viên g m các thu c tính: h tên, l p h c, đi m toán, lý, hóa.
ng.
Class gi ng viên g m các thu c tính: h tên, l p d y, năm sinh, l
ồ
ả
ng h c sinh a.
T o đ i t
ố ượ
ọ
T o đ i t
ng gi ng viên b.
ả
ố ượ
Các giá tr c a thu c tính a và b nh p vào t
ộ
ị ủ
X lý d li u báo ra thông tin c a a và b, tính và báo ra đi m trung bình c a a,
ữ ệ
ử
x p lo i h c l c, báo b có d y a hay không!
ạ ọ ự
ế ạ
ng th c getter, setter. ộ ử ụ ươ ứ Các thu c tính đ private, s d ng ph
ể
ng đ i t
L p trình h ng! ố ượ ướ ậ
ố ệ
>;
i:
ạ ộ
ư
ướ
t ch
ng trình, gán bi n nguyên a là 1 giá
ớ
ầ
ế
ế
ủ ậ
ế
ị ấ
ứ
ị
ạ
ả
1 t
i 7".
ừ ớ
c vi
ỉ ượ
ng trình s d ng Switch Case s đ
ươ
ử ụ
ẽ ượ
c gán s nguyên t
ố
t nh sau:
ư
ế
Ví d :ụ V i yêu c u sau: Vi
ươ
tr b t kỳ. N u a = 1 thì in ra màn hình là "Ch nh t", a = 2 thì in ra
ế
"Th Hai", ..... a = 7 thì in ra "Th B y". N u a không trong kho ng [1 ;
ứ ả
7] thì báo "B n đã gán sai giá tr , ch đ
Ch
PHP:
public class SwitchDemo {
public static void main(String[] args) {
int a = 3;
switch (a) {
case 1:
System.out.println("Chủ nh t"ậ );
break;
case 2:
System.out.println("Thứ Hai");
break;
case 3:
System.out.println("Thứ Ba");
break;
case 4:
System.out.println("Thứ T "ư );
break;
case 5:
System.out.println("Thứ Năm");
break;
case 6:
System.out.println("Thứ Sáu");
break;
case 7:
System.out.println("Thứ B y"ả );
break;
default:
System.out.println("B nạ đã gán sai giá tr ,ị chỉ đư
cợ gán số nguyên từ 1 t iớ 7");
break;
}
}
}
Chú ý:
ế
ể
ữ ệ
ỉ ỗ ợ ể
ừ
ữ ệ
ề
ể
ớ
- Ki u d li u c a bi n trong switch ch h tr ki u d li u:
ữ ệ int,
ủ
JDK 7, h tr thêm ki u String và các giá tr
byte, short,char, t
ị
ỗ ợ
ể
truy n vào trong m i case thì ph i trùng ki u d li u v i bi n
ế
ả
ỗ
trong switch.
ấ
ả
ắ
ộ
ươ
ể
ạ
ạ
ng h p nh t đ nh, nh ng khi đó, ch
ớ
ấ ị
ươ
ư
ể ừ
ề
ỏ
- L nh "break" trong c u trúc này không ph i là b t bu c ph i có
ả
ệ
ng trình m i ch y, b n có th không dùng "break" v i
ớ
thì ch
ế
ng trình s ch y h t
tr
ạ
ẽ
ợ
ườ
ươ
khi ch
các kh i l nh trong các "case" ti p theo sau, k t
ng
ố ệ
trình tìm đ
ế
i khi h t
ớ
ị
ượ
"case" ho c g p l nh "break".
ặ
ế
c "case" có giá tr truy n vào th a mãn, t
ặ ệ
t bên Blog StudyAndShare
ủ
ệ
B n nên tham kh o 2 video c a anh Vi
ả
đ hi u rõ h n v c u trúc này:
ơ ề ấ
ạ
ể ể
ế
t
0 đ n 9. Vi
ế
ế
ừ
ằ
ươ
ố
ụ
ng trình in ra tên các ch s nh p vào b ng ti ng Anh. Ví d
ng trình ch y s in ra “1 đ c là One”, gán a
ữ ố
ạ
ậ
ẽ
ươ
ằ
ọ
Bài t p v nhà:
ậ ề
Bài 1: Gán bi n a là 1 trong các s ngu yên t
ế
ch
gán a b ng 1 thì ch
= 2 thì in ra “2 đ c là Two”
ọ
ị
ế
ầ
ộ ậ
ợ
c âm.
ượ
ế
ế
ạ
ậ
Bài 2: Khai báo 2 bi n nguyên “thang” và “nam” gán giá tr là
tháng và năm.Yêu c u “thang” thu c t p h p [1..12], năm không
đ
- N u gán sai tháng thì báo “B n đã nh p sai tháng”, n u gán sai
năm thì báo “B n đã gán sai năm”. Khi 1 trong 2 thông tin b gán
ạ
ị
ệ
ữ
ạ
ẽ
ậ
ườ
ng.
ậ
ế
ậ
ự
ị
sai, nh ng câu l nh sau s không ch y!
- N u năm đó là năm nhu n thì in ra thông báo: Đây là năm
nhu n. không thì báo ra là năm th
- D a vào thông tin năm đó là năm nhu n hay không và giá tr
c a tháng đó là tháng nào đ báo ra tháng đó có bao nhiêu ngày.
ủ
ể
ậ
ệ
Bài 7: Nh p xu t d li u trên giao di n
ấ ữ ệ
Console
ặ
ệ
ứ ự
ẻ ơ ớ
ầ
ế
i thi u theo th t
ng, input – output trong
ớ
này thì có v h i s m, vì nó liên quan đ n
ế
java (là 1 ph n dài dài) nh ng do
ư
ậ
i, s ph i nh p
ặ ắ ớ ẽ ả
ng trình.
ơ
ị
ố
ậ ữ ệ
ệ
ậ ữ ệ
ẽ ố
Ở
ơ
ế
ệ
ạ
ả
ệ
ằ
bài này, mình s gi
ẽ ớ
ượ
ề
ể
ấ ượ
ụ
ẽ
i).
- M c dù n u gi
ế
ớ
khái ni m đ i t
ố ượ
ệ
ti p theo nh ng bài liên quan t
i m ng, các vòng l p s p t
ữ
ả
nhi u d li u, chúng ta không th c gán giá tr trong ch
ề ữ ệ
ươ
ể ứ
l p trình pascal, C c
Nói đ n gi n, thì vi c nh p d li u này nó gi ng nh
ơ
ư ở ậ
ả
ng thì nh p d li u qua màn hình ms-dos (v i java n u b n dùng
b n – th
ế ạ
ớ
ườ
ả
câu l nh java, javac trong cmd thì nó cũng s gi ng nh v y, nh ng b t ti n) .
ấ ệ
ư
ư ậ
ệ
c,
nh ng bài tr
-
ướ
đây, chúng ta có 1 giao di n tích h p vào IDE, n i mà
ở ữ
ợ
ệ
các b n in k t qu ra (l nhSystem.out.println…), và bây gi
ậ ữ
, chúng ta nh p d
ờ
li u vào b ng chính màn hình đó.
i thi u
ệ
c đi u này, nh ng
- Có nhi u cách đ làm đ
ề
c các ki u
cách mà theo mình là ng n g n d hi u nh t đ nh p và l y đ
ể
ọ ễ ể
ắ
d li u thông d ng : ki u nguyên, ki u th c, ki u chu i. (Đi sâu h n, mình s
ơ
ỗ
ể
ể
ữ ệ
nói trong ph n input – output , ch c là vài bài n a m i t
ớ ớ
ư ở
ấ ể ậ
ể
ự
ữ
ầ
ắ
đ u ch
ng trình
Đ u tiên là b n ph i thêm gói này vào
ả
ầ
ạ
ở ầ
ươ
PHP:
import java.util.Scanner;
ng Scanner, tên đ i t
ng b n t
ươ
ố ượ
ạ ự
đây tên đ i t
ng trình, b n t o 1 đ i t
ạ ạ
ng mình đ t là “nhapDuLieu”
ố ượ
ặ
ố ượ
Trong ch
đ t,
ặ ở
PHP:
Scanner nhapDuLieu = new Scanner(System.in);
ả
ể ọ ả
ể ọ
ự
ỗ
ị
ế
ể
Sau đó, đ đ c c dòng văn b n (dùng nó đ đ c chu i ký t ) ta dùng
l nh nhapDuLieu.nextLine(), gán vào bi n nào đó giá tr , vd mình dùng
ệ
bi n “ten” – ki u String
ế
PHP:
ten = nhapDuLieu.nextLine();
T
ng t
ươ
ự ể ọ
, đ đ c ki u d li u d ng s nguyên, s th c dùng l nh :
ố
ể ữ ệ ạ
ố ự
ệ
tìm hi u thêm b ng cách gõ tên đ i t
ng Scanner r i tìm
ố ượ
ằ
ồ
ụ
+ ten+"\n");
Bài demo:
PHP:
package demo.android.vn;
import java.util.Scanner;
public class AndroidVn {
public static void main(String[] args) {
int tuoi;
String ten;
Scanner nhapDuLieu = new Scanner(System.in);
System.out.print("Nh pậ Tên: ");
ten = nhapDuLieu.nextLine();
System.out.print("Nh pậ Tu i:ổ ");
tuoi = nhapDuLieu.nextInt();
System.out.println("\nTên V aừ Nh p:"ậ
System.out.println("Tu iổ V aừ Nh p:ậ " + tuoi);
}
}
K t qu màn hình Console:
PHP:
nhapDuLieu.nextInt();
nhapDuLieu.nextFloat();
B n th t
ể
ử ự
ạ
g i nh , ví d gõ
ớ
ợ
nhapDuLieu. + Ctrl + Cách (space)
ế ả
Bài t p v nhà:
ậ ề
ừ
ọ
ể
ọ
Bài 1: T màn hình console, nh p d li u c a 1 sinh viên là h và tên,
ậ ữ ệ ủ
năm sinh, đi m toán, lý , hóa (ki u s th c). D a vào đi m trung bình 3
ự
ể ố ự
ể
môn in ra đó là h c sinh gi
i, khá hay trung bình
ấ
ặ
ỏ
Bài 8: C u trúc l p while, do while, for trong
Java!
D ng 1: while(…)
ạ
ặ ệ
c, đúng r i m i th c hi n kh i l nh. Vd:
ố ệ
ệ
ớ
ồ
ệ
ề
ự
ướ
Xét đi u ki n tr
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
i = 0;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
i = 15;
while (i < 10) {
System.out.print(" "+i++);
}
System.out.println("...i = "+i);
}
}
while(đi u_ki n_l p){
ề
kh i_l nh;
ố ệ
}
D ng 2: do{…}while;
ạ
do{
kh i_l nh;
ố ệ
}while(đi u_ki n);
ề
ệ
ệ
ề
ướ
l n đ u, t
kh i l nh luôn
ầ ừ ố ệ
ệ
ự
c, r i xét đi u ki n, n u sai thì không th c
ế
ồ
ả ề
c th c hi n ít nh t 1 l n. Vd:
ầ
ự
ố ệ
ư ậ
ệ
Th c hi n kh i l nh tr
ự
ệ
hi n n a. Nh v y, ngay c đi u ki n sai t
ệ ữ
ừ ầ
đ
ấ
ượ
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i = 0;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
i = 15;
do {
System.out.print(" " + i++);
} while (i < 10);
System.out.println("...i = " + i);
}
}
D ng 3: for(…)
ạ
ế
ở ạ
ế
ặ
for(kh i_t o_bi n_đ m;đk_l p;tăng_bi n){
ế
;
ố ệ
}
Vd:
PHP:
public class AndroidVn {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++) {
System.out.print(" " + i);
}
System.out.println("\n..i = " + i);
}
}
Bài t p v nhà:
ậ ề
ừ
ố
ế
ậ
ng ng v i s v a nh p.
ớ ố ừ
ậ ữ ệ ủ
ươ ứ
ế
ả
Bài 1: T màn hình console, nh p d li u c a bi n a là 1 trong các s
t
ừ
Gi ng hình bên bài 1 c a hình phía d
i:
1 đ n 9. In ra màn hình b ng nhân t
ố
ướ
ủ
Bài 2: In ra toàn b b ng c u ch
ng gi ng hình bài 2 trong hình phía
ộ ả
ử
ươ
ố
i:ướ
d
Bài 9: M ng trong Java!
ả
1, Khái ni m m ng
ệ
ả
ả
ầ ử
ượ
ả
ỗ
có cùng tên, cùng ki u d li u
ể ữ ệ
c truy xu t thông qua ch s c a
ỉ ố ủ
ấ
M ng là t p h p nhi u ph n t
ậ
ề
ợ
và m i ph n t
trong m ng đ
ầ ử
nó trong m ng.ả
2, Khai báo m ngả
ể ữ ệ
ả
[];
ho cặ
[] ;
ể ữ ệ
ả
ả
Ví d cách cách khai báo m ng:
ụ
PHP:
int arrInt1[];
int[] arrInt2;
int[] arrInt3, arrInt4, arrInt5;
3, C p phát b nh cho m ng
ộ ớ
ấ
ả
ộ
ớ
ả
ể ấ
ấ ả
ể ấ
m ng trong Java
ề
ớ
khóa
ừ
ng). Ch ng
ẳ
ư
ả
ta c n dùng t
Đ c p phát b nh cho
ầ
new. (T t c trong Java đ u thông qua các đ i t
ố ượ
h n đ c p phát vùng nh cho m ng trong Java ta làm nh sau:
ạ
PHP:
int arrInt = new int[100];
4, Kh i t o m ng
ở ạ
ả
ị
ầ
c a
ầ ử ủ
c khai báo.
ể ở ạ
ượ
Chúng ta có th kh i t o giá tr ban đ u cho các ph n t
m ng khi nó đ
ả
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
char arrChar[] = {‘a’, ‘b’, ‘c’};
String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’};
5, Truy c p m ng
ậ
ả
ắ ầ ừ
ầ ử ứ
ặ
đ u tiên có
0. Vì v y ph n t
ầ ử ầ
ậ
c a
th n có ch s là n - 1. Các ph n t
ỉ ố
ầ ử ủ
c truy xu t thông qua ch s c a nó đ t gi a c p d u
ấ
ữ ặ
ỉ ố ủ
ữ
ẳ
ạ
c xem nh m t m ng các ký t
ư ộ
Trong nh ng ngôn ng l p trình khác (C ch ng h n),
ữ ậ
. Trong java thì
ả
ỗ ượ
ng
ộ ớ
ể
ấ
Ch s m ng trong Java b t đ u t
ỉ ố ả
ch s là 0, và ph n t
ỉ ố
m ng đ
ấ
ượ
ả
ngo c vuông ([]).
ặ
Ví d :ụ
PHP:
int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.
L u ý:ư
m t chu i đ
ộ
khác, java cung c p m t l p String đ làm vi c v i đ i t
d li u chu i cùng khác thao tác trên đ i t
ữ ệ
ự
ệ ớ ố ượ
ng d li u này.
ữ ệ
ố ượ
ỗ
Code ví d :ụ
PHP:
ố
ề
ề
ạ
public class ViDuArray {
public static void main(String[] args) {
int arrInt[];
arrInt = new int[4];
arrInt[0] = 9;
arrInt[1] = 17;
arrInt[2] = 13;
arrInt[3] = 14;
String arrString[] = {"Vu Van A", "Nguyen Van B", "Nguyen
Van C"};
System.out.println("M ngả số nguyên: ");
for (int i = 0; i < 4; i++) {
System.out.print(arrInt[i] + " ");
}
System.out.println("\nM ngả các chu i:ỗ ");
for (int i = 0; i < 3; i++) {
System.out.println(arrString[i] + " ");
}
System.out.println("");
}
}
6, M ng nhi u chi u! (Theo dõi đo n cu i video
d
ả
i)ướ
Bài t p v nhà:
ậ ề
bàn phím. Khai báo 1 m ng g m danh sách
ố
ả
ồ
ậ ừ
ng trình h i nh p tên sinh viên mu n tìm ki m. Tìm và in ra
ươ
ậ
bàn phím. Sau khi nh p
ậ
ế
ố
Bài 1: S sinh viên nh p t
ậ ừ
h tên sinh viên. Tên t ng sinh viên nh p t
ừ
ọ
xong, ch
ỏ
k t qu là có trong danh sách hay không.
ả
ế
bàn phím theo th t
ắ ế
ậ
ố
ừ
ứ ự
Bài 2: S p x p 1 dãy n s nguyên nh p vào t
tăng d n!ầ
c a 2 ma tr n cùng s hàng s c t vào t
ầ ử ủ
ừ
ố
ố ộ
ế
ậ
ổ
ả
ậ
ậ
Bài 3: Nh p các ph n t
bàn
ậ
phím. In 2 ma tr n ra màn hình. Tính t ng 2 ma tr n! In k t qu ra màn
hình!
Bài 10: Break và Continue trong Java
1, L nh break:
ệ
ấ ệ ứ ể
ệ
nh v y, trong c u trúc l p, câu l nh
ấ ỏ ấ
ặ ng t
ự ư ậ
ặ ế ẽ ể ặ ủ ặ Trong c u trúc switch chúng ta dùng câu l nh break đ thoát th i c u trúc
switch trong cùng ch a nó. T
ươ
break dùng đ thoát kh i c u trúc l p trong cùng ch a nó.
ỏ ấ
ể
ứ
t là các bài tìm ki m, s dùng break đ thoát vòng l p khi
, đ c bi
Trong th c t
ệ
ự ế ặ
i t n cùng c a vòng l p, gây lãng
chúng ta đã tìm th y k t qu , tránh vi c l p t
ả
ế
ấ
phí tài nguyên, vì th giúp ch ệ ặ ớ ậ
ng trình ch y nhanh h n!
ạ ươ ế ơ
Tìm ki m s th t c a ph n t có giá tr là 10 trong 1 m ng các s ố ứ ự ủ ầ ử ế ả ị ố
Ví d 1 : ụ
nguyên:
Show Spoiler
2, L nh continue:
ệ
ể ơ
ề ng dùng continue đ b qua vòng l p hi n t
ể ỏ
ế ệ ạ
ấ ặ ặ
ả
ố ệ ủ ệ ả ế
ệ ữ ệ ặ ỏ Hi u đ n gi n, chúng ta th
i khi
ườ
ả
g p đi u ki n nào đó đ ti p t c sang vòng l p ti p theo! Còn b n ch t, vì nó
ể ế ụ
ệ
ặ
cũng là 1 l nh nh y, nó nh y xu ng v trí k t thúc ("}") c a kh i l nh trong
ị
ả
vòng l p ch a nó và b qua t
cùng kh i l nh v i continue c a vòng l p) ố
t c các câu l nh sau nó (Nh ng câu l nh thu c
ộ
ấ ả
ủ ứ
ố ệ ặ ớ
có giá tr nh h n 35 và giá tr các ph n t
ị ầ ử ỏ ơ ị ố ứ ự ả Ví d 2: ụ Tìm ki m và in ra s th t
ế
trong m ng các s nguyên!
ố
Show Spoiler
3, Nhãn (label):
ả ư ỗ ợ ệ ị
ế
khóa break và ể
ng trình. Java dùng k t h p nhãn (label) v i t
ớ ừ
ế ợ ế ặ ệ
ỉ ố ớ ể ử ụ
Không gi ng nh C/C++, Java không h tr l nh goto đ nh y đ n 1 v trí nào
ố
đó c a ch
ươ
ủ
continue đ thay th cho l nh
ể
goto. Tuy nhiên, ta cũng ch có th s d ng label đ i v i các vòng l p mà thôi!
PHP:
label:
for (…){
for (…){
if (){
break label;
}
else{
continue label;
}
}
}
L nh “label:”
ệ
ị ị ủ ư ế ể ặ ề ệ ủ
ẽ ự ệ ả ỏ ệ
ượ ạ ẽ ế ụ ệ
ặ i s ti p t c vòng l p có nhãn “label” (khác v i
ớ
ng ch thoát kh i hay ti p t c vòng l p trong cùng
ế ụ ườ ặ ỏ ỉ ứ
Xác đ nh v trí c a nhãn và xem nh tên c a vòng l p ngoài. N u đúng thì l nh break label s th c hi n vi c nh y ra kh i vòng l p
có nhãn là “label”, ng
c l
break và continue thông th
ch a nó). ứ
ỉ ố ủ ầ ử ế ậ ấ ậ ấ
tìm th y Ví d 3: ụ Bài sau đây nh p xu t ma tr n, tìm ki m ch s c a ph n t
đ u tiên theo yêu c u!
ầ ầ
Show Spoiler
Bài t p v nhà:
ề
ậ
ọ
ọ
ớ
. S p x p theo th t
ả
ế
ứ ự
ậ
ậ
Bài 11: Th i gian h th ng trong Java
ầ
Bài 1: Nh p 1 danh sách h tên sinh viên 1 l p h c vào 1 m ng n ph n
ậ
a, b, c ... r i dùng thu t toán tìm ki m nh phân,
t
ồ
ử ắ ế
ị
tìm ki m chính xác tên sinh viên v a nh p và in ra màn hình s th t
ố ứ ự
ừ
ế
c a sinh viên đó!
ủ
ờ
ệ ố
ờ
ch y 1 đo n l nh trong ch
ạ ệ
ạ
ươ
ng
1, Tính th i gian
trình
ng th c "currentTimeMillis()", ta dùng nó đ ứ ể ươ ờ i
ạ ờ ạ ặ ể ế ể ạ ệ
c t ng th i gian ch y ch ờ ờ ạ ươ ệ ủ ờ ẽ ể ề
ố
ng th c "nanoTime()" trong đ i ươ ứ ẽ
a, Tính th i gian theo mini giây: (10^(-3)s)
ờ
ng System có ph
Trong đ i t
ố ượ
đánh d u 1 m c th i gian t
ố
ấ
v trí đ t câu l nh. Đ tính th i gian ch y xong 1 đo n l nh, ta đ t 2 bi n đ
ệ
ặ
ị
l y ra 2 m c
ố
ấ
th i gian r i l y hi u c a chúng là tính đ
ng trình.
ồ ấ
ượ ổ
ng trình sau s tính th i gian theo mini giây đ máy tính sin c a
Ví d : Ch
ủ
ươ
ụ
100000 giá tr truy n vào:
ị
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd1
long start = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
System.out.println(Math.sin(i));
}
long end = System.currentTimeMillis();
long t = end - start;
System.out.println("T ngổ th iờ gian: " + t + " millisecond
");
}
}
b, Tính th i gian theo nano giây (10^(-9)s)
ờ
ng t
nh trên, ch khác là ta s dùng ph
T
ỉ
ự ư
ươ
t
ng System thay vì
ượ
dùng ph ng th c "currentTimeMillis()" ươ ứ
h th ng
2, L y th i gian t
ờ
ấ
ừ ệ ố
, phút, giây và ngày, tháng, năm t ừ ệ
h ẽ ấ gi
ừ ờ ị ể
ạ
B n xem ví d sau, s l y th i gian t
ạ
ờ
ụ
th ng và hi n th ra bên ngoài:
ố
PHP:
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd2
//Lay gio he thong
Date thoiGian = new Date();
//Khai bao dinh dang ngay thang
SimpleDateFormat dinhDangThoiGian = new SimpleDateFormat(
"HH:mm:ss dd/MM/yyyy ");
//parse ngay thang sang dinh dang va chuyen thanh string.
String hienThiThoiGian = dinhDangThoiGian.format(thoiGian.
getTime());
System.out.println("" + hienThiThoiGian);
}
}
Bài t p v nhà:
ậ ề
Các b n làm l
ạ
ụ
ạ
Bài 12: Class (l p) và đ i t
ng trong Java!
i các ví d trên cho thành th o!
ố ượ
ớ
1. Khái ni m class (l p):
ệ
ớ
ể ư ộ ồ ọ ầ ữ ệ ủ ố ượ
ng
ng (fields hay properties) và các
ươ
ng ữ ệ ủ ố ượ
ng th c (methods) tác đ ng lên thành ph n d li u đó g i là các ph
ộ
ớ ự ượ ượ ọ ể ệ ủ ớ
c g i là các th hi n c a l p c xây d ng b i các l p nên đ
ở
ớ ầ ư ả ấ
t ư ặ ơ ớ ồ ộ
ng d a trên l p này, các ố ượ ự ạ ớ nh m u trên. ng đ u t ng t ề ươ
ng a, khi đó a s có 3 thu c tính, và ta có th thao tác gán giá tr các ố ượ ẽ ể ộ ị
Chúng ta có th xem l p nh m t khuôn m u (template) c a đ i t
ẫ
ớ
(Object). Trong đó bao g m d li u c a đ i t
ph
ươ
ứ
th c c a l p.
ứ ủ ớ
ng đ
Các đ i t
ố ượ
(class instance).
L p trong java
g n gi ng nh b n ghi trong l p trình C ho c pascal, nh ng t
ậ
ố
nhiên nó cao c p h n.
ấ
Ví d 1:ụ Ta khai báo 1 l p SinhVien g m các thu c tính:
- hoTen
- namSinh
- lopHoc.
L p này chính là 1 khuôn m u. Khi ta t o ra các đ i t
ẫ
ớ
đ i t
ự ư ẫ
ố ượ
Vd :
T o đ i t
ạ
thu c tính đó nh sau:
ộ
- hoTen là "Nguy n Văn A"; ư
ễ
ng t ươ ừ
nh ng giá tr c a chúng s đ c tr ng cho t ng ị ủ ng b, c, ... cũng t
ng riêng. Có l ẽ ế
, các b n s th y nó có v gi ng v i các b n ghi n u
ẻ ố ẽ ặ
ớ ư
ả c h c l p trình C ho c Pascal. - namSinh là "1992";
- lopHoc là "At7a";
đ i t
ố ượ
đ i t
ố ượ
nh b n đã đ
ư ạ ượ ọ ậ ự ư
ạ ẽ ấ
ặ
2. Khai báo/đ nh nghĩa l p:
ị
ớ
ừ ặ ầ ữ ệ ủ ớ ộ
ự ự ng th c/hàm th hi n các thao tác x lý, tác ng l p.
ớ
ể ệ ở ạ
ươ ử PHP:
class {
;
;
constructor
method_1
method_2
}
- class: là t
khóa c a java
ủ
- ClassName: là tên chúng ta đ t cho l p
ớ
- field_1, field_2: các thu c tính, các bi n, hay các thành ph n d li u c a l p.
ế
- constructor: là s xây d ng, kh i t o đ i t
ố ượ
- method_1, method_2: là các ph
ứ
đ ng lên các thành ph n d li u c a l p.
ộ ầ ữ ệ ủ ớ
i constructor và method nhé, ẽ ư ờ Ở
ạ
nh ng bài sau mình s vi t rõ v nh ng khái ni m đó. bài này, t m th i chúng ta s ch a quan tâm t
ớ
ệ
ữ ề ữ ẽ ế
ế ạ ữ ụ
i s đây, t m th i ch a c n hi u public là gì nhé, xu ng ph n d t trong ví d 1
ầ ướ ẽ ờ ạ ể ị
ể
Các b n hãy xem vd2 code v l p đ đ nh nghĩa nh ng gì đã vi
ề ớ
Ví d 2:ụ (
ố
ư ầ
Ở
nói k h n)
ỹ ơ
PHP:
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
3. T o đ i t
ng c a l p:
ủ ớ
ố ượ
ạ
ClassName objectName = new ClassName();
ng sinh viên a và sinh viên b d a trên class đã đ nh nghĩa ự ị ạ ố ượ ví d 2:
ụ
Ví d 3:ụ T o 2 đ i t
ở
PHP:
SinhVien a = new SinhVien();
SinhVien b = new SinhVien();
4. Thu c tính c a l p
ủ ớ
ộ
c khai báo bên ủ ớ ượ Vùng d li u (fields) hay thu c tính (properties) c a l p đ
ộ
ữ ệ
trong l p nh sau:
ớ ư
ố ượ ấ ủ ữ ệ ủ
ng khác đ i v i vùng d li u c a ố ớ
ố ượ ng dùng 3 ti n t
ề ố
t
ấ ừ ấ ả
ể ớ ng khác
ủ
ả ớ ỉ ớ
l p đó truy c p đ n.
ế ấ ừ ớ ủ
ậ ẫ PHP:
class {
// khai báo nh ngữ thu cộ tính c aủ l pớ
field1;
// …
}
Đ xác đ nh quy n truy xu t c a các đ i t
ề
ị
ể
i ta th
l p ng
sau:
ườ
ườ
ớ
- public: có th truy xu t t
t c các đ i t
ể
- private: m t l p không th truy xu t vùng private c a 1 l p khác.
ấ
ộ ớ
- protected: vùng protected c a 1 l p ch cho phép b n thân l p đó và nh ng
ữ
l p d n xu t t
ớ
Xem thêm video Blog StudyAndShare v các thu c tính này: ộ ề
t c các đ i t ng khác. c truy c p đ n t
ậ t
ế ừ ấ ả ể ượ ố ượ
các đ i t c t ậ ượ ừ ể ỉ ố ượ ể
ng có ki u
ố ượ ộ ng c a các l p con d n xu t t ể
ng có ki u
l p "SinhVien" ậ ượ ừ
ớ các đ i t
ấ ừ ớ ố ượ c t
ẫ ể
ủ
t c các th ế ậ ị ấ ả ể Ví d 4:ụ
PHP:
class SinhVien{
public String hoTen;
private int namSinh;
protected String lopHoc;
public static String tenTruong = "HV KT M tậ Mã";
}
- Thu c tính "hoTen" có th đ
ộ
(public)
- Thu c tính "namSinh" ch có th truy c p đ
ộ
"SinhVien"(private)
- Thu c tính "lopHoc", so có th truy c p đ
"SinhVien" và các đ i t
(protected)
- "tenTruong" là bi n tĩnh có giá tr là "HV KT M t Mã"trong t
hi n t o ra t l p "SinhVien" (public static) ệ ạ ừ ớ
ườ ng ng
ả ườ ng đ an toàn cho vùng d li u c a các đ i t
Thông th
L u ý:ư
ng ch n ti n t
tránh dùng ti n t
ọ
ề ố
các ph
truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ i ta
ố ượ
ữ ệ ủ
ề ố private đ ngăn c n quy n
ề
ể
ng th c bên ngoài l p đó.
ươ ườ
ể
public, mà th
ữ ệ ủ ứ ế ậ ớ
t ượ ị ậ ố ượ bài sau mình s vi ế ở ị
ng, truy c p d li u c a các đ i t
ậ ữ ệ ủ
ẽ ế
Ở v trí nào trong 1 bài l p trình Java
ố ượ
ng
t rõ và k h n đ các
ể
ỹ ơ c đ nh nghĩa, đ
c vi
V y class đ
ượ
ậ
ng đ i t
h
ng. Vi c t o đ i t
ố ượ
ệ ạ
ướ
c t o t o nh ng class đó ra sao!
đ
ữ
ượ ạ ạ
b n có cái nhìn c th !
ụ ể
ạ
K t thúc bài này, mình s vi ẽ ế ế t 1 ví d đ n gi n:
ụ ơ ả
Ví D 5:ụ T o class sinh viên g m các thu c tính: hoTen, namSinh, lopHoc ạ ồ ộ
ườ
ng"
;
ị ộ ạ ừ ng là sinh viên a và sinh viên b. Gán giá tr cho các thu c tính và in
ố ượ
ộ
T o 2 đ i t
giá tr các thu c tính t ng sinh viên ra màn hình!
ị
PHP:
package javademoandroidvn;
//Vd5
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn T
a.namSinh = 1992;
a.lopHoc = "At7a";
SinhVien b = new SinhVien();
b.hoTen = "Nguy nễ Văn Tùng";
b.namSinh = 1990;
b.lopHoc = "Bk1";
System.out.println("Thông tin sinh vien a là: ");
System.out.println("Họ tên: " + a.hoTen + " Năm sinh: " +
a.namSinh + " L pớ H c:ọ " + a.lopHoc);
System.out.println("\nThông tin sinh vien b là: ");
System.out.println("Họ tên: " + b.hoTen + " Năm sinh: " +
b.namSinh + " L pớ H c:ọ " + b.lopHoc);
}
}
Bài t p v nhà:
ề
ậ
ồ ớ ạ
ố ượ ọ
ố
ng h c sinh a và h c sinh b, giá tr c a các thu c tính c a 2 đ i ể
ộ ị ủ ủ ọ ọ
ng tìm ra ng ố ượ ậ ừ ữ ể ườ
i Bài 1: T o class HocSinh g m 3 thu c tính: H tên, l p, đi m trung bình.
ộ
T o 2 đ i t
ạ
ngượ
t
đ
ượ
có đi m cao h n báo ra màn hình console! bàn phím. So sánh đi m trung bình gi a 2 đ i t
ơ c nh p t
ể
Bài 13: Class trong Java (ti p)ế
1, Bài có 1 class, dùng class ch a hàm main!
ứ
ạ ẽ ấ ườ ạ Khi b n lên m ng, tìm code, b n s th y ng
ạ
t này th
ng có 1 class duy nh t. Cách vi
Th ườ ườ
ườ ng dùng cách này
i ta th
ng dùng đ chia s thu t toán,
ậ ế ể ẻ ấ
i thi u các ph ng th c c a 1 đ i t ng trong th vi n nào ớ ặ ệ ươ ư ệ ứ ủ ố ượ
ộ ả ậ
ặ ậ ư ặ ể ọ ể ệ ể ế ạ cú pháp ho c gi
đó.
Ví d 1:ụ M t bài t p qu n lý sinh viên nh :
ỏ
PHP:
package sinh.vien;
public class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
}
}
Khi làm bài t p ho c làm các project, ít khi dùng cách này, nó không hay cho
vi c qu n lý, gi
ả
nh ng bài chia s d ng trên! i thi u đ các b n có th đ c và hi u n u nh g p ph i
ả
ớ
ẻ ạ ệ
ữ
2, Class đ t cùng file class ch a hàm main
ứ
ặ
bài tr ị ặ ứ ướ ở ụ ng trình chính,
ớ ỉ
ề ứ ề
ư Vd1, b sung thêm class gi ng viên, nh ng s b ỗ
t, s r t khó nhìn và qu n lý cũng nh nâng c p!
ả
ả ế
ố ẽ ấ
ộ ư ở ư ổ ẽ ố t ví d
c, mình có vi
V trí đ t ngoài class ch a ch
ế
ươ
theo cách này! Nó ch thích h p v i bài ít class, class ít thu c tính và ph
ươ
ng
ộ
ợ
th c. N u bài có nhi u class, m i class có nhi u ph
ng th c, đi u này cũng
ề
ươ
ứ
không t
ấ
Ví d 2:ụ N i dung bài nh
trí l i v trí class nh sau: ạ ị ư
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
class GiangVien {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
ng trình v n ch y n u b n đ các class SinhVien và GiangVien ươ ể ẫ ạ ở
}
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien gv1 = new GiangVien();
}
}
Chú ý: Ch
phía cu i ch
ng trình, ch c n n m ngoài class Main là đ ạ
ỉ ầ c
ượ ế
ằ ươ ố
3, M i class đ t riêng 1 file, cùng 1 gói (package)
ặ
ỗ
ở ề ng h c: ạ
ọ SinhVien, ườ
ẽ ạ ớ các bài t p có nhi u class, các class cùng 1 lo i.
Cách này
ậ
Ví d 4:ụ Các class cùng là nhân s c a 1 tr
ự ủ
GiangVienKhoa1, GiangVienKhoa2.
V i bài này, chúng ta s t o project v i 1 package là truong.hoc, trong
ớ
package này s có 4 file nh sau: ư ẽ
ứ
ạ ạ ả ộ ư ộ
File "main.java" ch a hàm main:
PHP:
package truong.hoc;
public class Main {
public static void main(String[] args) {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn A";
a.namSinh = 1992;
a.toan = 10.0f;
a.ly = 9.0f;
a.hoa = 9.5f;
System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l
y + a.hoa) / 3);
GiangVien1 gv1 = new GiangVien1();
}
}
File GiangVien.java là 1 class, b n t o b ng cách nháy chu t ph i vào package
ằ
ch n New --> Java Class, n i dung nh sau:
ọ
PHP:
package truong.hoc;
class SinhVien {
public String hoTen;
public int namSinh;
public float toan, ly, hoa;
}
File GiangVien1.java:
PHP:
package truong.hoc;
class GiangVien1 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
}
File GiangVien2.java:
PHP:
package truong.hoc;
class GiangVien2 {
public String hoTen;
public int namSinh;
public String mon;
public int luong;
public String phongThucHanh;
}
Nh vào IDE, vi c qu n lý các class tr lên ti n l
i h n r t nhi u! ệ ả ở ờ ệ ợ ơ ấ ề
4, Các class đ
nhi u package khác nhau:
c đ t
ượ ặ ở
ề
, s có r t nhi u class khác nhau đ ớ ữ ự ế ẽ c đ
ượ ể ở ề ấ nhi u gói
ề
các ví d trên. T o 1 project có tên:
ạ ẽ ở ộ ụ
V i nh ng project th c t
(package) khác nhau.
Ví d 4:ụ Project này s m r ng t
ừ
QuanLyTruongHoc. Trong project có 3 package: truong.hoc, nhan.su,
thu.vien.sach
Code bài 4 dài mình đính kèm phía d i, các b n Import vào IDE là ok! ướ ạ
ề
i các ví d !
ụ ầ
Bài 14: Ph
Bài t p v nhà:
ậ
Đ c hi u và code l
ạ
ọ
ể
ng Java đ u tiên c a b n
Đ c thêm:
T o 1 đ i t
ủ ạ
ố ượ
ọ
ạ
ng th c (method) trong Java
ứ
ươ
1, Khái ni m: ệ
ng th c ươ ứ (method) trong Java là kh i l nh ố ệ ệ ứ ủ ớ ự
ệ ủ ụ ạ ậ ng, chúng ta s h n ch g i nh v y, hãy ng trong ố ượ
ng th c, nó liên quan đ n tính h
ứ ữ
ệ
ư ậ
ng đ i t
ố ượ ấ
ng đ i t
ươ ớ
ế ọ
ướ ẽ ạ
ế Hàm hay ph
th c hi n các ch c năng, các hành vi x lý c a l p lên vùng d
ử
li u. Trong l p trình c u trúc, các b n đã làm quen v i khái ni m hàm, th t c.
Trong l p trình h
ướ
ậ
quen g i chúng là ph
ọ
Java!
2, Khai báo ph
ng th c:
ươ
ứ
ngươ th cứ > (){
ề ng khác đ i v i
ố ớ PHP:
;
}
Đ xác đ nh quy n truy xu t c a các đ i t
ể
các ph i ta th ố ượ
ng dùng các ti n t sau: ị
ng th c c a l p ng
ứ ủ ớ
ươ ấ ủ
ườ ườ ề ố
bên ngoài c t ứ ươ ậ ượ ừ ng th c có th truy c p đ
ể
c t l p khai báo và ậ ượ ừ ớ ữ ể
ấ ừ
c truy c p bên trong b n thân l p khai ớ ả nó.
ậ ẫ
ỉ ượ
ươ ứ ớ ấ ả ể ng th c l p dùng chung cho t
ươ t c các th
c
ể ượ
ng c a l p ch a
ứ ng th c đó có th đ
ứ
ố ượ ủ ớ
này không đ c khai báo ề ố ượ các l p d n xu t. ấ ầ ứ
ẫ
ng th c không c n cài đ t (không có
ự ặ
c hi n th c trong các l p d n
ẫ ệ ớ
ủ ể ộ ng khác lên đ i t ồ - public: ph
l p khai báo.
ớ
- protected: có th truy c p đ
nh ng l p d n xu t t
ớ
- private: ch đ
báo.
- static: ph
hi n c a l p, có nghĩa là ph
ệ ủ ớ
th c hi n k c khi không có đ i t
ự
ể ả
ệ
ng th c đó.
ph
ứ
ươ
- final: ph
ng th c có ti n t
ươ
ch ng
ớ
ớ
ồ
- abstract: ph
ứ
ươ
ph n source code), s đ
ầ
ẽ ượ
l p này.
xu t t
ấ ừ ớ
- synchoronized: dùng đ ngăn các tác đ ng c a các đ i
ố
t
ng đang xét trong khi đang đ ng
ượ
ố ượ
b hóa. Dùng trong l p trình miltithreads.
ậ
ộ
ộ ớ ể ể ể ơ ở
c gi ng tên bi n.
ố ả ề
ươ ướ ế - : có th là ki u void, ki u c s hay m t l p.
ể
- : đ t theo qui
ặ
ứ
- : có th r ng ể ỗ ố
ườ ộ ớ khóa ng là ừ ng trong m t l p các ph
ươ
public, khác v i vùng d li u th
ớ ng th c nên đ
ứ
ữ ệ c
ượ
ườ ụ ề ố private vì m c đích an toàn. ứ ủ ớ ng th c c a l p là các bi n
ế ộ
c kh i t o sau khi khai báo.
Chú ý:
- Thông th
khai báo dùng t
dùng ti n t
- Nh ng bi n n m trong m t ph
ằ
ế
ữ
c c b (local) và nên đ
ụ ộ
ượ ươ
ở ạ
Xem thêm video blog StudyAndShare
ể ạ ớ ọ ồ ớ Ví d 1:ụ T o 1 l p h c sinh g m các thu c tính: h tên, l p, đi m toán, lý, hóa.
ọ
Tính đi m trung bình, tính x p lo i h c l c! ộ
ạ ọ ự ể ế
đây tính đi m trung bình c a 3 môn, nh v y ph ể ủ Ở ư ậ ươ ứ
ng th c
ị ố ố
ế ề
ạ ọ ự ố ự
ự ố ố ươ ế ấ ng th c này tr
ứ ả
i. ặ ỏ
** Phân tích:
tính đi mể
có 3 đ i s truy n vào và tr v 1 giá tr là s th c.
ả ề
Tính x p lo i h c l c, đ i s vào là 1 bi n th c duy nh t, ph
v 1 chu i
ỗ
ề
là x p lo i: y u, trung bình, khá ho c gi
ạ
ế
ế
Code nh sau:
ư
PHP:
package javademoandroidvn;
ữ ậ ề ộ ề ệ ướ
class HocSinh {
public String hoTen, lop;
public float toan, ly, hoa;
public float diemTB(float toan, float ly, float hoa) {
return (float) (toan + ly + hoa) / 3;
}
public String xepLoai(float diemTB) {
if (diemTB >= 8 && diemTB <= 10) {
return "gi i"ỏ ;
}
if (diemTB >= 6.5f && diemTB < 8) {
return "khá";
}
if (diemTB >= 5.0f && diemTB < 6) {
return "trung bình";
}
if (diemTB >= 0.0f && diemTB < 5) {
return "y u"ế ;
}
return "Nh pậ sai!";
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.hoTen = "Vu Van T";
a.lop = "At7a";
a.toan = 8.0f;
a.ly = 9.0f;
a.hoa = 10.0f;
System.out.println("Thông tin: ");
System.out.println("Họ tên: " + a.hoTen + " - L p:ớ " + a.
lop);
System.out.println("Toán: " + a.toan + " Lý:" + a.ly + "
Hóa: " + a.hoa);
System.out.println("Đi mể trung bình: " + a.diemTB(a.toan,
a.ly, a.hoa));
System.out.println("X pế lo iạ " + a.xepLoai(a.diemTB(a.toa
n, a.ly, a.hoa)));
}
}
Ví d 2:ụ Gán chi u dài, chi u r ng hình ch nh t, hi n lên màn hình kích
th
Tính di n tích và chu vi hình ch nh t theo cách vi
ng đ i t t code h ng! c đó.
ệ ố ượ ữ ậ ướ ế
ề ộ ề ộ ng th c show, không có giá ươ ứ ề ** Phân tích: Các hình ch nh t có 2 thu c tính là chi u dài và chi u r ng.
- Đ hi n l
ể ệ ạ
tr tr v , nh ng
ị ả ề ữ ậ
i chi u dài, chi u r ng , ta dùng 1 ph
ề ộ
ư
ầ ề ề ộ ớ ể ứ ươ ị ế
ệ ữ ậ
ế
ng th c dienTich, chuVi v i 2 bi n
ứ ươ ể ệ ề
ị ệ ớ
ng th c showKetQua, v i 2
ậ ố ẽ ữ ứ ươ ử ạ ệ
ố
ng th c show ra ch ký k t thúc bài, s không có đ i
ế
c:ướ ");
" + rong);
.
ự
có giá tr bi n đ u vào là chi u dài và chi u r ng hình ch nh t!
- Đ tính di n tích và chu vi, ta t o 2 ph
ạ
vào (đ i s vào)
ố ố
là chi u r ng, chi u dài.
ề ộ
- Đ hi n giá tr di n tích và chu vi, ta dùng 1 ph
đ i số ố
th c nh p vào là chu vi, di n tích hình tròn.
ự
- Cu i bài, th t o 1 ph
s nào!
ố
Nó ch hi n ra 1 dòng ký t
ỉ ệ
Code nh sau:
ư
PHP:
package javademoandroidvn;
class HCN {
public float chieuDai;
public float chieuRong;
public void showChieuDai(float dai, float rong) {
System.out.println("Hình chữ nh tậ có kích th
System.out.println("Chi uề dài: " + dai);
System.out.println("Chi uề r ng:ộ
}
public float chuVi(float dai, float rong) {
return (dai + rong) * 2;
}
public float dienTich(float dai, float rong) {
return dai * rong;
}
public void showKetQua(float cv, float dt) {
System.out.println("Chu vi hình chữ nh tậ là: " + cv);
System.out.println("Di nệ tích hình chữ nh tậ là " + dt);
}
public void showChuKy() {
System.out.println("K tế thúc bài tính toán hình chữ nh t,ậ
xin chào, h nẹ g pặ l iạ b nạ ở bài ti pế theo!");
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HCN a = new HCN();
a.chieuDai = 6.0f;
a.chieuRong = 10.0f;
a.showChieuDai(a.chieuDai, a.chieuRong);
a.showKetQua(a.chuVi(a.chieuDai, a.chieuRong), a.dienTich(
a.chieuDai, a.chieuRong));
a.showChuKy();
}
}
Bài t p v nhà:
ề
ậ
ng. ồ ạ ớ ố ượ ả ượ ả ề ứ
ổ
ng, nh p các giá tr t màn hình console. ị ừ ng th c tính t ng ti n.
ậ
ơ ồ ng, th i gian mua.
ố ượ
ng th c setter và getter trong Bài 1: T o l p hàng hóa g m: tên hàng, mã hàng, giá hàng, s l
c gi m giá 5%
N u mua vào kho ng 8h -> 17h hàng ngày , đ
ế
T o ph
ươ
ạ
T o 1 đ i t
ố ượ
ạ
In toàn b thông tin đ n hàng ra ngoài màn hình console g m:
ộ
tên, mã, giá, s l
ươ ờ
ứ
Bài 15: Ph
Java
t chú ý 1 đi u nh này:
ề ư
Ở bài 12 mình có vi
ườ ố ượ ườ
các ph ườ
ữ ệ ủ i ta
ng ng
ề ố private đ ngăn c n
ả
ể
ng th c bên
ứ
ươ ề ế
ng đ an toàn cho vùng d li u c a các đ i t
Thông th
ữ ệ ủ
ể
ng ch n ti n t
public, mà th
tránh dùng ti n t
ề ố
ọ
quy n truy c p đ n vùng d li u c a m t l p t
ộ ớ ừ
ế
ậ
ngoài l p đó.
ớ
ụ ướ ộ các ví d tr
ư ả ẫ ng đ
Ở
nh ng đó không ph i là cách n. N u chuy n v
các thu c tính nh các bài ví d tr
ư c, các thu c tính mình th
ổ
ế
ụ ướ ườ
ể
c thì s l
ẽ ỗ ạ
ể public , ch
ng trình ch y,
ươ
ề private, mà b n v n truy c p
ậ
ạ
i nh này:
ư ộ
ng đ V y làm nh nào đ truy c p các thu c tính c a đ i t
ậ ủ ố ượ ư ể ậ ộ ể private?
1, Bi n this
ế
ể ầ
ế ấ ả ớ ữ
c s d ng trong khi ộ
t c các l p trong ngôn ng java. M t
ượ ử ụ Đ u tiên b n c n hi u bi n này là gì?
ế
ạ ầ
i trong t
Bi n this là m t bi n n t n t
ế ẩ ồ ạ
ộ
class trong Java luôn t n t
ế
ồ ạ
ế
ộ
ch y và tham kh o đ n b n thân l p ch a nó.
ớ
ả
ế i m t bi n this, bi n this đ
ứ ả ạ
2, Ph
ươ
ng th c setter
ứ
ng th c setter là chúng ta dùng nó đ truy c p vào thu c tính ứ ươ ậ ủ ố ượ ộ ọ ộ
ng! Tên g i, hay
ng th c này là tùy b n, nó cũng v n ch y nh ng theo
ư ươ ạ ạ ng làm thì nó s th M c đích c a ph
ủ
ể
ụ
ng và gán giá tr cho các thu c tính c a đ i t
c a đ i t
ủ ố ượ
cách b n đ t tên ph
ặ
ẫ
ạ
ng là set....
style code l p trình viên th
ậ ị
ứ
ườ ẽ ườ
Ví d 1: ụ
PHP:
package javademoandroidvn;
class HocSinh {
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
}
}
2, Ph
ng th c getter
ứ
ươ
ng t ươ nh ph
ự ư ươ ộ
ng th c setter, nó cũng dùng đ truy c p vào các thu c ứ ể ậ
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
i setter, ph c l
ượ ạ ươ ộ
ng th c getter s tr v các thu c ẽ ả ề ứ Cũng t
tính
c a đ i t
ủ ố ượ
tính c a đ i t ng, nh ng ng
ư
ng! ủ ố ượ
Ví d 2: ụ
PHP:
package javademoandroidvn;
class HocSinh {
private String hoTen;
private String lop;
private float diemTb;
public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ
nh pậ vào, th
d
this.hoTen = hoTen1;
}
public void setLop(String lop) {
this.lop = lop;
}
public String getHoTen() {
return hoTen;
}
public String getLop() {
return lop;
}
public float getDiemTb() {
return diemTb;
}
public void setDiemTb(float diemTb) {
this.diemTb = diemTb;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van T");
a.setLop("At7a");
a.setDiemTb(7.5f);
System.out.println("Họ tên: " + a.getHoTen());
System.out.println("L p:ớ " + a.getLop());
System.out.println("Đi mể Tb: " + a.getDiemTb());
}
}
Các b n nên xem video sau c a blog StudyAndShare đ hi u h n! ể ể ủ ạ ơ
3, Cách t
chèn các ph
ng th c getter và setter:
ự
ươ
ứ
ạ ự ự ể ư
chèn các ph ớ
ng th c getter và setter. V i ươ ề Khi b n m i code java thì ch a nên dùng cách này, th c s hi u getter và setter
ớ
r i thì m i nên dùng.
ớ
ồ
c 2 IDE ph bi n đ u h tr t
ỗ ợ ự
Ở ả
ổ ế
nh ng bài khi khai báo nhi u bi n, dùng tính năng này s r t ti n!
ế
ữ ứ
ẽ ấ ệ ề
ộ
ớ
ạ
ả ọ ị ặ
V i Netbeans:
B n nháy chu t ph i lên v trí so n th o code, ch n Insert Code
ả
ạ
Sau đó s hi n ra 1 menu nh , b n ch n getter, setter ho c getter and setter tùy
ọ
ỏ ạ
ẽ ệ
m c đích b n dùng!
ạ
B n s th y Netbeans t
sinh code cho các ph ụ
ạ ẽ ấ ng th c đó!
ứ ươ ự
Source --> Generate Getter and Setter r i ch n bi n c n t o ph ng ế ầ ạ ồ ọ ươ c!
V i Eclipese:
ớ
B n vào
ạ
th c getter và setter là đ
ứ
ượ
Bài t p v nhà:
ề
ậ
ạ ả ồ ọ ự
ộ ể ớ ọ ươ ạ ớ ọ ộ
ạ
ạ bàn phím. ừ ậ ủ ủ ể Bài 1: T o package nhân s , trong có 2 class là sinh viên và gi ng viên
Class sinh viên g m các thu c tính: h tên, l p h c, đi m toán, lý, hóa.
ng.
Class gi ng viên g m các thu c tính: h tên, l p d y, năm sinh, l
ồ
ả
ng h c sinh a.
T o đ i t
ố ượ
ọ
T o đ i t
ng gi ng viên b.
ả
ố ượ
Các giá tr c a thu c tính a và b nh p vào t
ộ
ị ủ
X lý d li u báo ra thông tin c a a và b, tính và báo ra đi m trung bình c a a,
ữ ệ
ử
x p lo i h c l c, báo b có d y a hay không!
ạ ọ ự
ế ạ
ng th c getter, setter. ộ ử ụ ươ ứ Các thu c tính đ private, s d ng ph
ể
ng đ i t
L p trình h ng! ố ượ ướ ậ
i:
ạ ộ
ư
ướ
t ch
ng trình, gán bi n nguyên a là 1 giá
ớ
ầ
ế
ế ủ ậ
ế
ị ấ ứ
ị
ạ
ả 1 t i 7". ừ ớ
c vi
ỉ ượ ng trình s d ng Switch Case s đ
ươ
ử ụ
ẽ ượ
c gán s nguyên t ố t nh sau: ư ế
Ví d :ụ V i yêu c u sau: Vi ươ tr b t kỳ. N u a = 1 thì in ra màn hình là "Ch nh t", a = 2 thì in ra ế "Th Hai", ..... a = 7 thì in ra "Th B y". N u a không trong kho ng [1 ; ứ ả 7] thì báo "B n đã gán sai giá tr , ch đ Ch PHP: public class SwitchDemo { public static void main(String[] args) { int a = 3; switch (a) { case 1: System.out.println("Chủ nh t"ậ ); break; case 2: System.out.println("Thứ Hai"); break; case 3: System.out.println("Thứ Ba"); break; case 4: System.out.println("Thứ T "ư ); break; case 5: System.out.println("Thứ Năm");
break; case 6: System.out.println("Thứ Sáu"); break; case 7: System.out.println("Thứ B y"ả ); break; default: System.out.println("B nạ đã gán sai giá tr ,ị chỉ đư cợ gán số nguyên từ 1 t iớ 7"); break; } } } Chú ý:
ế
ể
ữ ệ
ỉ ỗ ợ ể
ừ
ữ ệ
ề
ể
ớ
- Ki u d li u c a bi n trong switch ch h tr ki u d li u: ữ ệ int, ủ JDK 7, h tr thêm ki u String và các giá tr byte, short,char, t ị ỗ ợ ể truy n vào trong m i case thì ph i trùng ki u d li u v i bi n ế ả ỗ trong switch.
ấ
ả
ắ
ộ
ươ
ể
ạ
ạ
ng h p nh t đ nh, nh ng khi đó, ch
ớ ấ ị
ươ
ư
ể ừ
ề
ỏ
- L nh "break" trong c u trúc này không ph i là b t bu c ph i có ả ệ ng trình m i ch y, b n có th không dùng "break" v i ớ thì ch ế ng trình s ch y h t tr ạ ẽ ợ ườ ươ khi ch các kh i l nh trong các "case" ti p theo sau, k t ng ố ệ trình tìm đ ế i khi h t ớ ị ượ "case" ho c g p l nh "break". ặ
ế c "case" có giá tr truy n vào th a mãn, t ặ ệ
t bên Blog StudyAndShare
ủ
ệ
B n nên tham kh o 2 video c a anh Vi ả đ hi u rõ h n v c u trúc này: ơ ề ấ
ạ ể ể
ế t
0 đ n 9. Vi ế ế
ừ ằ
ươ
ố ụ ng trình in ra tên các ch s nh p vào b ng ti ng Anh. Ví d ng trình ch y s in ra “1 đ c là One”, gán a
ữ ố ạ
ậ ẽ
ươ
ằ
ọ
Bài t p v nhà: ậ ề Bài 1: Gán bi n a là 1 trong các s ngu yên t ế ch gán a b ng 1 thì ch = 2 thì in ra “2 đ c là Two”
ọ
ị
ế ầ
ộ ậ
ợ
c âm. ượ ế
ế
ạ
ậ
Bài 2: Khai báo 2 bi n nguyên “thang” và “nam” gán giá tr là tháng và năm.Yêu c u “thang” thu c t p h p [1..12], năm không đ - N u gán sai tháng thì báo “B n đã nh p sai tháng”, n u gán sai năm thì báo “B n đã gán sai năm”. Khi 1 trong 2 thông tin b gán
ạ
ị
ệ
ữ
ạ
ẽ ậ
ườ
ng. ậ
ế ậ ự
ị
sai, nh ng câu l nh sau s không ch y! - N u năm đó là năm nhu n thì in ra thông báo: Đây là năm nhu n. không thì báo ra là năm th - D a vào thông tin năm đó là năm nhu n hay không và giá tr c a tháng đó là tháng nào đ báo ra tháng đó có bao nhiêu ngày.
ủ
ể
ậ
ệ Bài 7: Nh p xu t d li u trên giao di n ấ ữ ệ Console
ặ
ệ
ứ ự
ẻ ơ ớ ầ
ế
i thi u theo th t ng, input – output trong ớ
này thì có v h i s m, vì nó liên quan đ n ế java (là 1 ph n dài dài) nh ng do ư ậ i, s ph i nh p ặ ắ ớ ẽ ả ng trình.
ơ
ị ố
ậ ữ ệ
ệ ậ ữ ệ
ẽ ố
Ở
ơ
ế
ệ
ạ
ả
ệ
ằ
bài này, mình s gi
ẽ ớ
ượ
ề
ể
ấ ượ
ụ
ẽ
i).
- M c dù n u gi ế ớ khái ni m đ i t ố ượ ệ ti p theo nh ng bài liên quan t i m ng, các vòng l p s p t ữ ả nhi u d li u, chúng ta không th c gán giá tr trong ch ề ữ ệ ươ ể ứ l p trình pascal, C c Nói đ n gi n, thì vi c nh p d li u này nó gi ng nh ơ ư ở ậ ả ng thì nh p d li u qua màn hình ms-dos (v i java n u b n dùng b n – th ế ạ ớ ườ ả câu l nh java, javac trong cmd thì nó cũng s gi ng nh v y, nh ng b t ti n) . ấ ệ ư ư ậ ệ c, nh ng bài tr - ướ đây, chúng ta có 1 giao di n tích h p vào IDE, n i mà ở ữ ợ ệ các b n in k t qu ra (l nhSystem.out.println…), và bây gi ậ ữ , chúng ta nh p d ờ li u vào b ng chính màn hình đó. i thi u ệ c đi u này, nh ng - Có nhi u cách đ làm đ ề c các ki u cách mà theo mình là ng n g n d hi u nh t đ nh p và l y đ ể ọ ễ ể ắ d li u thông d ng : ki u nguyên, ki u th c, ki u chu i. (Đi sâu h n, mình s ơ ỗ ể ể ữ ệ nói trong ph n input – output , ch c là vài bài n a m i t ớ ớ
ư ở ấ ể ậ ể ự ữ
ầ
ắ
đ u ch
ng trình
Đ u tiên là b n ph i thêm gói này vào ả
ầ
ạ
ở ầ
ươ
PHP: import java.util.Scanner;
ng Scanner, tên đ i t
ng b n t
ươ
ố ượ
ạ ự
đây tên đ i t
ng trình, b n t o 1 đ i t ạ ạ ng mình đ t là “nhapDuLieu”
ố ượ ặ
ố ượ
Trong ch đ t, ặ ở PHP: Scanner nhapDuLieu = new Scanner(System.in);
ả
ể ọ ả
ể ọ
ự
ỗ ị
ế
ể
Sau đó, đ đ c c dòng văn b n (dùng nó đ đ c chu i ký t ) ta dùng l nh nhapDuLieu.nextLine(), gán vào bi n nào đó giá tr , vd mình dùng ệ bi n “ten” – ki u String ế PHP: ten = nhapDuLieu.nextLine();
T
ng t
ươ
ự ể ọ
, đ đ c ki u d li u d ng s nguyên, s th c dùng l nh : ố
ể ữ ệ ạ
ố ự
ệ
tìm hi u thêm b ng cách gõ tên đ i t
ng Scanner r i tìm
ố ượ
ằ
ồ
ụ
+ ten+"\n");
Bài demo: PHP: package demo.android.vn; import java.util.Scanner; public class AndroidVn { public static void main(String[] args) { int tuoi; String ten; Scanner nhapDuLieu = new Scanner(System.in); System.out.print("Nh pậ Tên: "); ten = nhapDuLieu.nextLine(); System.out.print("Nh pậ Tu i:ổ "); tuoi = nhapDuLieu.nextInt(); System.out.println("\nTên V aừ Nh p:"ậ System.out.println("Tu iổ V aừ Nh p:ậ " + tuoi); } } K t qu màn hình Console:
PHP: nhapDuLieu.nextInt(); nhapDuLieu.nextFloat(); B n th t ể ử ự ạ g i nh , ví d gõ ớ ợ nhapDuLieu. + Ctrl + Cách (space)
ế ả
Bài t p v nhà: ậ ề
ừ
ọ
ể
ọ
Bài 1: T màn hình console, nh p d li u c a 1 sinh viên là h và tên, ậ ữ ệ ủ năm sinh, đi m toán, lý , hóa (ki u s th c). D a vào đi m trung bình 3 ự ể ố ự ể môn in ra đó là h c sinh gi i, khá hay trung bình ấ
ặ
ỏ Bài 8: C u trúc l p while, do while, for trong Java!
D ng 1: while(…)
ạ
ặ ệ
c, đúng r i m i th c hi n kh i l nh. Vd:
ố ệ
ệ
ớ
ồ
ệ
ề
ự
ướ
Xét đi u ki n tr PHP: public class AndroidVn { public static void main(String[] args) { int i; i = 0; while (i < 10) { System.out.print(" "+i++); } System.out.println("...i = "+i); i = 15; while (i < 10) { System.out.print(" "+i++); } System.out.println("...i = "+i); } }
while(đi u_ki n_l p){ ề kh i_l nh; ố ệ }
D ng 2: do{…}while;
ạ
do{ kh i_l nh; ố ệ }while(đi u_ki n); ề
ệ
ệ
ề
ướ
l n đ u, t
kh i l nh luôn
ầ ừ ố ệ
ệ
ự c, r i xét đi u ki n, n u sai thì không th c ế ồ ả ề c th c hi n ít nh t 1 l n. Vd: ầ
ự
ố ệ ư ậ ệ
Th c hi n kh i l nh tr ự ệ hi n n a. Nh v y, ngay c đi u ki n sai t ệ ữ ừ ầ đ ấ ượ PHP: public class AndroidVn { public static void main(String[] args) { int i = 0; do { System.out.print(" " + i++); } while (i < 10); System.out.println("...i = " + i); i = 15; do { System.out.print(" " + i++); } while (i < 10); System.out.println("...i = " + i); } }
D ng 3: for(…)
ạ
ế
ở ạ
ế
ặ
for(kh i_t o_bi n_đ m;đk_l p;tăng_bi n){
ế
Vd: PHP: public class AndroidVn { public static void main(String[] args) { int i; for (i = 0; i < 10; i++) { System.out.print(" " + i); } System.out.println("\n..i = " + i); } }
Bài t p v nhà: ậ ề
ừ
ố
ế ậ ng ng v i s v a nh p. ớ ố ừ
ậ ữ ệ ủ ươ ứ
ế
ả
Bài 1: T màn hình console, nh p d li u c a bi n a là 1 trong các s t ừ Gi ng hình bên bài 1 c a hình phía d
i:
1 đ n 9. In ra màn hình b ng nhân t ố
ướ
ủ
Bài 2: In ra toàn b b ng c u ch
ng gi ng hình bài 2 trong hình phía
ộ ả
ử
ươ
ố
i:ướ d
Bài 9: M ng trong Java!
ả
1, Khái ni m m ng ệ
ả
ả
ầ ử ượ
ả
ỗ
có cùng tên, cùng ki u d li u ể ữ ệ c truy xu t thông qua ch s c a ỉ ố ủ
ấ
M ng là t p h p nhi u ph n t ậ ề ợ và m i ph n t trong m ng đ ầ ử nó trong m ng.ả
2, Khai báo m ngả
ể ữ ệ
ả
ể ữ ệ
ả
ả
Ví d cách cách khai báo m ng: ụ PHP: int arrInt1[]; int[] arrInt2; int[] arrInt3, arrInt4, arrInt5; 3, C p phát b nh cho m ng
ộ ớ
ấ
ả
ộ
ớ
ả
ể ấ
ấ ả
ể ấ
m ng trong Java ề ớ
khóa ừ ng). Ch ng ẳ ư
ả
ta c n dùng t Đ c p phát b nh cho ầ new. (T t c trong Java đ u thông qua các đ i t ố ượ h n đ c p phát vùng nh cho m ng trong Java ta làm nh sau: ạ PHP: int arrInt = new int[100]; 4, Kh i t o m ng ở ạ
ả
ị
ầ
c a ầ ử ủ
c khai báo.
ể ở ạ ượ
Chúng ta có th kh i t o giá tr ban đ u cho các ph n t m ng khi nó đ ả Ví d :ụ PHP: int arrInt[] = {1, 2, 3}; char arrChar[] = {‘a’, ‘b’, ‘c’}; String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’};
5, Truy c p m ng ậ
ả
ắ ầ ừ
ầ ử ứ
ặ
đ u tiên có 0. Vì v y ph n t ầ ử ầ ậ c a th n có ch s là n - 1. Các ph n t ỉ ố ầ ử ủ c truy xu t thông qua ch s c a nó đ t gi a c p d u ấ ữ ặ ỉ ố ủ
ữ
ẳ
ạ
c xem nh m t m ng các ký t
ư ộ
Trong nh ng ngôn ng l p trình khác (C ch ng h n), ữ ậ . Trong java thì ả ỗ ượ ng
ộ ớ
ể
ấ
Ch s m ng trong Java b t đ u t ỉ ố ả ch s là 0, và ph n t ỉ ố m ng đ ấ ượ ả ngo c vuông ([]). ặ Ví d :ụ PHP: int arrInt[] = {1, 2, 3}; int x = arrInt[0]; // x sẽ có giá trị là 1. int y = arrInt[1]; // y sẽ có giá trị là 2. int z = arrInt[2]; // z sẽ có giá trị là 3. L u ý:ư m t chu i đ ộ khác, java cung c p m t l p String đ làm vi c v i đ i t d li u chu i cùng khác thao tác trên đ i t ữ ệ
ự ệ ớ ố ượ ng d li u này. ữ ệ
ố ượ
ỗ
Code ví d :ụ PHP:
ố
ề
ề
ạ
public class ViDuArray { public static void main(String[] args) { int arrInt[]; arrInt = new int[4]; arrInt[0] = 9; arrInt[1] = 17; arrInt[2] = 13; arrInt[3] = 14; String arrString[] = {"Vu Van A", "Nguyen Van B", "Nguyen Van C"}; System.out.println("M ngả số nguyên: "); for (int i = 0; i < 4; i++) { System.out.print(arrInt[i] + " "); } System.out.println("\nM ngả các chu i:ỗ "); for (int i = 0; i < 3; i++) { System.out.println(arrString[i] + " "); } System.out.println(""); } } 6, M ng nhi u chi u! (Theo dõi đo n cu i video d
ả i)ướ
Bài t p v nhà: ậ ề
bàn phím. Khai báo 1 m ng g m danh sách
ố
ả
ồ
ậ ừ ng trình h i nh p tên sinh viên mu n tìm ki m. Tìm và in ra
ươ
ậ
bàn phím. Sau khi nh p ậ ế
ố
Bài 1: S sinh viên nh p t ậ ừ h tên sinh viên. Tên t ng sinh viên nh p t ừ ọ xong, ch ỏ k t qu là có trong danh sách hay không. ả ế
bàn phím theo th t
ắ ế
ậ
ố
ừ
ứ ự
Bài 2: S p x p 1 dãy n s nguyên nh p vào t tăng d n!ầ
c a 2 ma tr n cùng s hàng s c t vào t
ầ ử ủ
ừ
ố
ố ộ ế
ậ ổ
ả
ậ
ậ
Bài 3: Nh p các ph n t bàn ậ phím. In 2 ma tr n ra màn hình. Tính t ng 2 ma tr n! In k t qu ra màn hình!
Bài 10: Break và Continue trong Java
1, L nh break:
ệ
ấ ệ ứ ể ệ nh v y, trong c u trúc l p, câu l nh ấ ỏ ấ ặ ng t ự ư ậ ặ ế ẽ ể ặ ủ ặ Trong c u trúc switch chúng ta dùng câu l nh break đ thoát th i c u trúc switch trong cùng ch a nó. T ươ break dùng đ thoát kh i c u trúc l p trong cùng ch a nó. ỏ ấ ể ứ t là các bài tìm ki m, s dùng break đ thoát vòng l p khi , đ c bi Trong th c t ệ ự ế ặ i t n cùng c a vòng l p, gây lãng chúng ta đã tìm th y k t qu , tránh vi c l p t ả ế ấ phí tài nguyên, vì th giúp ch ệ ặ ớ ậ ng trình ch y nhanh h n! ạ ươ ế ơ
Tìm ki m s th t c a ph n t có giá tr là 10 trong 1 m ng các s ố ứ ự ủ ầ ử ế ả ị ố
Ví d 1 : ụ nguyên: Show Spoiler
2, L nh continue:
ệ
ể ơ ề ng dùng continue đ b qua vòng l p hi n t ể ỏ ế ệ ạ ấ ặ ặ ả ố ệ ủ ệ ả ế ệ ữ ệ ặ ỏ Hi u đ n gi n, chúng ta th i khi ườ ả g p đi u ki n nào đó đ ti p t c sang vòng l p ti p theo! Còn b n ch t, vì nó ể ế ụ ệ ặ cũng là 1 l nh nh y, nó nh y xu ng v trí k t thúc ("}") c a kh i l nh trong ị ả vòng l p ch a nó và b qua t cùng kh i l nh v i continue c a vòng l p) ố t c các câu l nh sau nó (Nh ng câu l nh thu c ộ ấ ả ủ ứ ố ệ ặ ớ
có giá tr nh h n 35 và giá tr các ph n t ị ầ ử ỏ ơ ị ố ứ ự ả Ví d 2: ụ Tìm ki m và in ra s th t ế trong m ng các s nguyên! ố Show Spoiler
3, Nhãn (label):
ả ư ỗ ợ ệ ị ế khóa break và ể ng trình. Java dùng k t h p nhãn (label) v i t ớ ừ ế ợ ế ặ ệ ỉ ố ớ ể ử ụ
Không gi ng nh C/C++, Java không h tr l nh goto đ nh y đ n 1 v trí nào
ố
đó c a ch
ươ
ủ
continue đ thay th cho l nh
ể
goto. Tuy nhiên, ta cũng ch có th s d ng label đ i v i các vòng l p mà thôi!
PHP:
label:
for (…){
for (…){
if (
ị ị ủ ư ế ể ặ ề ệ ủ
ẽ ự ệ ả ỏ ệ
ượ ạ ẽ ế ụ ệ
ặ i s ti p t c vòng l p có nhãn “label” (khác v i
ớ
ng ch thoát kh i hay ti p t c vòng l p trong cùng
ế ụ ườ ặ ỏ ỉ ứ
Xác đ nh v trí c a nhãn và xem nh tên c a vòng l p ngoài. N u
ỉ ố ủ ầ ử ế ậ ấ ậ ấ tìm th y Ví d 3: ụ Bài sau đây nh p xu t ma tr n, tìm ki m ch s c a ph n t đ u tiên theo yêu c u! ầ ầ
Show Spoiler
Bài t p v nhà:
ề
ậ
ọ
ọ
ớ
. S p x p theo th t
ả ế
ứ ự
ậ
ậ
Bài 11: Th i gian h th ng trong Java
ầ Bài 1: Nh p 1 danh sách h tên sinh viên 1 l p h c vào 1 m ng n ph n ậ a, b, c ... r i dùng thu t toán tìm ki m nh phân, t ồ ử ắ ế ị tìm ki m chính xác tên sinh viên v a nh p và in ra màn hình s th t ố ứ ự ừ ế c a sinh viên đó! ủ ờ
ệ ố
ờ
ch y 1 đo n l nh trong ch ạ ệ
ạ
ươ ng
1, Tính th i gian trình
ng th c "currentTimeMillis()", ta dùng nó đ ứ ể ươ ờ i ạ ờ ạ ặ ể ế ể ạ ệ
c t ng th i gian ch y ch ờ ờ ạ ươ ệ ủ ờ ẽ ể ề
ố ng th c "nanoTime()" trong đ i ươ ứ ẽ
a, Tính th i gian theo mini giây: (10^(-3)s) ờ ng System có ph Trong đ i t ố ượ đánh d u 1 m c th i gian t ố ấ v trí đ t câu l nh. Đ tính th i gian ch y xong 1 đo n l nh, ta đ t 2 bi n đ ệ ặ ị l y ra 2 m c ố ấ th i gian r i l y hi u c a chúng là tính đ ng trình. ồ ấ ượ ổ ng trình sau s tính th i gian theo mini giây đ máy tính sin c a Ví d : Ch ủ ươ ụ 100000 giá tr truy n vào: ị PHP: public class JavaDemoAndroidVn { public static void main(String[] args) { //Vd1 long start = System.currentTimeMillis(); for (int i = 1; i <= 100000; i++) { System.out.println(Math.sin(i)); } long end = System.currentTimeMillis(); long t = end - start; System.out.println("T ngổ th iờ gian: " + t + " millisecond "); } } b, Tính th i gian theo nano giây (10^(-9)s) ờ ng t nh trên, ch khác là ta s dùng ph T ỉ ự ư ươ t ng System thay vì ượ dùng ph ng th c "currentTimeMillis()" ươ ứ
h th ng
2, L y th i gian t ờ
ấ
ừ ệ ố
, phút, giây và ngày, tháng, năm t ừ ệ h ẽ ấ gi ừ ờ ị ể
ạ
B n xem ví d sau, s l y th i gian t ạ ờ ụ th ng và hi n th ra bên ngoài: ố PHP: public class JavaDemoAndroidVn { public static void main(String[] args) { //Vd2 //Lay gio he thong Date thoiGian = new Date(); //Khai bao dinh dang ngay thang SimpleDateFormat dinhDangThoiGian = new SimpleDateFormat( "HH:mm:ss dd/MM/yyyy "); //parse ngay thang sang dinh dang va chuyen thanh string. String hienThiThoiGian = dinhDangThoiGian.format(thoiGian. getTime()); System.out.println("" + hienThiThoiGian); } } Bài t p v nhà: ậ ề Các b n làm l ạ ụ ạ Bài 12: Class (l p) và đ i t
ng trong Java!
i các ví d trên cho thành th o! ố ượ ớ
1. Khái ni m class (l p):
ệ
ớ
ể ư ộ ồ ọ ầ ữ ệ ủ ố ượ ng ng (fields hay properties) và các ươ ng ữ ệ ủ ố ượ ng th c (methods) tác đ ng lên thành ph n d li u đó g i là các ph ộ
ớ ự ượ ượ ọ ể ệ ủ ớ c g i là các th hi n c a l p c xây d ng b i các l p nên đ ở
ớ ầ ư ả ấ t ư ặ ơ ớ ồ ộ
ng d a trên l p này, các ố ượ ự ạ ớ nh m u trên. ng đ u t ng t ề ươ
ng a, khi đó a s có 3 thu c tính, và ta có th thao tác gán giá tr các ố ượ ẽ ể ộ ị
Chúng ta có th xem l p nh m t khuôn m u (template) c a đ i t ẫ ớ (Object). Trong đó bao g m d li u c a đ i t ph ươ ứ th c c a l p. ứ ủ ớ ng đ Các đ i t ố ượ (class instance). L p trong java g n gi ng nh b n ghi trong l p trình C ho c pascal, nh ng t ậ ố nhiên nó cao c p h n. ấ Ví d 1:ụ Ta khai báo 1 l p SinhVien g m các thu c tính: - hoTen - namSinh - lopHoc. L p này chính là 1 khuôn m u. Khi ta t o ra các đ i t ẫ ớ đ i t ự ư ẫ ố ượ Vd : T o đ i t ạ thu c tính đó nh sau: ộ - hoTen là "Nguy n Văn A"; ư ễ
ng t ươ ừ nh ng giá tr c a chúng s đ c tr ng cho t ng ị ủ ng b, c, ... cũng t ng riêng. Có l ẽ ế , các b n s th y nó có v gi ng v i các b n ghi n u ẻ ố ẽ ặ ớ ư ả c h c l p trình C ho c Pascal. - namSinh là "1992"; - lopHoc là "At7a"; đ i t ố ượ đ i t ố ượ nh b n đã đ ư ạ ượ ọ ậ ự ư ạ ẽ ấ ặ
2. Khai báo/đ nh nghĩa l p: ị
ớ
ừ ặ ầ ữ ệ ủ ớ ộ
ự ự ng th c/hàm th hi n các thao tác x lý, tác ng l p.
ớ
ể ệ ở ạ
ươ ử PHP:
class
i constructor và method nhé, ẽ ư ờ Ở ạ nh ng bài sau mình s vi t rõ v nh ng khái ni m đó. bài này, t m th i chúng ta s ch a quan tâm t ớ ệ ữ ề ữ ẽ ế
ế ạ ữ ụ i s đây, t m th i ch a c n hi u public là gì nhé, xu ng ph n d t trong ví d 1 ầ ướ ẽ ờ ạ ể ị ể
Các b n hãy xem vd2 code v l p đ đ nh nghĩa nh ng gì đã vi ề ớ Ví d 2:ụ ( ố ư ầ Ở nói k h n) ỹ ơ PHP: class SinhVien { public String hoTen; public int namSinh; public String lopHoc; } 3. T o đ i t
ng c a l p: ủ ớ
ố ượ
ạ
ClassName objectName = new ClassName();
ng sinh viên a và sinh viên b d a trên class đã đ nh nghĩa ự ị ạ ố ượ ví d 2: ụ
Ví d 3:ụ T o 2 đ i t ở PHP: SinhVien a = new SinhVien(); SinhVien b = new SinhVien(); 4. Thu c tính c a l p ủ ớ
ộ
c khai báo bên ủ ớ ượ Vùng d li u (fields) hay thu c tính (properties) c a l p đ ộ ữ ệ trong l p nh sau: ớ ư
ố ượ ấ ủ ữ ệ ủ ng khác đ i v i vùng d li u c a ố ớ
ố ượ ng dùng 3 ti n t
ề ố
t
ấ ừ ấ ả
ể ớ ng khác
ủ
ả ớ ỉ ớ
l p đó truy c p đ n.
ế ấ ừ ớ ủ
ậ ẫ PHP:
class
t c các đ i t ng khác. c truy c p đ n t ậ t ế ừ ấ ả ể ượ ố ượ
các đ i t c t ậ ượ ừ ể ỉ ố ượ ể ng có ki u
ố ượ ộ ng c a các l p con d n xu t t ể ng có ki u l p "SinhVien" ậ ượ ừ ớ các đ i t ấ ừ ớ ố ượ c t ẫ ể ủ
t c các th ế ậ ị ấ ả ể Ví d 4:ụ PHP: class SinhVien{ public String hoTen; private int namSinh; protected String lopHoc; public static String tenTruong = "HV KT M tậ Mã"; } - Thu c tính "hoTen" có th đ ộ (public) - Thu c tính "namSinh" ch có th truy c p đ ộ "SinhVien"(private) - Thu c tính "lopHoc", so có th truy c p đ "SinhVien" và các đ i t (protected) - "tenTruong" là bi n tĩnh có giá tr là "HV KT M t Mã"trong t hi n t o ra t l p "SinhVien" (public static) ệ ạ ừ ớ
ườ ng ng ả ườ ng đ an toàn cho vùng d li u c a các đ i t Thông th L u ý:ư ng ch n ti n t tránh dùng ti n t ọ ề ố các ph truy c p đ n vùng d li u c a m t l p t ộ ớ ừ i ta ố ượ ữ ệ ủ ề ố private đ ngăn c n quy n ề ể ng th c bên ngoài l p đó. ươ ườ ể public, mà th ữ ệ ủ ứ ế ậ ớ
t ượ ị ậ ố ượ bài sau mình s vi ế ở ị ng, truy c p d li u c a các đ i t ậ ữ ệ ủ ẽ ế Ở v trí nào trong 1 bài l p trình Java ố ượ ng t rõ và k h n đ các ể ỹ ơ c đ nh nghĩa, đ c vi V y class đ ượ ậ ng đ i t h ng. Vi c t o đ i t ố ượ ệ ạ ướ c t o t o nh ng class đó ra sao! đ ữ ượ ạ ạ b n có cái nhìn c th ! ụ ể ạ
K t thúc bài này, mình s vi ẽ ế ế t 1 ví d đ n gi n: ụ ơ ả
Ví D 5:ụ T o class sinh viên g m các thu c tính: hoTen, namSinh, lopHoc ạ ồ ộ
ườ
ng"
;
ị ộ ạ ừ ng là sinh viên a và sinh viên b. Gán giá tr cho các thu c tính và in ố ượ ộ
T o 2 đ i t giá tr các thu c tính t ng sinh viên ra màn hình! ị PHP: package javademoandroidvn; //Vd5 class SinhVien { public String hoTen; public int namSinh; public String lopHoc; } public class JavaDemoAndroidVn { public static void main(String[] args) { SinhVien a = new SinhVien(); a.hoTen = "Vũ Văn T a.namSinh = 1992; a.lopHoc = "At7a"; SinhVien b = new SinhVien(); b.hoTen = "Nguy nễ Văn Tùng"; b.namSinh = 1990; b.lopHoc = "Bk1"; System.out.println("Thông tin sinh vien a là: "); System.out.println("Họ tên: " + a.hoTen + " Năm sinh: " + a.namSinh + " L pớ H c:ọ " + a.lopHoc); System.out.println("\nThông tin sinh vien b là: "); System.out.println("Họ tên: " + b.hoTen + " Năm sinh: " + b.namSinh + " L pớ H c:ọ " + b.lopHoc); } }
Bài t p v nhà:
ề
ậ
ồ ớ ạ ố ượ ọ ố ng h c sinh a và h c sinh b, giá tr c a các thu c tính c a 2 đ i ể ộ ị ủ ủ ọ ọ
ng tìm ra ng ố ượ ậ ừ ữ ể ườ i Bài 1: T o class HocSinh g m 3 thu c tính: H tên, l p, đi m trung bình. ộ T o 2 đ i t ạ ngượ t đ ượ có đi m cao h n báo ra màn hình console! bàn phím. So sánh đi m trung bình gi a 2 đ i t ơ c nh p t ể
Bài 13: Class trong Java (ti p)ế
1, Bài có 1 class, dùng class ch a hàm main!
ứ
ạ ẽ ấ ườ ạ Khi b n lên m ng, tìm code, b n s th y ng ạ t này th ng có 1 class duy nh t. Cách vi Th ườ ườ ườ ng dùng cách này i ta th ng dùng đ chia s thu t toán, ậ ế ể ẻ ấ
i thi u các ph ng th c c a 1 đ i t ng trong th vi n nào ớ ặ ệ ươ ư ệ ứ ủ ố ượ
ộ ả ậ
ặ ậ ư ặ ể ọ ể ệ ể ế ạ cú pháp ho c gi đó. Ví d 1:ụ M t bài t p qu n lý sinh viên nh : ỏ PHP: package sinh.vien; public class SinhVien { public String hoTen; public int namSinh; public float toan, ly, hoa; public static void main(String[] args) { SinhVien a = new SinhVien(); a.hoTen = "Vũ Văn A"; a.namSinh = 1992; a.toan = 10.0f; a.ly = 9.0f; a.hoa = 9.5f; System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l y + a.hoa) / 3); } } Khi làm bài t p ho c làm các project, ít khi dùng cách này, nó không hay cho vi c qu n lý, gi ả nh ng bài chia s d ng trên! i thi u đ các b n có th đ c và hi u n u nh g p ph i ả ớ ẻ ạ ệ ữ
2, Class đ t cùng file class ch a hàm main
ứ
ặ
bài tr ị ặ ứ ướ ở ụ ng trình chính, ớ ỉ ề ứ ề ư Vd1, b sung thêm class gi ng viên, nh ng s b ỗ t, s r t khó nhìn và qu n lý cũng nh nâng c p! ả ả ế ố ẽ ấ ộ ư ở ư ổ ẽ ố t ví d c, mình có vi V trí đ t ngoài class ch a ch ế ươ theo cách này! Nó ch thích h p v i bài ít class, class ít thu c tính và ph ươ ng ộ ợ th c. N u bài có nhi u class, m i class có nhi u ph ng th c, đi u này cũng ề ươ ứ không t ấ Ví d 2:ụ N i dung bài nh trí l i v trí class nh sau: ạ ị ư
PHP: package truong.hoc; class SinhVien { public String hoTen; public int namSinh; public float toan, ly, hoa; } class GiangVien { public String hoTen; public int namSinh; public String mon; public int luong;
ng trình v n ch y n u b n đ các class SinhVien và GiangVien ươ ể ẫ ạ ở
} public class Main { public static void main(String[] args) { SinhVien a = new SinhVien(); a.hoTen = "Vũ Văn A"; a.namSinh = 1992; a.toan = 10.0f; a.ly = 9.0f; a.hoa = 9.5f; System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l y + a.hoa) / 3); GiangVien gv1 = new GiangVien(); } } Chú ý: Ch phía cu i ch
ng trình, ch c n n m ngoài class Main là đ ạ ỉ ầ c ượ ế ằ ươ ố
3, M i class đ t riêng 1 file, cùng 1 gói (package)
ặ
ỗ
ở ề ng h c: ạ ọ SinhVien, ườ
ẽ ạ ớ các bài t p có nhi u class, các class cùng 1 lo i. Cách này ậ Ví d 4:ụ Các class cùng là nhân s c a 1 tr ự ủ GiangVienKhoa1, GiangVienKhoa2. V i bài này, chúng ta s t o project v i 1 package là truong.hoc, trong ớ package này s có 4 file nh sau: ư ẽ
ứ
ạ ạ ả ộ ư ộ
File "main.java" ch a hàm main: PHP: package truong.hoc; public class Main { public static void main(String[] args) { SinhVien a = new SinhVien(); a.hoTen = "Vũ Văn A"; a.namSinh = 1992; a.toan = 10.0f; a.ly = 9.0f; a.hoa = 9.5f; System.out.println("Đi mể Tb là: " + (float) (a.toan + a.l y + a.hoa) / 3); GiangVien1 gv1 = new GiangVien1(); } } File GiangVien.java là 1 class, b n t o b ng cách nháy chu t ph i vào package ằ ch n New --> Java Class, n i dung nh sau: ọ PHP: package truong.hoc;
class SinhVien { public String hoTen; public int namSinh; public float toan, ly, hoa; } File GiangVien1.java: PHP: package truong.hoc; class GiangVien1 { public String hoTen; public int namSinh; public String mon; public int luong; } File GiangVien2.java: PHP: package truong.hoc; class GiangVien2 { public String hoTen; public int namSinh; public String mon; public int luong; public String phongThucHanh; } Nh vào IDE, vi c qu n lý các class tr lên ti n l
i h n r t nhi u! ệ ả ở ờ ệ ợ ơ ấ ề
4, Các class đ
nhi u package khác nhau:
c đ t ượ ặ ở
ề
, s có r t nhi u class khác nhau đ ớ ữ ự ế ẽ c đ ượ ể ở ề ấ nhi u gói ề
các ví d trên. T o 1 project có tên: ạ ẽ ở ộ ụ
V i nh ng project th c t (package) khác nhau. Ví d 4:ụ Project này s m r ng t ừ QuanLyTruongHoc. Trong project có 3 package: truong.hoc, nhan.su, thu.vien.sach
Code bài 4 dài mình đính kèm phía d i, các b n Import vào IDE là ok! ướ ạ
ề
i các ví d ! ụ ầ
Bài 14: Ph
Bài t p v nhà: ậ Đ c hi u và code l ạ ọ ể ng Java đ u tiên c a b n Đ c thêm: T o 1 đ i t ủ ạ ố ượ ọ ạ ng th c (method) trong Java ứ ươ
1, Khái ni m: ệ
ng th c ươ ứ (method) trong Java là kh i l nh ố ệ ệ ứ ủ ớ ự ệ ủ ụ ạ ậ ng, chúng ta s h n ch g i nh v y, hãy ng trong ố ượ ng th c, nó liên quan đ n tính h ứ ữ ệ ư ậ ng đ i t ố ượ ấ ng đ i t ươ ớ ế ọ ướ ẽ ạ ế Hàm hay ph th c hi n các ch c năng, các hành vi x lý c a l p lên vùng d ử li u. Trong l p trình c u trúc, các b n đã làm quen v i khái ni m hàm, th t c. Trong l p trình h ướ ậ quen g i chúng là ph ọ Java!
2, Khai báo ph
ng th c:
ươ
ứ
ngươ th cứ > (
ề ng khác đ i v i
ố ớ PHP:
bên ngoài c t ứ ươ ậ ượ ừ ng th c có th truy c p đ ể
c t l p khai báo và ậ ượ ừ ớ ữ ể ấ ừ c truy c p bên trong b n thân l p khai ớ ả nó. ậ ẫ ỉ ượ
ươ ứ ớ ấ ả ể ng th c l p dùng chung cho t ươ t c các th c ể ượ ng c a l p ch a ứ ng th c đó có th đ ứ ố ượ ủ ớ
này không đ c khai báo ề ố ượ các l p d n xu t. ấ ầ ứ ẫ ng th c không c n cài đ t (không có ự ặ c hi n th c trong các l p d n ẫ ệ ớ
ủ ể ộ ng khác lên đ i t ồ - public: ph l p khai báo. ớ - protected: có th truy c p đ nh ng l p d n xu t t ớ - private: ch đ báo. - static: ph hi n c a l p, có nghĩa là ph ệ ủ ớ th c hi n k c khi không có đ i t ự ể ả ệ ng th c đó. ph ứ ươ - final: ph ng th c có ti n t ươ ch ng ớ ớ ồ - abstract: ph ứ ươ ph n source code), s đ ầ ẽ ượ l p này. xu t t ấ ừ ớ - synchoronized: dùng đ ngăn các tác đ ng c a các đ i ố t ng đang xét trong khi đang đ ng ượ ố ượ b hóa. Dùng trong l p trình miltithreads. ậ ộ
ộ ớ ể ể ể ơ ở
c gi ng tên bi n.
ố ả ề
ươ ướ ế -
ườ ộ ớ khóa ng là ừ ng trong m t l p các ph ươ public, khác v i vùng d li u th ớ ng th c nên đ ứ ữ ệ c ượ ườ ụ ề ố private vì m c đích an toàn. ứ ủ ớ ng th c c a l p là các bi n ế ộ c kh i t o sau khi khai báo.
Chú ý: - Thông th khai báo dùng t dùng ti n t - Nh ng bi n n m trong m t ph ằ ế ữ c c b (local) và nên đ ụ ộ
ượ ươ ở ạ
Xem thêm video blog StudyAndShare
ể ạ ớ ọ ồ ớ Ví d 1:ụ T o 1 l p h c sinh g m các thu c tính: h tên, l p, đi m toán, lý, hóa. ọ Tính đi m trung bình, tính x p lo i h c l c! ộ ạ ọ ự ể ế
đây tính đi m trung bình c a 3 môn, nh v y ph ể ủ Ở ư ậ ươ ứ ng th c
ị ố ố ế ề ạ ọ ự ố ự ự ố ố ươ ế ấ ng th c này tr ứ ả
i. ặ ỏ
** Phân tích: tính đi mể có 3 đ i s truy n vào và tr v 1 giá tr là s th c. ả ề Tính x p lo i h c l c, đ i s vào là 1 bi n th c duy nh t, ph v 1 chu i ỗ ề là x p lo i: y u, trung bình, khá ho c gi ạ ế ế Code nh sau: ư PHP: package javademoandroidvn;
ữ ậ ề ộ ề ệ ướ
class HocSinh { public String hoTen, lop; public float toan, ly, hoa; public float diemTB(float toan, float ly, float hoa) { return (float) (toan + ly + hoa) / 3; } public String xepLoai(float diemTB) { if (diemTB >= 8 && diemTB <= 10) { return "gi i"ỏ ; } if (diemTB >= 6.5f && diemTB < 8) { return "khá"; } if (diemTB >= 5.0f && diemTB < 6) { return "trung bình"; } if (diemTB >= 0.0f && diemTB < 5) { return "y u"ế ; } return "Nh pậ sai!"; } } public class JavaDemoAndroidVn { public static void main(String[] args) { HocSinh a = new HocSinh(); a.hoTen = "Vu Van T"; a.lop = "At7a"; a.toan = 8.0f; a.ly = 9.0f; a.hoa = 10.0f; System.out.println("Thông tin: "); System.out.println("Họ tên: " + a.hoTen + " - L p:ớ " + a. lop); System.out.println("Toán: " + a.toan + " Lý:" + a.ly + " Hóa: " + a.hoa); System.out.println("Đi mể trung bình: " + a.diemTB(a.toan, a.ly, a.hoa)); System.out.println("X pế lo iạ " + a.xepLoai(a.diemTB(a.toa n, a.ly, a.hoa))); } } Ví d 2:ụ Gán chi u dài, chi u r ng hình ch nh t, hi n lên màn hình kích th Tính di n tích và chu vi hình ch nh t theo cách vi
ng đ i t t code h ng! c đó. ệ ố ượ ữ ậ ướ ế
ề ộ ề ộ ng th c show, không có giá ươ ứ ề ** Phân tích: Các hình ch nh t có 2 thu c tính là chi u dài và chi u r ng. - Đ hi n l ể ệ ạ tr tr v , nh ng ị ả ề ữ ậ i chi u dài, chi u r ng , ta dùng 1 ph ề ộ ư
ầ ề ề ộ ớ ể ứ ươ ị ế ệ ữ ậ ế ng th c dienTich, chuVi v i 2 bi n
ứ ươ ể ệ ề ị ệ ớ ng th c showKetQua, v i 2
ậ ố ẽ ữ ứ ươ ử ạ ệ ố ng th c show ra ch ký k t thúc bài, s không có đ i ế
c:ướ ");
" + rong);
. ự
có giá tr bi n đ u vào là chi u dài và chi u r ng hình ch nh t! - Đ tính di n tích và chu vi, ta t o 2 ph ạ vào (đ i s vào) ố ố là chi u r ng, chi u dài. ề ộ - Đ hi n giá tr di n tích và chu vi, ta dùng 1 ph đ i số ố th c nh p vào là chu vi, di n tích hình tròn. ự - Cu i bài, th t o 1 ph s nào! ố Nó ch hi n ra 1 dòng ký t ỉ ệ Code nh sau: ư PHP: package javademoandroidvn; class HCN { public float chieuDai; public float chieuRong; public void showChieuDai(float dai, float rong) { System.out.println("Hình chữ nh tậ có kích th System.out.println("Chi uề dài: " + dai); System.out.println("Chi uề r ng:ộ } public float chuVi(float dai, float rong) { return (dai + rong) * 2; } public float dienTich(float dai, float rong) { return dai * rong; } public void showKetQua(float cv, float dt) { System.out.println("Chu vi hình chữ nh tậ là: " + cv); System.out.println("Di nệ tích hình chữ nh tậ là " + dt); } public void showChuKy() { System.out.println("K tế thúc bài tính toán hình chữ nh t,ậ xin chào, h nẹ g pặ l iạ b nạ ở bài ti pế theo!"); } } public class JavaDemoAndroidVn { public static void main(String[] args) { HCN a = new HCN(); a.chieuDai = 6.0f; a.chieuRong = 10.0f; a.showChieuDai(a.chieuDai, a.chieuRong); a.showKetQua(a.chuVi(a.chieuDai, a.chieuRong), a.dienTich( a.chieuDai, a.chieuRong)); a.showChuKy();
} }
Bài t p v nhà:
ề
ậ
ng. ồ ạ ớ ố ượ ả ượ ả ề ứ ổ ng, nh p các giá tr t màn hình console. ị ừ ng th c tính t ng ti n. ậ ơ ồ ng, th i gian mua.
ố ượ ng th c setter và getter trong Bài 1: T o l p hàng hóa g m: tên hàng, mã hàng, giá hàng, s l c gi m giá 5% N u mua vào kho ng 8h -> 17h hàng ngày , đ ế T o ph ươ ạ T o 1 đ i t ố ượ ạ In toàn b thông tin đ n hàng ra ngoài màn hình console g m: ộ tên, mã, giá, s l ươ ờ ứ
Bài 15: Ph Java
t chú ý 1 đi u nh này: ề ư
Ở bài 12 mình có vi ườ ố ượ ườ
các ph ườ ữ ệ ủ i ta ng ng ề ố private đ ngăn c n ả ể ng th c bên ứ ươ ề ế ng đ an toàn cho vùng d li u c a các đ i t Thông th ữ ệ ủ ể ng ch n ti n t public, mà th tránh dùng ti n t ề ố ọ quy n truy c p đ n vùng d li u c a m t l p t ộ ớ ừ ế ậ ngoài l p đó. ớ
ụ ướ ộ các ví d tr ư ả ẫ ng đ Ở nh ng đó không ph i là cách n. N u chuy n v các thu c tính nh các bài ví d tr ư c, các thu c tính mình th ổ ế ụ ướ ườ ể c thì s l ẽ ỗ ạ ể public , ch ng trình ch y, ươ ề private, mà b n v n truy c p ậ ạ i nh này: ư ộ
ng đ V y làm nh nào đ truy c p các thu c tính c a đ i t ậ ủ ố ượ ư ể ậ ộ ể private?
1, Bi n this ế
ể ầ ế ấ ả ớ ữ c s d ng trong khi ộ t c các l p trong ngôn ng java. M t ượ ử ụ Đ u tiên b n c n hi u bi n này là gì? ế ạ ầ i trong t Bi n this là m t bi n n t n t ế ẩ ồ ạ ộ class trong Java luôn t n t ế ồ ạ ế ộ ch y và tham kh o đ n b n thân l p ch a nó. ớ ả ế i m t bi n this, bi n this đ ứ ả ạ
2, Ph
ươ
ng th c setter ứ
ng th c setter là chúng ta dùng nó đ truy c p vào thu c tính ứ ươ ậ ủ ố ượ ộ ọ ộ ng! Tên g i, hay ng th c này là tùy b n, nó cũng v n ch y nh ng theo ư ươ ạ ạ ng làm thì nó s th M c đích c a ph ủ ể ụ ng và gán giá tr cho các thu c tính c a đ i t c a đ i t ủ ố ượ cách b n đ t tên ph ặ ẫ ạ ng là set.... style code l p trình viên th ậ ị ứ ườ ẽ ườ
Ví d 1: ụ PHP: package javademoandroidvn; class HocSinh {
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
private String hoTen; private String lop; private float diemTb; public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ nh pậ vào, th d this.hoTen = hoTen1; } public void setLop(String lop) { this.lop = lop; } public void setDiemTb(float diemTb) { this.diemTb = diemTb; } } public class JavaDemoAndroidVn { public static void main(String[] args) { HocSinh a = new HocSinh(); a.setHoTen("Vu Van T"); a.setLop("At7a"); a.setDiemTb(7.5f); } } 2, Ph
ng th c getter ứ
ươ
ng t ươ nh ph ự ư ươ ộ ng th c setter, nó cũng dùng đ truy c p vào các thu c ứ ể ậ
ngườ để trùng tên thu cộ tính như các hàm setter phía
iướ
i setter, ph c l ượ ạ ươ ộ ng th c getter s tr v các thu c ẽ ả ề ứ Cũng t tính c a đ i t ủ ố ượ tính c a đ i t ng, nh ng ng ư ng! ủ ố ượ
Ví d 2: ụ PHP: package javademoandroidvn; class HocSinh { private String hoTen; private String lop; private float diemTb; public void setHoTen(String hoTen1) { //hoTen1 là bi nế c cụ bộ nh pậ vào, th d this.hoTen = hoTen1; } public void setLop(String lop) { this.lop = lop;
} public String getHoTen() { return hoTen; } public String getLop() { return lop; } public float getDiemTb() { return diemTb; } public void setDiemTb(float diemTb) { this.diemTb = diemTb; } } public class JavaDemoAndroidVn { public static void main(String[] args) { HocSinh a = new HocSinh(); a.setHoTen("Vu Van T"); a.setLop("At7a"); a.setDiemTb(7.5f); System.out.println("Họ tên: " + a.getHoTen()); System.out.println("L p:ớ " + a.getLop()); System.out.println("Đi mể Tb: " + a.getDiemTb()); } }
Các b n nên xem video sau c a blog StudyAndShare đ hi u h n! ể ể ủ ạ ơ
3, Cách t
chèn các ph
ng th c getter và setter:
ự
ươ
ứ
ạ ự ự ể ư
chèn các ph ớ ng th c getter và setter. V i ươ ề Khi b n m i code java thì ch a nên dùng cách này, th c s hi u getter và setter ớ r i thì m i nên dùng. ớ ồ c 2 IDE ph bi n đ u h tr t ỗ ợ ự Ở ả ổ ế nh ng bài khi khai báo nhi u bi n, dùng tính năng này s r t ti n! ế ữ ứ ẽ ấ ệ ề
ộ
ớ ạ
ả ọ ị ặ
V i Netbeans: B n nháy chu t ph i lên v trí so n th o code, ch n Insert Code ả ạ Sau đó s hi n ra 1 menu nh , b n ch n getter, setter ho c getter and setter tùy ọ ỏ ạ ẽ ệ m c đích b n dùng! ạ B n s th y Netbeans t
sinh code cho các ph ụ ạ ẽ ấ ng th c đó! ứ ươ ự
Source --> Generate Getter and Setter r i ch n bi n c n t o ph ng ế ầ ạ ồ ọ ươ c!
V i Eclipese: ớ B n vào ạ th c getter và setter là đ ứ
ượ
Bài t p v nhà:
ề
ậ
ạ ả ồ ọ ự ộ ể ớ ọ ươ ạ ớ ọ ộ
ạ ạ bàn phím. ừ ậ ủ ủ ể Bài 1: T o package nhân s , trong có 2 class là sinh viên và gi ng viên Class sinh viên g m các thu c tính: h tên, l p h c, đi m toán, lý, hóa. ng. Class gi ng viên g m các thu c tính: h tên, l p d y, năm sinh, l ồ ả ng h c sinh a. T o đ i t ố ượ ọ T o đ i t ng gi ng viên b. ả ố ượ Các giá tr c a thu c tính a và b nh p vào t ộ ị ủ X lý d li u báo ra thông tin c a a và b, tính và báo ra đi m trung bình c a a, ữ ệ ử x p lo i h c l c, báo b có d y a hay không! ạ ọ ự ế ạ
ng th c getter, setter. ộ ử ụ ươ ứ Các thu c tính đ private, s d ng ph ể ng đ i t L p trình h ng! ố ượ ướ ậ