SlideShare a Scribd company logo
1 of 36
Download to read offline
Bài 2: Sử dụng đối tượng


            Giảng viên: Nguyễn Thị Minh Huyền
            nguyenthiminhhuyen@hus.edu.vn
                      Đỗ Thanh Hà
                 dothanhha@hus.edu.vn
                                 OOP -
2009-2010            http://mim.hus.edu.vn/elearning   1
Tài liệu tham khảo
   BigJava - Chương 2, 4, 6, 7




    2009-2010    OOP - http://mim.hus.edu.vn/elearning   2
Kiểu dữ liệu
   Chương trình = Cấu trúc dữ liệu + giải thuật
    (N. Wirth)
   Dữ liệu trong Java
           Kiểu dữ liệu nguyên thủy: Số nguyên, số
            thực, kí tự và xâu kí tự, lôgic (boolean)
           Đối tượng



2009-2010              OOP - http://mim.hus.edu.vn/elearning   3
Kiểu dữ liệu nguyên thủy (1)
Tên kiểu                  Ý nghĩa                  Kích thước                 Miền giá trị
char              kí tự                              2 bytes          kí tự bảng mã Unicode
byte              số nguyên rất ngắn                  1 byte          -128      127
short             số nguyên ngắn                     2 bytes          -215     215 – 1
int               số nguyên                          4 bytes          -231     231 – 1
long              số nguyên dài                      8 bytes          -2255     2255 – 1
float             số thực (chính xác đến             4 bytes          1.4*10-45       3.4*1038
                  6 chữ số thập phân)
double            số thực (chính xác đến             8 bytes          4.9*10-324      1.7*10308
                  15 chữ số thập phân)
boolean lôgic                                          1 bit          true, false
      2009-2010                     OOP - http://mim.hus.edu.vn/elearning                        4
Kiểu dữ liệu nguyên thủy (2)
   Kiểu trống: void
   Mỗi kiểu nguyên thủy đều có lớp bao
    (wrapper class): Character, Byte, Short,
    Integer, Long, Float, Double, Boolean, Void
   Xâu kí tự: Lớp String
   Ép kiểu (casting):
           (typeName) expression
           int x;
           x = 1.23;             // Error
           x = (int) 1.23;       // x = 1

2009-2010             OOP - http://mim.hus.edu.vn/elearning   5
Các toán tử
   Số học: +, -, *, /
   Gán: =, +=, -=, *=, /=
   Tăng, giảm: ++, --
   So sánh: ==, !=, >, >=, <, <=
   Lôgic: ||, &, !
   Thao tác từng bit: & (AND), | (OR), ^ (XOR)
   Dịch chuyển bit: <<, >>, >>>
   Thứ tự ưu tiên: như trong C

2009-2010        OOP - http://mim.hus.edu.vn/elearning   6
Tên
   Các loại tên: tên biến, tên phương thức, tên lớp
   Quy tắc đặt tên:
           Không được trùng với từ khoá
           Bao gồm các chữ cái, chữ số và dấu _
           Không được bắt đầu bằng chữ số
           Phân biệt chữ hoa chữ thường
   Quy ước đặt tên:
           Tên biến, tên phương thức bắt đầu bằng chữ thường, tên
            lớp bắt đầu bằng chữ hoa, tên hằng viết hoa hoàn toàn
           Nếu tên là một chuỗi các từ thì chữ cái đầu các từ sau đều
            viết hoa (VD: oneVariable, oneMethod, OneClass)


2009-2010                  OOP - http://mim.hus.edu.vn/elearning         7
Biến (1)
   Lưu giữ giá trị thuộc kiểu dữ liệu nào đó
   Định nghĩa biến
           Khai báo:
                typeName variableName; // dễ gây lỗi
           Khai báo và khởi tạo giá trị biến:
                typeName variableName = value;
           Ví dụ:
                String greeting = "Hello, World!";
                PrintStream printer = System.out;
                int luckyNumber = 13;

2009-2010                   OOP - http://mim.hus.edu.vn/elearning   8
Biến (2)
   Thay đổi (gán) giá trị biến:
           variableName = value;
           Ví dụ:
                int luckyNumber = 13;
                luckyNumber = 12;
           Như trong C, có phép gán dạng +=, -=, *=, /=,
            ++, --
   Khái niệm hằng trong Java: biến chỉ có thể
    gán giá trị một lần
           final typeName CONSTNAME;
           final typeName CONSTNAME = value;

2009-2010                OOP - http://mim.hus.edu.vn/elearning   9
Câu lệnh điều khiển (1)
   Cú pháp câu lệnh điều khiển như trong C
   Lệnh điều kiện
           if (condition)
                    statement1
            else
                  statement2
           (condition) ? statement1 : statement2;
           switch (variable){
              case <value1>: statement1
                                    break;
                …
                case < valuen>: statementn
                                break;
                default:            statementn+1
            }

2009-2010                        OOP - http://mim.hus.edu.vn/elearning   10
Câu lệnh điều khiển (2)
   Lệnh lặp
           for (initialization; condition; update)
               statement
           while (condition)
               statement
           do
               statement
            while (condition);
           Điều khiển trong vòng lặp:
                Chuyển sang bước lặp tiếp theo                continue;
                Thoát khỏi vòng lặp                           break;


2009-2010                   OOP - http://mim.hus.edu.vn/elearning          11
Đối tượng và lớp
   Đối tượng (object): Thực thể mà ta thao tác trong
    chương trình (bằng cách gọi các phương thức)
   Mỗi đối tượng thuộc vào một lớp (class):
           System.out thuộc lớp PrintStream




2009-2010               OOP - http://mim.hus.edu.vn/elearning   12
Phương thức (1)
   Phương thức (method): Dãy lệnh thao tác
    trên dữ liệu của các đối tượng
   Các đối tượng được xử lí trong chương trình
    bằng cách gọi tới các phương thức (hàm) của
    đối tượng đó
   Tập các phương thức của một lớp gọi là giao
    diện của lớp đó
           Đặc tả giao diện cho biết người ta có thể làm gì
            với đối tượng


2009-2010                OOP - http://mim.hus.edu.vn/elearning   13
Phương thức (2)
   Khi sử dụng một phương thức, cần biết các
    yếu tố sau:
           Tên phương thức
           Tham biến ẩn (implicit parameter): phương thức
            đó của đối tượng nào
           Các tham biến hiện (explicit parameters) và kiểu
            của chúng: dữ liệu đầu vào (input) của phương
            thức, tức là các đối của phương thức/hàm
           Giá trị trả lại (return value) và kiểu của nó
           Quyền truy nhập tới phương thức đó (private,
            public, protected)

2009-2010               OOP - http://mim.hus.edu.vn/elearning   14
Phương thức (3)
   Một phương thức có thể không có tham biến hiện
   Một phương thức cũng có thể không có tham biến
    ẩn, đó là trường hợp của các phương thức tĩnh
    (static)
   Một phương thức có thể không trả lại giá trị nào, khi
    đó kiểu trả lại của phương thức là void
   Tên phương thức là tải bội (overloaded) nếu như
    trong một lớp có định nghĩa 2 phương thức trùng tên
    nhưng danh sách các kiểu tham biến hiện khác nhau



2009-2010           OOP - http://mim.hus.edu.vn/elearning   15
Phương thức (4)
   Phương thức đặc biệt
           Mỗi lớp có một hay nhiều hàm dựng (constructor)
                Được gọi khi cần tạo một đối tượng mới thuộc lớp đó
                Tên hàm dựng trùng với tên lớp
                Giá trị trả lại của hàm dựng là một đối tượng của lớp đó
                Mục đích của hàm dựng là khởi tạo giá trị cho các thuộc
                 tính của đối tượng đó
           Trong Java không có hàm huỷ (destructor). Việc
            giải phóng bộ nhớ của đối tượng được thực hiện
            tự động

2009-2010                    OOP - http://mim.hus.edu.vn/elearning      16
Định nghĩa phương thức
   Trong một lớp, khi khai báo phương thức cần chỉ ra:
    Quyền truy nhập phương thức, kiểu giá trị trả lại, tên
    phương thức, danh sách tham biến hiện (kiểu dữ liệu, tên
    tham biến)
        VD 1: 2 phương thức sau thuộc giao diện của lớp String
              public int length()
               // return type: int; no explicit parameter
              public String
                       replace(String target, String replacement)
               // return type: String;
               // 2 explicit parameters of type String
        VD 2: println là tên phương thức tải bội của lớp PrintStream
              public void println(String output)
              public void println(int output)

        2009-2010            OOP - http://mim.hus.edu.vn/elearning   17
Lời gọi phương thức (1)
   Mỗi lời gọi phương thức xác định đối tượng có
    phương thức (tham biến ẩn), tên phương thức và
    danh sách các tham biến hiện
           VD: System.out.println("Hello")
                System.out là tham biến ẩn tương ứng với tên đối tượng
                println là tên phương thức
                "Hello" là tham biến hiện - xâu cần in ra
   Khi định nghĩa một phương thức trong một lớp, nếu
    cần gọi tới một phương thức khác của cùng lớp đó
    thì không cần chỉ ra tham biến ẩn của phương thức
    gọi đến.

2009-2010                    OOP - http://mim.hus.edu.vn/elearning        18
Lời gọi phương thức (2)
   Ví dụ
           String greeting = "Hello, World!";
           System.out.println(greeting.length());




2009-2010              OOP - http://mim.hus.edu.vn/elearning   19
Sử dụng đối tượng (1)
   Xét ví dụ thao tác với các đối tượng hình chữ nhật
           Trong thư viện các lớp có sẵn trong Java, có lớp
            Rectangle bao gồm các đối tượng hình chữ nhật
   Đây là 3 đối tượng hình chữ nhật:




2009-2010                 OOP - http://mim.hus.edu.vn/elearning   20
Sử dụng đối tượng (2)
   Các thuộc tính (dữ liệu) của các đối tượng hình
    chữ nhật gồm:
       x, y: Toạ độ đỉnh góc trên bên trái hình chữ nhật
       width, height: chiều rộng, chiều cao hình chữ nhật




    2009-2010           OOP - http://mim.hus.edu.vn/elearning   21
Sử dụng đối tượng (3)
   Giao diện (tập các phương thức) của lớp Rectangle:
           Nhiều hàm dựng, trong đó có Rectangle(int x, int y,
            int width, int height)
           Một số phương thức cho phép lấy giá trị các thuộc tính của 1
            đối tượng hình chữ nhật như getX(), getWidth(), ...
           Một số phương thức cho phép thay đổi giá trị các thuộc tính
            của 1 đối tượng hình chữ nhật như setSize(int width,
            int height), translate(int x, int y), ...
           Một số phương thức khác cho phép thao tác với các đối
            tượng hình chữ nhật và các điểm




2009-2010                  OOP - http://mim.hus.edu.vn/elearning      22
Sử dụng đối tượng (4)
   Phương thức truy cập (accessor/getter
    method) và phương thức biến đổi
    (mutator/setter method) thuộc tính đối tượng
           VD: truy cập - getX, getY; biến đổi -
            translate
           Dùng để cho phép truy cập và biến đổi giá trị các
            thuộc tính riêng (có quyền truy nhập là private)
            của 1 đối tượng
                Bảo đảm tính toàn vẹn (integrity) dữ liệu khi thao tác
                 trên các thuộc tính này (VD: chiều dài hình chữ nhật
                 không được là số âm)

2009-2010                    OOP - http://mim.hus.edu.vn/elearning        23
Sử dụng đối tượng (5)
   Tạo 1 đối tượng mới thuộc 1 lớp
       new ClassName(parameters)
            ClassName(parameters) là 1 hàm dựng
            Trả lại tham chiếu (reference) tới đối tượng mới được tạo
       VD: Tạo đối tượng hình chữ nhật
            Rectangle box = new Rectangle(5, 10, 20, 30);
       Cùng 1 đối tượng có thể có nhiều biến kiểu đối tượng tham chiếu
        (trỏ) đến
            Rectangle box2 = box;
       Biến kiểu đối tượng do vậy khác với biến kiểu nguyên thuỷ


     2009-2010                 OOP - http://mim.hus.edu.vn/elearning     24
int luckyNumber = 13;
int luckyNumber2 = luckyNumber;
luckyNumber2 = 12;
Rectangle box = new Rectangle(5, 10, 20, 30);
Rectangle box2 = box;
box2.translate(15, 25);
Sử dụng đối tượng (6)
   Cài đặt 1 chương trình thử nghiệm
           Tạo 1 tệp chứa một lớp mới
                Phần chính của tên tệp phải trùng với tên lớp, phần mở
                 rộng của tên tệp là .java
                Đầu tệp, trước khi định nghĩa lớp phải khai báo các lớp
                 cần sử dụng trong lớp này
           Viết phương thức main (chương trình chính)
                Tạo ra các đối tượng cần xử lí
                Gọi các phương thức để xử lí các đối tượng
                In ra kết quả

2009-2010                    OOP - http://mim.hus.edu.vn/elearning        27
Sử dụng đối tượng (7)
   Khai báo các lớp cần sử dụng
           Thư viện các lớp trong Java được tổ chức thành
            các gói (package)
           Khi khai báo các lớp cần sử dụng phải chỉ ra tên
            gói và tên lớp
                import packageName.ClassName;
                VD, lớp Rectangle nằm trong gói java.awt:
                     import java.awt.Rectangle;
           Thư viện ngầm định được sử dụng trong tất cả
            các tệp chương trình Java là gói java.lang,
            dùng các lớp trong gói này không cần khai báo
            (VD String, System)

2009-2010                   OOP - http://mim.hus.edu.vn/elearning   28
MoveTester.java
01:   import java.awt.Rectangle;
02:
03:   public class MoveTester
04:   {
05:       public static void main(String[] args)
06:       {
07:           Rectangle box = new Rectangle(5, 10, 20, 30);
08:
09:             // Move the rectangle
10:             box.translate(15, 25);
11:
12:             // Print information about the moved rectangle
13:             System.out.println("After moving, the top-left corner is:");
14:             System.out.println(box.getX());
15:             System.out.println(box.getY());
16:       }
17:   }

After moving, the top-left corner is:
20
35
          2009-2010               OOP - http://mim.hus.edu.vn/elearning   29
Thử nghiệm trong môi trường
tương tác BlueJ




2009-2010   OOP - http://mim.hus.edu.vn/elearning   30
API Documentation
   API: Application Programming Interface
   Tài liệu tra cứu các thư viện chương trình - liệt kê các lớp và các
    phương thức
   Khi lập trình:
           Tra cứu API doc để biết cách sử dụng, thao tác với các đối tượng
            thuộc các lớp đã có sẵn
           Tạo API doc cho các lớp của mình để có thể sử dụng lại
   Thư viện Java chuẩn:
           http://java.sun.com/j2se/1.5/docs/api/index.html
           Có thể tải về trên máy


2009-2010                    OOP - http://mim.hus.edu.vn/elearning             31
API doc của lớp Rectangle




2009-2010   OOP - http://mim.hus.edu.vn/elearning   33
Danh sách các phương thức
của lớp Rectangle




2009-2010   OOP - http://mim.hus.edu.vn/elearning   34
Phương thức translate




2009-2010   OOP - http://mim.hus.edu.vn/elearning   35
Phương thức tĩnh (static)
   Ví dụ:
           Phương thức main
           1 số phương thức trong lớp Math
   Đặc điểm:
           Phương thức tĩnh không có tham biến ẩn
           Lời gọi phương thức tĩnh
                ClassName. methodName(parameters)
                VD:
                 Math.sqrt(4)
           Nhận xét: câu lệnh java ClassName giống như
            lời gọi ClassName.main()

2009-2010                  OOP - http://mim.hus.edu.vn/elearning   36

More Related Content

What's hot

Bai04 tao vasudungdoituong
Bai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai04 tao vasudungdoituongNhuận Lê Văn
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPix Nhox
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Đông Lương
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngNguyễn Quang Thiện
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaTráng Hà Viết
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcmHong Phuoc Nguyen
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPix Nhox
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
Oop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoOop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoTráng Hà Viết
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
 

What's hot (20)

Bai11 ooad bieu_dolop
Bai11 ooad bieu_dolopBai11 ooad bieu_dolop
Bai11 ooad bieu_dolop
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Bai04 tao vasudungdoituong
Bai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai04 tao vasudungdoituong
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09a
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối Tượng
 
Oop 0
Oop 0Oop 0
Oop 0
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Oop unit 02 java cơ bản
Oop unit 02 java cơ bảnOop unit 02 java cơ bản
Oop unit 02 java cơ bản
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 
Oop unit 10 ngoại lệ
Oop unit 10 ngoại lệOop unit 10 ngoại lệ
Oop unit 10 ngoại lệ
 
Java Tieng Viet
Java Tieng VietJava Tieng Viet
Java Tieng Viet
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Oop unit 08 đa hình
Oop unit 08 đa hìnhOop unit 08 đa hình
Oop unit 08 đa hình
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Oop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoOop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng cao
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 

Viewers also liked

Danh mục cable
Danh mục cableDanh mục cable
Danh mục cableThai Hoc Vu
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trìnhThai Hoc Vu
 
Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1Thai Hoc Vu
 
Ngôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đạiNgôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đạiThai Hoc Vu
 
Kids box 2_pupils_book
Kids box 2_pupils_bookKids box 2_pupils_book
Kids box 2_pupils_bookFran Álvarez
 

Viewers also liked (8)

Danh mục cable
Danh mục cableDanh mục cable
Danh mục cable
 
OOP-9
OOP-9OOP-9
OOP-9
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trình
 
Oop 8
Oop 8Oop 8
Oop 8
 
Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1
 
Ngôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đạiNgôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đại
 
68773175 kids-box-1-flashcards
68773175 kids-box-1-flashcards68773175 kids-box-1-flashcards
68773175 kids-box-1-flashcards
 
Kids box 2_pupils_book
Kids box 2_pupils_bookKids box 2_pupils_book
Kids box 2_pupils_book
 

Similar to Oop 2

Similar to Oop 2 (20)

Oop 6
Oop 6Oop 6
Oop 6
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
Oop 7
Oop 7Oop 7
Oop 7
 
Ltc 6
Ltc 6Ltc 6
Ltc 6
 
Chuong8 (2)
Chuong8 (2)Chuong8 (2)
Chuong8 (2)
 
Oop 13
Oop 13Oop 13
Oop 13
 
10. C - Function And Operator Overload
10. C   - Function And Operator Overload10. C   - Function And Operator Overload
10. C - Function And Operator Overload
 
Csdl hdt
Csdl hdtCsdl hdt
Csdl hdt
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Mock object
Mock objectMock object
Mock object
 
Phân tích
Phân tíchPhân tích
Phân tích
 
Sơ lược về Java
Sơ lược về JavaSơ lược về Java
Sơ lược về Java
 
PMMNM.docx
PMMNM.docxPMMNM.docx
PMMNM.docx
 
Oop 5
Oop 5Oop 5
Oop 5
 
Chuong 5
Chuong 5Chuong 5
Chuong 5
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Hdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesHdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languages
 
Oop 3
Oop 3Oop 3
Oop 3
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - php
 

Recently uploaded

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGhoinnhgtctat
 

Recently uploaded (20)

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
 

Oop 2

  • 1. Bài 2: Sử dụng đối tượng Giảng viên: Nguyễn Thị Minh Huyền nguyenthiminhhuyen@hus.edu.vn Đỗ Thanh Hà dothanhha@hus.edu.vn OOP - 2009-2010 http://mim.hus.edu.vn/elearning 1
  • 2. Tài liệu tham khảo  BigJava - Chương 2, 4, 6, 7 2009-2010 OOP - http://mim.hus.edu.vn/elearning 2
  • 3. Kiểu dữ liệu  Chương trình = Cấu trúc dữ liệu + giải thuật (N. Wirth)  Dữ liệu trong Java  Kiểu dữ liệu nguyên thủy: Số nguyên, số thực, kí tự và xâu kí tự, lôgic (boolean)  Đối tượng 2009-2010 OOP - http://mim.hus.edu.vn/elearning 3
  • 4. Kiểu dữ liệu nguyên thủy (1) Tên kiểu Ý nghĩa Kích thước Miền giá trị char kí tự 2 bytes kí tự bảng mã Unicode byte số nguyên rất ngắn 1 byte -128 127 short số nguyên ngắn 2 bytes -215 215 – 1 int số nguyên 4 bytes -231 231 – 1 long số nguyên dài 8 bytes -2255 2255 – 1 float số thực (chính xác đến 4 bytes 1.4*10-45 3.4*1038 6 chữ số thập phân) double số thực (chính xác đến 8 bytes 4.9*10-324 1.7*10308 15 chữ số thập phân) boolean lôgic 1 bit true, false 2009-2010 OOP - http://mim.hus.edu.vn/elearning 4
  • 5. Kiểu dữ liệu nguyên thủy (2)  Kiểu trống: void  Mỗi kiểu nguyên thủy đều có lớp bao (wrapper class): Character, Byte, Short, Integer, Long, Float, Double, Boolean, Void  Xâu kí tự: Lớp String  Ép kiểu (casting):  (typeName) expression  int x;  x = 1.23; // Error  x = (int) 1.23; // x = 1 2009-2010 OOP - http://mim.hus.edu.vn/elearning 5
  • 6. Các toán tử  Số học: +, -, *, /  Gán: =, +=, -=, *=, /=  Tăng, giảm: ++, --  So sánh: ==, !=, >, >=, <, <=  Lôgic: ||, &, !  Thao tác từng bit: & (AND), | (OR), ^ (XOR)  Dịch chuyển bit: <<, >>, >>>  Thứ tự ưu tiên: như trong C 2009-2010 OOP - http://mim.hus.edu.vn/elearning 6
  • 7. Tên  Các loại tên: tên biến, tên phương thức, tên lớp  Quy tắc đặt tên:  Không được trùng với từ khoá  Bao gồm các chữ cái, chữ số và dấu _  Không được bắt đầu bằng chữ số  Phân biệt chữ hoa chữ thường  Quy ước đặt tên:  Tên biến, tên phương thức bắt đầu bằng chữ thường, tên lớp bắt đầu bằng chữ hoa, tên hằng viết hoa hoàn toàn  Nếu tên là một chuỗi các từ thì chữ cái đầu các từ sau đều viết hoa (VD: oneVariable, oneMethod, OneClass) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 7
  • 8. Biến (1)  Lưu giữ giá trị thuộc kiểu dữ liệu nào đó  Định nghĩa biến  Khai báo:  typeName variableName; // dễ gây lỗi  Khai báo và khởi tạo giá trị biến:  typeName variableName = value;  Ví dụ:  String greeting = "Hello, World!";  PrintStream printer = System.out;  int luckyNumber = 13; 2009-2010 OOP - http://mim.hus.edu.vn/elearning 8
  • 9. Biến (2)  Thay đổi (gán) giá trị biến:  variableName = value;  Ví dụ:  int luckyNumber = 13;  luckyNumber = 12;  Như trong C, có phép gán dạng +=, -=, *=, /=, ++, --  Khái niệm hằng trong Java: biến chỉ có thể gán giá trị một lần  final typeName CONSTNAME;  final typeName CONSTNAME = value; 2009-2010 OOP - http://mim.hus.edu.vn/elearning 9
  • 10. Câu lệnh điều khiển (1)  Cú pháp câu lệnh điều khiển như trong C  Lệnh điều kiện  if (condition) statement1 else statement2  (condition) ? statement1 : statement2;  switch (variable){ case <value1>: statement1 break; … case < valuen>: statementn break; default: statementn+1 } 2009-2010 OOP - http://mim.hus.edu.vn/elearning 10
  • 11. Câu lệnh điều khiển (2)  Lệnh lặp  for (initialization; condition; update) statement  while (condition) statement  do statement while (condition);  Điều khiển trong vòng lặp:  Chuyển sang bước lặp tiếp theo continue;  Thoát khỏi vòng lặp break; 2009-2010 OOP - http://mim.hus.edu.vn/elearning 11
  • 12. Đối tượng và lớp  Đối tượng (object): Thực thể mà ta thao tác trong chương trình (bằng cách gọi các phương thức)  Mỗi đối tượng thuộc vào một lớp (class):  System.out thuộc lớp PrintStream 2009-2010 OOP - http://mim.hus.edu.vn/elearning 12
  • 13. Phương thức (1)  Phương thức (method): Dãy lệnh thao tác trên dữ liệu của các đối tượng  Các đối tượng được xử lí trong chương trình bằng cách gọi tới các phương thức (hàm) của đối tượng đó  Tập các phương thức của một lớp gọi là giao diện của lớp đó  Đặc tả giao diện cho biết người ta có thể làm gì với đối tượng 2009-2010 OOP - http://mim.hus.edu.vn/elearning 13
  • 14. Phương thức (2)  Khi sử dụng một phương thức, cần biết các yếu tố sau:  Tên phương thức  Tham biến ẩn (implicit parameter): phương thức đó của đối tượng nào  Các tham biến hiện (explicit parameters) và kiểu của chúng: dữ liệu đầu vào (input) của phương thức, tức là các đối của phương thức/hàm  Giá trị trả lại (return value) và kiểu của nó  Quyền truy nhập tới phương thức đó (private, public, protected) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 14
  • 15. Phương thức (3)  Một phương thức có thể không có tham biến hiện  Một phương thức cũng có thể không có tham biến ẩn, đó là trường hợp của các phương thức tĩnh (static)  Một phương thức có thể không trả lại giá trị nào, khi đó kiểu trả lại của phương thức là void  Tên phương thức là tải bội (overloaded) nếu như trong một lớp có định nghĩa 2 phương thức trùng tên nhưng danh sách các kiểu tham biến hiện khác nhau 2009-2010 OOP - http://mim.hus.edu.vn/elearning 15
  • 16. Phương thức (4)  Phương thức đặc biệt  Mỗi lớp có một hay nhiều hàm dựng (constructor)  Được gọi khi cần tạo một đối tượng mới thuộc lớp đó  Tên hàm dựng trùng với tên lớp  Giá trị trả lại của hàm dựng là một đối tượng của lớp đó  Mục đích của hàm dựng là khởi tạo giá trị cho các thuộc tính của đối tượng đó  Trong Java không có hàm huỷ (destructor). Việc giải phóng bộ nhớ của đối tượng được thực hiện tự động 2009-2010 OOP - http://mim.hus.edu.vn/elearning 16
  • 17. Định nghĩa phương thức  Trong một lớp, khi khai báo phương thức cần chỉ ra: Quyền truy nhập phương thức, kiểu giá trị trả lại, tên phương thức, danh sách tham biến hiện (kiểu dữ liệu, tên tham biến)  VD 1: 2 phương thức sau thuộc giao diện của lớp String  public int length() // return type: int; no explicit parameter  public String replace(String target, String replacement) // return type: String; // 2 explicit parameters of type String  VD 2: println là tên phương thức tải bội của lớp PrintStream  public void println(String output)  public void println(int output) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 17
  • 18. Lời gọi phương thức (1)  Mỗi lời gọi phương thức xác định đối tượng có phương thức (tham biến ẩn), tên phương thức và danh sách các tham biến hiện  VD: System.out.println("Hello")  System.out là tham biến ẩn tương ứng với tên đối tượng  println là tên phương thức  "Hello" là tham biến hiện - xâu cần in ra  Khi định nghĩa một phương thức trong một lớp, nếu cần gọi tới một phương thức khác của cùng lớp đó thì không cần chỉ ra tham biến ẩn của phương thức gọi đến. 2009-2010 OOP - http://mim.hus.edu.vn/elearning 18
  • 19. Lời gọi phương thức (2)  Ví dụ  String greeting = "Hello, World!";  System.out.println(greeting.length()); 2009-2010 OOP - http://mim.hus.edu.vn/elearning 19
  • 20. Sử dụng đối tượng (1)  Xét ví dụ thao tác với các đối tượng hình chữ nhật  Trong thư viện các lớp có sẵn trong Java, có lớp Rectangle bao gồm các đối tượng hình chữ nhật  Đây là 3 đối tượng hình chữ nhật: 2009-2010 OOP - http://mim.hus.edu.vn/elearning 20
  • 21. Sử dụng đối tượng (2)  Các thuộc tính (dữ liệu) của các đối tượng hình chữ nhật gồm:  x, y: Toạ độ đỉnh góc trên bên trái hình chữ nhật  width, height: chiều rộng, chiều cao hình chữ nhật 2009-2010 OOP - http://mim.hus.edu.vn/elearning 21
  • 22. Sử dụng đối tượng (3)  Giao diện (tập các phương thức) của lớp Rectangle:  Nhiều hàm dựng, trong đó có Rectangle(int x, int y, int width, int height)  Một số phương thức cho phép lấy giá trị các thuộc tính của 1 đối tượng hình chữ nhật như getX(), getWidth(), ...  Một số phương thức cho phép thay đổi giá trị các thuộc tính của 1 đối tượng hình chữ nhật như setSize(int width, int height), translate(int x, int y), ...  Một số phương thức khác cho phép thao tác với các đối tượng hình chữ nhật và các điểm 2009-2010 OOP - http://mim.hus.edu.vn/elearning 22
  • 23. Sử dụng đối tượng (4)  Phương thức truy cập (accessor/getter method) và phương thức biến đổi (mutator/setter method) thuộc tính đối tượng  VD: truy cập - getX, getY; biến đổi - translate  Dùng để cho phép truy cập và biến đổi giá trị các thuộc tính riêng (có quyền truy nhập là private) của 1 đối tượng  Bảo đảm tính toàn vẹn (integrity) dữ liệu khi thao tác trên các thuộc tính này (VD: chiều dài hình chữ nhật không được là số âm) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 23
  • 24. Sử dụng đối tượng (5)  Tạo 1 đối tượng mới thuộc 1 lớp  new ClassName(parameters)  ClassName(parameters) là 1 hàm dựng  Trả lại tham chiếu (reference) tới đối tượng mới được tạo  VD: Tạo đối tượng hình chữ nhật  Rectangle box = new Rectangle(5, 10, 20, 30);  Cùng 1 đối tượng có thể có nhiều biến kiểu đối tượng tham chiếu (trỏ) đến  Rectangle box2 = box;  Biến kiểu đối tượng do vậy khác với biến kiểu nguyên thuỷ 2009-2010 OOP - http://mim.hus.edu.vn/elearning 24
  • 25. int luckyNumber = 13; int luckyNumber2 = luckyNumber; luckyNumber2 = 12;
  • 26. Rectangle box = new Rectangle(5, 10, 20, 30); Rectangle box2 = box; box2.translate(15, 25);
  • 27. Sử dụng đối tượng (6)  Cài đặt 1 chương trình thử nghiệm  Tạo 1 tệp chứa một lớp mới  Phần chính của tên tệp phải trùng với tên lớp, phần mở rộng của tên tệp là .java  Đầu tệp, trước khi định nghĩa lớp phải khai báo các lớp cần sử dụng trong lớp này  Viết phương thức main (chương trình chính)  Tạo ra các đối tượng cần xử lí  Gọi các phương thức để xử lí các đối tượng  In ra kết quả 2009-2010 OOP - http://mim.hus.edu.vn/elearning 27
  • 28. Sử dụng đối tượng (7)  Khai báo các lớp cần sử dụng  Thư viện các lớp trong Java được tổ chức thành các gói (package)  Khi khai báo các lớp cần sử dụng phải chỉ ra tên gói và tên lớp  import packageName.ClassName;  VD, lớp Rectangle nằm trong gói java.awt:  import java.awt.Rectangle;  Thư viện ngầm định được sử dụng trong tất cả các tệp chương trình Java là gói java.lang, dùng các lớp trong gói này không cần khai báo (VD String, System) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 28
  • 29. MoveTester.java 01: import java.awt.Rectangle; 02: 03: public class MoveTester 04: { 05: public static void main(String[] args) 06: { 07: Rectangle box = new Rectangle(5, 10, 20, 30); 08: 09: // Move the rectangle 10: box.translate(15, 25); 11: 12: // Print information about the moved rectangle 13: System.out.println("After moving, the top-left corner is:"); 14: System.out.println(box.getX()); 15: System.out.println(box.getY()); 16: } 17: } After moving, the top-left corner is: 20 35 2009-2010 OOP - http://mim.hus.edu.vn/elearning 29
  • 30. Thử nghiệm trong môi trường tương tác BlueJ 2009-2010 OOP - http://mim.hus.edu.vn/elearning 30
  • 31. API Documentation  API: Application Programming Interface  Tài liệu tra cứu các thư viện chương trình - liệt kê các lớp và các phương thức  Khi lập trình:  Tra cứu API doc để biết cách sử dụng, thao tác với các đối tượng thuộc các lớp đã có sẵn  Tạo API doc cho các lớp của mình để có thể sử dụng lại  Thư viện Java chuẩn:  http://java.sun.com/j2se/1.5/docs/api/index.html  Có thể tải về trên máy 2009-2010 OOP - http://mim.hus.edu.vn/elearning 31
  • 32.
  • 33. API doc của lớp Rectangle 2009-2010 OOP - http://mim.hus.edu.vn/elearning 33
  • 34. Danh sách các phương thức của lớp Rectangle 2009-2010 OOP - http://mim.hus.edu.vn/elearning 34
  • 35. Phương thức translate 2009-2010 OOP - http://mim.hus.edu.vn/elearning 35
  • 36. Phương thức tĩnh (static)  Ví dụ:  Phương thức main  1 số phương thức trong lớp Math  Đặc điểm:  Phương thức tĩnh không có tham biến ẩn  Lời gọi phương thức tĩnh  ClassName. methodName(parameters)  VD: Math.sqrt(4)  Nhận xét: câu lệnh java ClassName giống như lời gọi ClassName.main() 2009-2010 OOP - http://mim.hus.edu.vn/elearning 36