ự ọ

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) ấ = (ki u_d _li u) ; ế ữ ệ

ế

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: ấ ỉ ọ { } thay vì Begin End nh trong pascal. D ng 1: ạ PHP: ề if (<đi u_ki n ở ệ ề Ví d : N u s a chia h t cho 2 thì in ra thông báo đây là s ch n. Chúng ta s ụ ế ố t ch vi ươ ế PHP: package javaandroidvn; public class JavaAndroidVn { public static void main(String[] args) { int a = 6; if (a % 2 == 0) { System.out.println("Th ngố báo: a là số ch 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! ố ượ ướ ậ