LỚP VÀ ĐỐI TƯỢ - LOAN DO · 2020. 9. 29. · LỚP Đại diện cho một tập hợp...

22
LP VÀ ĐI TƯỢNG Ging viên: ĐNgc Như Loan

Transcript of LỚP VÀ ĐỐI TƯỢ - LOAN DO · 2020. 9. 29. · LỚP Đại diện cho một tập hợp...

  • LỚP VÀ ĐỐI TƯỢNG

    Giảng viên: Đỗ Ngọc Như Loan

  • ĐỐI TƯỢNG

    Là sự vật hiện tượng cụ thể trong đời sống thực

    Ví dụ: sinh viên Nguyễn Văn Tèo, chó milu, mèomimi,…

    Mỗi đối tượng bao gồm tập thuộc tính và tập phươngthức

    Thuộc tính (property): mô tả đối tượng, thể hiệnđặc trưng của đối tượng

    Phương thức (method): là hành vi của chính đốitượng

  • LỚP

    Đại diện cho một tập hợp các đối tượng có chungmột số đặc điểm, tính chất (thuộc tính) và hànhđộng (phương thức)

    Ví dụ :

    Lớp sinh viên : đại diện cho 1 nhóm sinh viên với:

    Tập thuộc tính: mã sinh viên, họ, tên.

    Tập phương thức: nhập, xuất, hiệu chỉnh thôngtin sinh viên

    Lớp hình chữ nhật,...

  • KHAI BÁO LỚP

    Cú pháp:

    class

    {

    //khai báo thuộc tính của đối tượng

    (thành phần dữ liệu)

    //khai báo phương thức

    (thành phần hàm)

    }

  • VÍ DỤclass HinhChuNhat

    {

    private float dai;

    private float rong;

    public void nhap()

    {

    Scanner sc = new Scanner(System.in);

    System.out.println(“Nhap dai”);

    dai= sc.nextFloat();

    System.out.println(“Nhap rong”);

    rong= sc.nextFloat();

    }

    public float dientich()

    {

    return dai*rong;

    }

    public void xuat()

    {

    System.out.println(“Dien tich HCN: “+ dientich());

    }

    }

    Biếnthuộctính

    Phươngthức

  • Tạo đối tượng: dùng new khai báo biến có kiểu làclass.

    Instance chính là biến đối tượng của class.

    Cú pháp:

    Ví dụ:

    Ta có class SinhVien, khi khai báo biến sv có kiểu làSinhVien thì sv là 1 instance của lớp SinhVien

    SinhVien sv = new SinhVien();

    = new ();

    INSTANCE (THỂ HIỆN)

  • VÍ DỤ

    class Program

    {

    public static void main(String args[])

    {

    HinhChuNhat hcn1=new HinhChuNhat();

    hcn1.nhap();

    hcn1.xuat();

    }

    }

    Kết quả xuất ra màn hình là gìnếu nhập vào chiều dài là 5, chiều

    rộng là 3?

  • THUỘC TÍNH TRUY XUẤT (ACCESS MODIFIER)

    Private: chỉ được truy xuất bên trong lớp đó

    Public: ở đâu cũng truy xuất được

    Protected: chỉ được truy xuất ở trong lớp đó vàlớp con

    Default: được truy xuất trong cùng package

  • VÍ DỤ

    class Program

    {

    public static void main(String args[])

    {

    HinhChuNhat hcn1=new HinhChuNhat();

    hcn1.nhap();

    hcn1.xuat();

    hcn1.dai=100; //Lỗi}

    }

  • HÀM THIẾT LẬP (CONSTRUCTOR)

    Là hàm thành phần của class, dùng để thiết lậpcác giá trị ban đầu cho các thuộc tính, hàm thiếtlập có các đặc điểm sau:

    Trùng tên với class

    Thuộc tính truy xuất: public

    Không có kiểu trả về

    Tự động chạy khi khai báo biến của lớp

    Hàm thiết lập sao chép: là 1 hàm thiết lậpdùng để sao chép đối tượng

  • class DIEM {

    int x; int y;

    public DIEM() {

    x = 0; y = 0;

    }

    public DIEM(int x, int yy) {

    this.x = x;

    y = yy;

    }

    public DIEM(DIEM mm) {

    this.x = mm.x;

    this.y = mm.y;

    }

    public void xuat() {

    System.out.println(“Toa do: ”+x+” “+y);

    }

    }

    Từ khóa this tham chiếu đến đốitượng hiện hành. Phân biệt thuộc tính

    x của đối tượng với tham số x.

    Hàm

    thiết lập

    Hàm thiết lập sao chép

  • public static void main(String args[])

    {

    DIEM d1=new DIEM();

    d1.xuat();

    DIEM d2=new DIEM(7,9);

    d2.xuat();

    DIEM d3=new DIEM(d2);

    d3.xuat();

    }

    Kết quả xuất ra màn hình là gì?

  • PHƯƠNG THỨC GET/SET

    Dùng để truy cập đến các biến của đối tượng

    Phương thức get: lấy dữ liệu của thuộc tính

    Phương thức set: gán dữ liệu cho thuộc tính

    Ví dụ tạo phương thức get/set cho thuộc tính name:

    public void setName(String newname)

    {

    name = newname;

    }

    public String getName()

    {

    return name;

    }

  • VÍ DỤclass HinhChuNhat{

    private float dai;private float rong;public void setDai(float newdai) {

    dai = newdai;}public float getDai(){

    return dai;}

    public void setRong(float newrong) {

    rong = newrong;}public float getRong(){

    return rong;}

    …}

  • VÍ DỤ

    class Program

    {

    public static void main(String args[])

    {

    HinhChuNhat hcn1 = new HinhChuNhat();

    hcn1.setDai(5);

    hcn1.setRong(3);

    hcn1.xuat();

    }

    }

  • STATIC

    Thuộc tính static

    Phương thức static

  • THUỘC TÍNH STATIC

    Khi các đối tượng của lớp cần truy xuất chung 1 thuộc tính của chúng, thì hãy thiết kế thuộc tínhstatic.

    Ví dụ:

    Lớp SinhVien có cùng số lượng sinh viên, thìthuộc tính số lượng sinh viên là thuộc tính static

    Thuộc tính static thường được gán giá trị mặcđịnh ban đầu

  • PHƯƠNG THỨC STATIC

    Khi đối tượng gọi phương thức của nó thì theo quy tắc:

    .;

    Có một số phương thức thực hiện không cần có đốitượng thì khai báo chúng là phương thức static.

    Quy tắc gọi phương thức static là: .;

    Phương thức static chỉ truy xuất được các thuộc tính/ phương thức static

  • VÍ DỤ

    public class Cat

    {

    private static int count = 0;

    public Cat()

    {

    count++;

    }

    public static void HowManyCats()

    {

    System.out.println(count+” cats”);

    }

    }

  • public static void main(String[] args)

    {

    Cat.HowManyCats();

    Cat mun = new Cat();

    Cat.HowManyCats();

    Cat muop = new Cat();

    Cat miu = new Cat();

    Cat.HowManyCats();

    }

    VÍ DỤ

    Kết quả xuất ramàn hình?

  • BÀI TẬP

    Thiết kế lớp Ngày, Tháng, Năm

    Thiết kế lớp Giờ, Phút, Giây

  • CÂU HỎI

    Thiết kế lớp PhanSo:

    - Gồm 2 biến thuộc tính private là 2 số nguyên tươngứng với tử số và mẫu số

    - Xây dựng phương thức get/set cho 2 biến thuộc tínhnày.

    - Xây dựng 1 constructor với tham số là 2 số nguyên đểkhởi tạo giá trị cho tử số và mẫu số.

    - Xây dựng các hàm thành viên sau:

    + void xuat(): xuất ra màn hình phân số theo dạng A/B

    + void nghichdao(): nghịch đảo phân số hiện tại

    + PhanSo tong(PhanSo p): tính tổng của phân số hiệntại với 1 phân số p (là tham số truyền vào), trả về kếtquả là 1 phân số (không cần tối giản).