Showing posts with label vã. Show all posts
Showing posts with label vã. Show all posts

Friday, February 10, 2017

Bà i 10 Break và Continue trong Java

Bà i 10 Break và Continue trong Java


Bài 10: Break và Continue trong Java

images ?

1, L?nh break:

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??ng t? nh? v?y, trong c?u trúc l?p, câu l?nh break dùng ?? thoát kh?i c?u trúc l?p trong cùng ch?a nó.
Trong th?c t?, ??c bi?t là các bài tìm ki?m, s? dùng break ?? thoát vòng l?p khi chúng ta ?ã tìm th?y k?t qu?, tránh vi?c l?p t?i t?n cùng c?a vòng l?p, gây lãng phí tài nguyên, vì th? giúp ch??ng trình ch?y nhanh h?n!

break ?

Ví d? 1 : Tìm ki?m s? th? t? c?a ph?n t? có giá tr? là 10 trong 1 m?ng các s? nguyên:
Hide Spoiler
PHP:
public class JavaDemoAndroidVn {
    public static 
void main(String[] args) {
        
//Vd1 break
        
int arrInt[] = {1, 2, 5, 0, 10, 200, 20, 35, 29};
        for (
int i = 0; i <= 8; i++) {
            if (
arrInt[i] == 10) {
                
System.out.println("Tìm th?y s? 10 có th? t? trong m?ng là: " + i);
                break;
            }
        }
    }
}

2, L?nh continue:

Hi?u ??n gi?n, chúng ta th??ng dùng continue ?? b? qua vòng l?p hi?n t?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?t c? các câu l?nh sau nó (Nh?ng câu l?nh thu?c cùng kh?i l?nh v?i continue c?a vòng l?p)

continue ?

Ví d? 2: Tìm ki?m và in ra s? th? t? và giá tr? các ph?n t? có giá tr? nh? h?n 35 trong m?ng các s? nguyên!
Hide Spoiler
PHP:
public class JavaDemoAndroidVn {
    public static 
void main(String[] args) {
        
//Vd2 continue
        
int arrInt[] = {1, 2, 5, 0, 10, 200, 20, 35, 29};
        
System.out.println("Nh?ng s? nh? h?n 35 trong m?ng là: ");
        
System.out.print("S? th? t?: ");
        for (
int i = 0; i <= 8; i++) {
            if (
arrInt[i] >= 35) {
                
System.out.print(" ");
                continue;
            }
            
System.out.print(i + " ");
        }
        
System.out.print(" " + "Giá tr?:  ");
        for (
int i = 0; i <= 8; i++) {
            if (
arrInt[i] >= 35) {
                continue;
            }
            
System.out.print(arrInt[i] + " ");
        }

    }
}

3, Nhãn (label):

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??ng trình. Java dùng k?t h?p nhãn (label) v?i t? khóa break và 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 (<
bi?u th?c ?i?u ki?n>){
            break 
label;
            }
        else{
            continue 
label;
        }
    }
}
L?nh “label:”

Xác ??nh v? trí c?a nhãn và xem nh? tên c?a vòng l?p ngoài. N?u <bi?u th?c ?i?u ki?n> ?ú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?i s? ti?p t?c vòng l?p có nhãn “label” (khác v?i break và continue thông th??ng ch? thoát kh?i hay ti?p t?c vòng l?p trong cùng ch?a nó).

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? tìm th?y ??u tiên theo yêu c?u!
Hide Spoiler
PHP:
import java.util.Scanner;

public class 
JavaDemoAndroidVn {

    public static 
void main(String[] args) {
        
//Vd3 Label
        
Scanner input = new Scanner(System.in);
        
int arrInt[][];
        
arrInt = new int[10][10];
        
System.out.print("Nhap so hang: ");
        
int m = input.nextInt();
        
System.out.print("Nhap so cot: ");
        
int n =

Available link for download

Read more »

Thursday, January 19, 2017

Bà i 21 Final class abstract class và interface trong Java

Bà i 21 Final class abstract class và interface trong Java


Bài 21: Final class, abstract class và interface trong Java

1, Final class (L?p vô sinh):

L?p không th? có l?p d?n xu?t t? nó (không có l?p con) g?i là l?p “vô sinh”, hay nói cách khác không th? k? th?a ???c t? m?t l?p “vô sinh”. L?p “vô sinh” dùng ?? h?n ch?, ng?n ng?a các l?p khác d?n xu?t t? nó.
?? khai báo m?t l?p là l?p “vô sinh”, chúng ta dùng t? khóa final class.
T?t c? các ph??ng th?c c?a l?p vô sinh ??u vô sinh, nh?ng các thu?c tính c?a l?p vô sinh thì có th? không vô sinh.
- Xem thêm video blog StudyAndShare

?

Ví d?:
PHP:
public final class A {
    public final 
int x;
    private 
int y;
    public final 
void method_1(){
    
// …
    
}
    public final 
void method_2(){
    
// …
    
}
}
2, Abstract class (L?p tr?u t??ng):

M?t l?p tr?u t??ng thì không có th? hi?n ngh?a là ta không th? kh?i t?o nó b?ng toán t? new, và m?t ph??ng th?c trong nó là abstract thì ch? ???c ??a ra ??nh ngh?a (khai báo) mà không ???c th?c thi và nó s? ???c override l?i trong các l?p con k? th?a. Và trong l?p mà t?n t?i ph??ng th?c abstract thì l?p ?ó c?ng ???c ??nh ngh?a abstract.

- L?p tr?u t??ng là l?p không có khai báo các thu?c tính thành ph?n và các ph??ng th?c.
- B?t c? class nào k?t th?a abstract class nào ?ó ph?i ??nh ngh?a l?i các abstract mothods c?a l?p mà nó th?a k? ho?c không ??nh ngh?a l?i nh?ng ph?i ghi l?i abstract mothods ?ó.
- Abstract class là class có ch?a các abstract mothods
- Các methods trong abstract class ph?i khai báo v?i t? khóa abstract (không gi?ng nh? interface vì interface m?c ??nh gán abstract cho các mothods)
- M?t abstract class có th? ch?a c? abstract mothods và các mothods th??ng.
- Khi m?t class có ch?a abstract mothod thì b?t bu?c ph?i có t? khóa abstract ??ng tr??c tên class ?ó.

PHP:
abstract class A{
    abstract 
void method_1();
}
public class 
B extends A{
    @
Override
    
public void method_1(){
    
// cài ??t chi ti?t cho ph??ng th?c method_1
    // trong l?p con B.
    // …
    
}
}
public class 
C extends A{
    @
Override
    
public void method_1(){
    
// cài ??t chi ti?t cho ph??ng th?c method_1
    // trong l?p con C.
    // …
    
}
}
L?u ý:
* Các ph??ng th?c ???c khai báo dùng các ti?n t? private và static thì không ???c khai báo là tr?u t??ng abstract. Ti?n t? private thì không th? truy xu?t t? các l?p d?n xu?t, còn ti?n t? static thì ch? dùng riêng cho l?p khai báo mà thôi.
* Ph??ng th?c trong abstract class có 2 cách ?? khai báo:
- Khai báo bình th??ng nh? class
- Khai báo gi?ng nh? interface nh?ng ph?i có thêm t? khóa abstract

Code demo:
PHP:
package java.demo.android.vn;

abstract class 
nhanSu {

    abstract 
void show();
}

class 
hocSinh extends nhanSu {

    public 
String hoTen;
    public 
int namSinh;

    public 
void show() {
        
System.out.println("Hello " + hoTen + " N?m sinh: " + namSinh);
    }
}

public class 
JavaDemoAndroidVn {

    public static 
void main(String[] args) {
        
hocSinh a = new hocSinh();
        
a.hoTen = "V? V?n A";
        
a.namSinh = 1992;
        
a.show();

    }
}
3, Interface (Khác v?i GUI - Nó không ph?i là giao di?n ng??i dùng)

- Nh? chúng ta ?ã bi?t m?t l?p trong java ch? có m?t siêu l?p (super class) tr?c ti?p hay m?t cha duy nh?t (??n th?a k?). ?? tránh ?i tính ph?c t?p c?a ?a th?a k? (multi-inheritance) trong l?p trình h??ng ??i t??ng, Java thay th? b?ng interface. M?t l?p có th? k? th?a t? nhi?u interface v?i các l?p khác ?? th?a h??ng thêm vùng d? li?u và ph??ng th?c c?a các interface này.

- Interface ???c khai báo nh? m?t l?p. Nh?ng các thu?c tính c?a interface là các h?ng (khai báo dùng t? khóa final) và các ph??ng th?c c?a interface là tr?u t??ng (m?c dù không có t?
khóa abstract).
- Mothods tr?u t??ng là các mothods ch? có ph?n header, không có ph?n body.(Xem ví d? phía d??i)
- Trong các l?p có cài ??t các interface ta ph?i ti?n hành cài ??t c? th? các ph??ng th?c này.

- Interface ???c ??nh ngh?a nh?m làm cho code rành m?ch h?n vì các class có th? implements các interface.

Ví d?: Code ví d? c?a video bên blog StudyAndShare



?
PHP:
public class DemoJavaBasic {
      public static 
void main(String[] args) {
            
Manager mana = new Manager();
            
mana.show();
      }
}
interface 
Human{
      public static final 
int AVG_AGE = 100;
      
int AVG_WEIGHT = 60;

      public abstract 
void show();
      
void study();
}
class 
Manager implements Human{

      @
Override
      
public void show() {
            
System.out.println("Tuoi trung bình: "+ AVG_AGE);

      }

      @
Override
      
public void study() {
            
// TODO Auto-generated method stub

      
}

}
Có m?t v?n ?? khác v?i l?p là m?t giao di?n (interface) không ch? có m?t giao di?n cha tr?c ti?p mà có th? d?n xu?t cùng lúc nhi?u giao di?n khác (hay có nhi?u giao di?n cha). Khi ?ó nó s? k? th?a t?t c? các giá tr? h?ng và các ph??ng th?c c?a các giao di?n cha. Các giao di?n cha ???c li?t kê thành chu?i và cách nhau b?i d?u ph?y “,”. Khai báo nh? sau:
PHP:
public interface InterfaceName extends interface1, interface2,interface3{// …}
Ví d?:
PHP:
interface DienTich {

    public abstract 
void sHinhVuong(float a);

    public abstract 
void sHinhChuNhat(float a, float b);
}

interface 
ChuVi {

    public abstract 
void cVHinhVuong(floa

Available link for download

Read more »

Monday, January 9, 2017

Bà i 23 String và một số phương thức của lớp String trong Java

Bà i 23 String và một số phương thức của lớp String trong Java


Bài 23: String và m?t s? ph??ng th?c c?a l?p String trong Java

string java
?
? nh?ng bài tr??c, chúng ta ?ã làm quen v?i String, khi nh?p xu?t d? li?u. Trong bài hôm nay, mình s? gi?i thi?u th?t k? v? l?p này. Tính áp d?ng c?a bài này trong th?c t? là r?t cao, nên các b?n th?t chú ý làm các ví d? và bài t?p v? nhà ? phía cu?i. Bài này r?t d? nh?ng mình xin nh?c l?i là bài này h?t s?c quan tr?ng!

1, Khái ni?m, cách khai báo và kh?i t?o!

a, Khái ni?m:
Chu?i là t?p các kí t? ??ng li?n nhau ???c gi?i h?n trong d?u ngo?c kép nh?: "Hello th? gi?i Java", "Hello Android.Vn - Tôi Yêu các b?n!"
Còn các ký t? các b?n nh? là trong ngo?c ??n c, a, b ...tránh nh?m l?n ch? này!
b, Cách khai báo, kh?i t?o:
Các b?n xem code demo d??i ?ây là hi?u ngay nhé, mình gi?i thi?u 3 cách kh?i t?o ?ng v?i 3 chu?i str1, str2, str3:
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
String str1 = new String();
        
str1 = "Hello Android.Vn";

        
String str2 = new String ("Xin chào các b?n, tôi ?ang tham gia Android.Vn");

        
String str3 = "Tôi yêu Android.Vn";

        
System.out.println(str1+" "+str2+" "+str3);
    }
}
c, Kh?i t?o chu?i t? m?ng các ký t?:
Code demo: ? ?ây có 2 cách, và mình b? sung thêm ph?n c?ng 2 chu?i - mình c?ng ch?a nói ? nh?ng bài tr??c:
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
char ch[] = {A, n, d, r, o, i, d, ., V, n};
        
String str1 = new String(ch);
        
System.out.println("str1: " + str1);

        
String str2 = new String(ch, 2, 5); //L?y t? v? trí s? 2, và l?y 5 ký t? trong m?ng k? t? v? trí ?ó
        
System.out.println("str2: " + str2);

        
//C?ng 2 chu?i - ph?n này b? sung thêm
        
String str3 = str1+ str2;
        
//String str3 = str1.concat(str2); Cách này c?ng n?i ???c 2 chu?i!
        
System.out.println("str3: "+str3);
    }
}
2, Chuy?n chu?i sang m?ng ký t?:

Ph?n 1c, mình ?ã chia s? các ph??ng th?c chuy?n t? m?ng các ký t? sang chu?i, ph?n này s? là ng??c l?i.
Code demo:
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
String str = "Android.Vn Android.Vn";

        
//Chuy?n chu?i thành m?ng ký t?!
        
System.out.println("Chuy?n chu?i thành m?ng ký t?!");
        
char arr[] = str.toCharArray();
        for (
int i = 0; i < str.length(); i++) {
            
System.out.print(arr[i] + " ");
        }
    }
}
3,Các ph??ng th?c x? lý chu?i c? b?n:

Ph?n này r?t d? hi?u, mình s? gi?i thích luôn các ph??ng th?c trong code demo, ?o?n nào không hi?u các b?n h?i ? phía d??i nhé ;)
**Chú ý: V? trí các ký t? trong chu?i c?ng gi?ng nh? trong m?ng, b?t ??u t? v? trí s? 0 và k?t thúc là (?? dài chu?i - 1).
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
String str = "Android.Vn Android.Vn";
        
System.out.println("str = " + str);

        
// L?y t? v? trí s? 8 t?i cu?i cùng c?a chu?i
        
System.out.println("str.substring(8) = " + str.substring(8));

        
//L?y t? v? trí s? 3 t?i v? trí s? 9
        
System.out.println("str.substring(3,9) = " + str.substring(3, 9));

        
//?? dài chu?i:
        
System.out.println("?? dài chu?i: str.length() = " + str.length());

        
//L?y ra ký t? trong chu?i theo ch? s?
        
char ch;
        
ch = str.charAt(4);
        
System.out.println("str.charAt(4) = " + ch);

        
// Thay 1 ký t? b?ng ký t? khác trong chu?i:
        
System.out.println("Thay t?t c? ký t? n b?ng ký t? x = " + str.replace(n, x));

        
//Tìm chu?i "And" là chu?i con c?a chu?i str, thay k?t qu? ??u tiên b?ng chu?i "xxx"
        
System.out.println("Thay And ??u tiên b?ng xxx = " + str.replaceFirst("And", "xxx"));

        
//Thay toàn b? chu?i "And" c?a chu?i str b?ng chu?i "xxx":
        
System.out.println("Thay t?t c? And b?ng xxx = " + str.replaceAll("And", "xxx"));

        
//Chuy?n thành ch? th??ng:
        
System.out.println("str chuy?n v? vi?t th??ng: " + str.toLowerCase());

        
//Chuy?n thành ch? hoa:
        
System.out.println("str chuy?n v? vi?t hoa: " + str.toUpperCase());

        
//Lo?i b? kho?ng tr?ng 2 bên chu?i
        
String str1 = "  "+str+"  ";
        
System.Available link for download

Read more »

Thursday, December 29, 2016

Bà i 12 Class lớp và đối tượng trong Java!

Bà i 12 Class lớp và đối tượng trong Java!


Bài 12: Class (l?p) và ??i t??ng trong Java!

?? có ki?n th?c t?ng quan và m?t vài khái ni?m m?i trong l?p trình h??ng ??i t??ng
Tr??c tiên, b?n hãy ??c th?t k? bài này:
L?p trình h??ng ??i t??ng v?i công ngh? Java?
R?i xem video anh Vi?t bên blog StudyAndShare:

?

? bài này, mình s? ch? vi?t v? class trong Java và chúng ta b?t ??u th?c hành, làm bài t?p nh? ?? làm quen v?i class.

1. Khái ni?m class (l?p):

Chúng ta có th? xem l?p nh? m?t khuôn m?u (template) c?a ??i t??ng (Object). Trong ?ó bao g?m d? li?u c?a ??i t??ng (fields hay properties) và các ph??ng th?c (methods) tác ??ng lên thành ph?n d? li?u ?ó g?i là các ph??ng th?c c?a l?p.
Các ??i t??ng ???c xây d?ng b?i các l?p nên ???c g?i là các th? hi?n c?a l?p (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?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??ng d?a trên l?p này, các ??i t??ng ??u t??ng t? nh? m?u trên.
Vd :
T?o ??i 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 thu?c tính ?ó nh? sau:
- hoTen là "Nguy?n V?n A";
- namSinh là "1992";
- lopHoc là "At7a";
??i t??ng b, c, ... c?ng t??ng t? nh?ng giá tr? c?a chúng s? ??c tr?ng cho t?ng ??i 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 nh? b?n ?ã ???c h?c l?p trình C ho?c Pascal.

2. Khai báo/??nh ngh?a l?p:

PHP:
class <ClassName> {
    <
ki?u d? li?u> <field_1>;
    <
ki?u d? li?u> <field_2>;
    
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??ng l?p.
- method_1, method_2: là các ph??ng th?c/hàm th? hi?n các thao tác x? lý, tác ??ng lên các thành ph?n d? li?u c?a l?p.

? bài này, t?m th?i chúng ta s? ch?a quan tâm t?i constructor và method nhé, nh?ng bài sau mình s? vi?t rõ v? nh?ng khái ni?m ?ó.

Các b?n hãy xem vd2 code v? l?p ?? ??nh ngh?a nh?ng gì ?ã vi?t trong ví d? 1
Ví d? 2: (? ?ây, t?m th?i ch?a c?n hi?u public là gì nhé, xu?ng ph?n d??i s? 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();

Ví d? 3: T?o 2 ??i t??ng sinh viên a và sinh viên b d?a trên class ?ã ??nh ngh?a ? ví d? 2:
PHP:
SinhVien a = new SinhVien();SinhVien b = new SinhVien();
4. Thu?c tính c?a l?p

Vùng d? li?u (fields) hay thu?c tính (properties) c?a l?p ???c khai báo bên trong l?p nh? sau:

PHP:
class <ClassName>{// khai báo nh?ng thu?c tính c?a l?p<ti?n t?> <ki?u d? li?u> field1;// …}
?? xác ??nh quy?n truy xu?t c?a các ??i t??ng khác ??i v?i vùng d? li?u c?a l?p ng??i ta th??ng dùng 3 ti?n t? sau:
- public: có th? truy xu?t t? t?t c? các ??i t??ng khác
- 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? l?p ?ó truy c?p ??n.
Xem thêm video Blog StudyAndShare v? các thu?c tính này:

?

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? ???c truy c?p ??n t? t?t c? các ??i t??ng khác. (public)
- Thu?c tính "namSinh" ch? có th? truy c?p ???c t? các ??i t??ng có ki?u "SinhVien"(private)
- Thu?c tính "lopHoc", so có th? truy c?p ???c t? các ??i t??ng có ki?u "SinhVien" và các ??i t??ng c?a các l?p con d?n xu?t t? l?p "SinhVien" (protected)
- "tenTruong" là bi?n t?nh có giá tr? là "HV KT M?t Mã"trong t?t c? các th? hi?n t?o ra t? l?p "SinhVien" (public static)

L?u ý: Thông th??ng ?? an toàn cho vùng d? li?u c?a các ??i t??ng ng??i ta tránh dùng ti?n t? public, mà th??ng ch?n ti?n t? private ?? ng?n c?n quy?n truy c?p ??n vùng d? li?u c?a m?t l?p t? các ph??ng th?c bên ngoài l?p ?ó.

V?y class ???c ??nh ngh?a, ???c vi?t ? v? trí nào trong 1 bài l?p trình Java h??ng ??i t??ng. Vi?c t?o ??i t??ng, truy c?p d? li?u c?a các ??i t??ng ???c t?o t?o nh?ng class ?ó ra sao! ? bài sau mình s? vi?t rõ và k? h?n ?? các 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
T?o 2 ??i t??ng là sinh viên a và sinh viên b. Gán giá tr? cho các thu?c tính và in giá tr? các thu?c tính t?ng sinh viên ra màn hình!
PHP:
package javademoandroidvn;//Vd5class SinhVien {

    public 
String hoTen;
    public 
int namSinh;
  &nb

Available link for download

Read more »