SlideShare a Scribd company logo
1 of 18
Download to read offline
Chương 6. Đối tượng và lớp
                                                                         6.1. Khai báo lớp
                                                                         6.2. Tạo các đối tượng
           PHẦN II                                                       6.3. Truy nhập đối tượng qua biến tham chiếu
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG                                                6.4. Mảng đối tượng
                                                                         6.5. Truyền đối tượng cho phương thức
                                                                              Truyề đố tượ                  thứ
                                                                         6.6. Che giấu thông tin
                                                                                   giấ
          GV. Ngô Công Thắng
                       Thắ                                               6.7. Các thành viên tĩnh
                                                                              Cá thà         tĩ
      Bộ môn Công nghệ phần mềm                                          6.8. Đối tượng và lớp hằng
                                                                              Đố tượ và         hằ
        Khoa Công nghệ thông tin                                         6.9. Các lớp lồng nhau
                                                                              Cá lớ lồ
                                                                         Bài tập chương 6
                                                                             tậ

                                                                                       Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                           giả             Phầ 2,Chương                 Thắ     2




         6.1. Khai báo lớp                                                  6.1.1. Cú pháp khai báo lớp
6.1.1. Cú pháp khai báo lớp
       Cú phá        bá lớ                                               class TenLop
6.1.2. Điều khiển truy nhập                                               {
6.1.3. Định nghĩa các biến của lớp                                            //Khai báo các thành viên dữ liệu
6.1.4. Định nghĩa các phương thức của lớp                                     //và phương thức của lớp
6.1.5. Ví dụ về khai báo lớp                                              }
                                                                                  Không có dấu
                                                                                   chấm phẩy




            Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                giả             Phầ 2,Chương                 Thắ     3                 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                           giả             Phầ 2,Chương                 Thắ     4
6.1.2. Điều khiển truy nhập                                                   6.1.2. Điều khiển truy nhập
l Java có các modifier để điều khiển việc
        có              để điề khiể việ                                   l Các từ khóa modifier được đặt trước các
                                                                                 từ khó            đượ đặ trướ cá
  truy nhập dữ liệu, phương thức và lớp:                                    khai báo dữ liệu, phương thức và lớp.
  public dùng cho dữ liệu, phương thức và                                 l Nếu không dùng modifier nào thì mặc định
  lớp; private chỉ dùng cho dữ liệu và                                      dữ liệu và phương thức có thể truy nhập
  phương thức.                                                              từ tất cả các lớp trong cùng package.
l public cho phép truy nhập lớp, dữ liệu và
  phương thức từ bất kỳ lớp nào.
l private chỉ cho phép truy nhập dữ liệu v à
  phương thức từ bên trong lớp.
           thứ từ             lớ
             Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                 giả             Phầ 2,Chương                 Thắ     5                  Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                             giả             Phầ 2,Chương                 Thắ     6




6.1.3. Định nghĩa các biến của lớp                                        6.1.3. Định nghĩa các biến của lớp

l Dữ liệu của lớp chính là các biến của lớp.
      liệ củ lớ chí là          biế củ lớ                                 l   Khác với C++:
                                                                              Khá vớ
  Các biến của lớp được chia thành hai loại,                                  l Các biến của lớp (cả biến thực thể và biến
                                                                                     biế củ lớ (cả biế thự thể         biế
  biến thực thể và biến tĩnh. Biến thực thể là                                  tĩnh) phải khai báo và định nghĩa ngay trong
                                                                                      phả       bá và đị nghĩ
  biến của riêng từng đối tượng, biến tĩnh là                                   mô tả lớp.
                                                                                    tả
  biến của cả lớp đối tượng, dùng chung                                       l Khi khai báo biến lớp có thể khởi tạo giá trị

  cho tất cả các đối tượng.                                                     ban đầu cho chúng.  .
l Cú pháp khai báo biến của lớp giống như
  khai báo biến thông thường.

             Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                 giả             Phầ 2,Chương                 Thắ     7                  Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                             giả             Phầ 2,Chương                 Thắ     8
6.1.4. Định nghĩa các phương thức
                                                                                  6.1.5. Ví dụ về khai báo lớp
              của lớp
l   Các phương thức của lớp phải được định nghĩa                             public class circle
                                                                             {
    ngay trong mô tả lớp.
                   tả                                                          private double radius = 1.0;
l   Hàm tạo là một phương thức đặc biệt của lớp                                public circle()
                                                                               { }
    được dùng để tạo đối tượng của lớp. Hàm tạo
    đượ dù để          đố tượ củ lớ Hà tạ                                      puplic circle(double newRadius) //Ham tao mot doi so
    trong Java giống trong C++, chỉ khác là không
               giố               chỉ khá là                                    {
    được thực hiện tự động mà phải gọi. Trong lớp                                  radius = newRadius;
    có thể có nhiều hàm tạo chồng nhau, mỗi hàm
       thể    nhiề hà tạ chồ              mỗ hà                                }
                                                                               //Tinh dien tich
    tạo cho ta một cách tạo đối tượng của lớp.
               mộ cá tạ đố tượ củ lớ                                           public double findArea()
l   Khác với C++, trong Java không có hàm hủy,
    Khá vớ                            có     hủ                                {
    bởi vì công việc hủy đối tượng và dọn dẹp bộ
        vì      việ hủ đố tượ và          dẹ bộ                                    return 3.14159 * radius * radius;
                                                                               }
    nhớ được JVM thực hiện tự động.                                          }

               Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                   giả             Phầ 2,Chương                 Thắ     9                       Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     10




                                                                                  6.2.1. Biến tham chiếu và kiểu
         6.2. Tạo các đối tượng
                                                                                            tham chiếu
6.2.1. Biến tham chiếu và kiểu tham chiếu                                    l   Trong Java, lớp được coi là kiểu tham chiếu.
6.2.2. Cú pháp tạo đối tượng
       Cú phá tạ đố tượ                                                          Một biến có kiểu lớp được gọi là biến tham
6.2.3. Biến kiểu cơ bản và biến kiểu tham chiếu                                  chiếu đối tượng (khác C++, biến có kiểu lớp là
                                                                                 chiế đố tượ (khá            biế có kiể lớ là
       Biế kiể      bả và biế kiể         chiế
                                                                                 đối tượng). Biến tham chiếu đối tượng có thể
                                                                                     tượ     Biế       chiế đố tượ có thể
6.2.4. Giá trị null                                                              chứa tham chiếu tới đối tương của lớp.
                                                                                 chứ         chiế tớ đố         củ lớ
                                                                             l   Cú pháp khai báo biến tham chiếu đối tượng
                                                                                 như sau:
                                                                                      sau:
                                                                                         TenLop TenBienThamChieu;
                                                                                 Ví dụ: Circle c1;

               Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                   giả             Phầ 2,Chương                 Thắ     11                      Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     12
6.2.3. Biến kiểu cơ bản và biến
    6.2.2. Cú pháp tạo đối tượng
                                                                                         kiểu tham chiếu
l   Để tạo đối tượng của một lớp ta phải gọi
           đố tượ củ mộ lớ          phả gọ                                  l   Biến kiểu cơ bản chứa giá trị của kiểu cơ
                                                                                Biế kiể      bả chứ giá trị       kiể
    hàm tạo của lớp bằng toán tử new                                            bản, biến kiểu tham chiếu chứa giá trị là
            new TenLop(DS Các đối số);                                          tham chiếu tới nơi để đối tượng.
  Ví dụ: new Circle(5);                                                     Biến kiểu cơ bản          int i = 1;             i            1
l Toán tử new tạo đối tượng và trả về tham
                                                                                                                            c
  chiếu tới đối tượng, tham chiếu này phải                                  Biến kiểu tham chiếu      Circle c;                    reference                       c:Circle

  đặt trong một biến tham chiếu.                                                                                                                                  radius = 1
  Ví dụ: Circle c = new Circle();
                                                                                                                                                            Tạo dùng new Circle(1);

              Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                  giả             Phầ 2,Chương                 Thắ     13                          Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ                        14




     6.2.3. Biến kiểu cơ bản và biến
                                                                                               6.2.4. Giá trị null
             kiểu tham chiếu
l Khi gán một biến cho một biến thì giá trị
      gá mộ biế         mộ biế thì giá trị                                  l Nếu một biến kiểu tham chiếu không tham
  của biến này được đưa sang biến kia, hai                                    chiếu tới đối tượng nào thì nó chứa giá trị
                                                                              chiế tớ đố tượ nà thì          chứ giá trị
  biến có cùng giá trị.                                                       null.
                                                                            l Java sẽ gán giá trị mặc định là null cho
                                                                                    sẽ      giá trị   đị là
l Với biến kiểu tham chiếu, vì giá trị là tham
                                                                              biến có kiểu tham chiếu.
  chiếu nên sau khi gán hai biến cùng tham
                                                                            l Java tự động giải phóng v ùng nhớ của đối
  chiếu tới một đối tượng, để lại một đối
                                                                              tượng không được tham chiếu, bởi vậy,
  tượng không được tham chiếu. JVM sẽ tự                                      nếu không cần dùng tới đối tượng nữa, ta
  động tìm và giải phóng các vùng nhớ                                         cho biến tham chiếu tới đối tượng đó bằng
  không được tham chiếu nữa.                                                  null.
              Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                  giả             Phầ 2,Chương                 Thắ     15                          Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ                        16
6.3. Truy nhập đối tượng qua biến                                                  6.3. Truy nhập đối tượng qua
            tham chiếu                                                                    biến tham chiếu
l Sau khi một đối tượng được tạo ta có thể                                     l   Khi đối tượng được tạo, bên trong đối tượng
                                                                                   luôn có một biến tham chiếu tới chính đối tượng
                                                                                        có     biế         chiế tớ chí đố tượ
  truy nhập dữ liệu và gọi các phương thức
       nhậ dữ liệ và       cá         thứ                                          đó. Biến tham chiếu này có tên là từ khóa this.
  của nó qua biến tham chiếu tới nó.
       nó    biế        chiế tớ nó                                             l   Nếu một phương thức có tên tham số trùng với
l Cú pháp:
      phá                                                                          tên biến của lớp thì trong phương thức ta có thể
                                                                                       biế củ lớ thì                  thứ    có thể
                                                                                   truy nhập biến của lớp qua biến this.
                                                                                        nhậ biế củ lớ          biế      .
    TenBienThamChieu.Bien
                                                                                     Ví dụ: Lớp Circle có một biến Radius để chứa bán
                                                                                            Lớ         có      biế        để chứ bá
    TenBienThamChieu.PThuc(DS Đối số)                                                kính, hàm tạo Circle(doube Radius) có tên tham số
                                                                                           hà tạ                         có            số
                                                                                     trùng với tên biến của lớp => Để gán giá trị của tham
                                                                                     trù vớ        biế củ lớ =>           giá trị
l Ví dụ:                                                                             số cho biến lớp ta phải dùng this.Radius=Radius
                                                                                             biế lớ     phả dù
Circle c1 = new Circle(1.5);                                                   l   Biến this cũng có thể dùng trong hàm tạo để gọi
                                                                                   Biế       cũ có thể              hà tạ để
                                                                                   một hàm tạo khác cùng lớp.
                                                                                       hà tạ khá cù lớ
c1.findArea();
                 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                     giả             Phầ 2,Chương                 Thắ     17                    Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     18




                                                                                       6.5. Truyền đối tượng cho
           6.4. Mảng đối tượng
                                                                                              phương thức
l   Mảng các đối tượng thực chất là mảng các biến                              l Giống như mảng, truyền đối tượng cho
    tham chiếu tới đối tượng.
         chiế tớ đố tượ                                                          phương thức thực chất là truyền tham
                                                                                          thứ thự chấ là truyề
l   Để có mảng các đối tượng ta phải khai báo
                cá đố tượ        phả      bá
    mảng các biến tham chiếu tới đối tượng rồi tạo                               chiếu của đối tượng cho phương thức.
                                                                                 chiế củ đố tượ                   thứ
    các đối tượng và gán tham chiếu cho các phần
        đố tượ và             chiế      cá phầ                                   Bởi vậy trong phương thức có thể tác
    tử của mảng.
           mả                                                                    động tới đối tượng giống như ở bên ngoài
    Ví dụ:                                                                       phương thức.
    - Tạo mảng 10 biến tham chiếu tới lớp Circle:
           mả       biế       chiế tớ lớ
                Circle[ ] mang = new Circle[10];                               l Để có thể truyền đối tương cho phương
    - Tạo 10 đối tượng và cho các biến tham chiếu tới
           10    tượ và        cá biế        chiế tớ                             thức thì khi định nghĩa phương thức phải
       chúng:
       chú                                                                       khai báo tham số là tham chiếu tới đối
    for(i=0;i<mang.length;i++) mang[i] = new Circle();
                                                                                 tượng.
                 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                     giả             Phầ 2,Chương                 Thắ     19                    Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     20
6.6. Che giấu thông tin                                                        6.6. Che giấu thông tin
l   Để đảm bảo nguyên tắc bao gói thông tin, dữ                                 l Phương thức trả về dữ liệu lớp được gọi
    liệu của lớp phải là private.                                                 là getter (mutator), phương thức thiết lập
                                                                                                               thứ thiế lậ
l   Khi dữ liệu của lớp để ở private thì bên ngoài
         dữ liệ củ lớ để                thì  ngoà                                 giá trị mới cho dữ liệu lớp được gọi là
                                                                                  giá trị         dữ liệ lớ đượ gọ là
    lớp không thể truy nhập trực tiếp tới dữ liệu của                             setter (accessor).
    đối tượng thông qua tham chiếu tới đối tượng.                               l Phương thức getter thường có tên là:
l   Để cho phép bên ngoài lớp có thể lấy dữ liệu và
             phé        ngoà lớ có thể      dữ liệ và                               l getTenBien
    thay đổi dữ liệu của đối tượng thì trong mô tả
          đổ dữ liệ củ đố tượ thì                 tả                                l isTenBien  nếu kiểu trả về là boolean.
                                                                                                 nế kiể trả
    lớp phải có phương thức trả về dữ liệu lớp và
                                                                                l   Phương thức setter thường có tên là:
                                                                                           thứ         thườ có       là
    thiết lập giá trị mới cho dữ liệu lớp.
    thiế lậ giá trị           dữ liệ lớ
                                                                                    l   setTenBien

                  Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     21                   Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     22




          6.7. Các thành viên tĩnh                                                       6.7. Các thành viên tĩnh
l   Giống như C++, các biến và phương thức của                                  l   Để khai báo biến và phương thức tĩnh ta
    lớp được chia thành hai loại:                                                   đặt từ khóa static trong khai báo biến và
                                                                                        từ khó                    bá biế và
    l   Biến và phương thức thực thể
        Biế và         thứ thự thể                                                  phương thức.
                                                                                             thứ
    l   Biến và phương thức tĩnh
        Biế và         thứ tĩ                                                       private static int numberOfObjects;
l   Biến và phương thức thực thể là của đối tượng,
    Biế và           thứ thự thể           đố tượ                                   public static int getNumberOfObjects()
    chúng gắn với đối tượng.
    chú gắ vớ đố tượ                                                                { }
l   Bi ến và phương thức tĩnh là của lớp, được dùng                             l   Để khai báo hằng của lớp, ta thêm từ
    chung bởi tất cả các đối tượng của lớp. Nếu một                                 khóa final trong khai báo biến tĩnh. Ví dụ:
    đối tượng thay đổi biến tĩnh thì các đối tượng
        tượ        đổ biế tĩ thì         đố tượ                                     private final static double PI = 3.1515;
    tượng khác cùng lớp sẽ bị ảnh hưởng.
    tượ khá cù lớ sẽ                 hưở
                  Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     23                   Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     24
6.7. Các thành viên tĩnh                                                       6.8. Đối tượng và lớp hằng
l   Phương thức thực thể được gọi theo cú                                        l   Một đối tượng mà dữ liệu của nó không thể thay
    pháp sau:
    phá                                                                              đổi từ khi sinh ra được là đối tượng hằng và lớp
                                                                                          từ            đượ là đố tượ hằ và
                                                                                     của nó được gọi là lớp hằng.
                                                                                           nó đượ gọ là       hằ
    BienThamChieuDT.TenPhuongThuc()
                                                                                 l   Để có lớp và đối tượng hằng chỉ cần cho tất cả
                                                                                                và đố tượ hằ chỉ                 tấ cả
l   Phương thức tĩnh có thể được gọi theo                                            dữ liệu là private và bỏ tất cả các phương thức
                                                                                         liệ là         và        cả              thứ
    hai cách:
        cá                                                                           setter.
    BienThamChieuDT.TenPhuongThuc()                                              l   Lưu ý: Một lớp có tất cả dữ liệu là private và
    TenLop.TenPhuongThuc()                                                           không có phương thức setter chưa chắc đã là
                                                                                             có           thứ              chắ      là
l   Chỉ nên gọi phương thức tĩnh dùng tên                                            lớp hằng, vì nếu phương thức getter mà trả về
                                                                                          hằ    vì               thứ         mà trả
                                                                                     tham chiếu tới dữ liệu lớp thì vẫn có thể thay đổi
                                                                                            chiế tớ dữ liệ lớ thì        có thể       đổ
    lớp.                                                                             được.
                   Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                       giả             Phầ 2,Chương                 Thắ     25                         Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                           giả             Phầ 2,Chương                 Thắ     26




           6.9. Các lớp lồng nhau                                                           6.9. Các lớp lồng nhau
l   Kh ác với C++, Java cho phép mô tả một lớp bên                               l   Lớp bên trong một lớp khác có các đặc
    trong mô tả một lớp khác. Đây được gọi là sự
              tả    lớ khá        đượ gọ là                                          điểm sau:
                                                                                     điể
    lồng nhau của các lớp.
               củ cá lớ
                                                                                     l Đối tượng của lớp trong có thể tạo bên trong
l   Lớp bên trong một lớp khác có các đặc điểm
                   mộ lớ khá có       đặ điể                                           lớp ngoài hoặc bên trong một lớp khác.
                                                                                           ngoà hoặ              mộ lớ khá
    sau:
                                                                                     l Nếu tạo trong lớp khác thì theo cú pháp sau:
                                                                                            tạ       lớ khá thì        cú phá
    l   Có thể truy nhập biến và phương thức của lớp ngoài
           thể      nhậ biế và              thứ củ lớ ngoà
                                                                                          l Nế u lớp bên trong không phải static thì phải tạo
        chứa nó.
        chứ nó
                                                                                            đối tượng lớp ngoài trước, sau đó dùng:
                                                                                                tượ lớ ngoà trướ           đó
    l   Có thể khai báo là public, private và protected giống
           thể      bá là                  và            giố                         TenLopNgoai.TenLopTrong TenBien = DoiTuongLopNgoai. new TenLopTrong();
        như các thành viên của lớp ngoài.
             cá thà         củ lớ ngoà                                                    l Nế ulớp bên trong là static thì chỉ cần dùng cú
                                                                                                lớ            là        thì chỉ     dù cú
    l   Có thể khai báo là static. Nếu lớp trong là static thì
           thể      bá là          Nế lớ         là        thì                              pháp sau:
                                                                                            phá
        không thể truy nhập các thành viên không phải tĩnh
               thể     nhậ cá thà                   phả tĩ                             TenLopNgoai.TenLopTrong TenBien = TenLopNgoai. new TenLopTrong();
        của lớp ngoài.
            lớ ngoà
                   Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                       giả             Phầ 2,Chương                 Thắ     27                         Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng
                                                                                                           giả             Phầ 2,Chương                 Thắ     28
Chương 7. Xâu ký tự                                                       7.1. Xâu ký tự trong Java
7.1. Xâu ký tự trong Java
            tự                                                            l   Một xâu ký tự là một dãy các ký tự. Khác với
                                                                                          tự             cá     tự Khá vớ
                                                                              C++, trong Java xâu ký tự không phải là mảng
                                                                                                       tự        phả là
7.2. Lớp String                                                               các ký tự mà là một đối tượng.
                                                                                      tự           đố tượ
7.3. Lớp Character
     Lớ                                                                   l   Java có 3 lớp xâu ký tự được dùng để lưu trữ và
                                                                                    có lớ           tự đượ dù để          trữ
                                                                              xử lý các xâu ký tự: Lớp String, lớp StringBuffer
                                                                                    cá         tự Lớ           lớ
7.4. Lớp StringBuffer                                                         và lớp StringTokenizer.
7.5. Lớp StringTokenizer                                                  l   Lớp String được dùng để tạo ra các xâu ký tự cố
                                                                                          đượ dù để             cá         tự
Bài tập chương 7                                                              định, không thể thay đổi được. Lớp StringBuffer
                                                                                           thể      đổ đượ Lớ
                                                                              được dùng để tạo ra các xâu ký tự có thể thay
                                                                              đượ dù để             cá          tự   thể
                                                                              đổi được. Lớp StringTokenizer được dùng để
                                                                                  đượ Lớ                      đượ dù để
                                                                              lưu trữ các xâu ký tự và tách ra các xâu con.
                                                                                  trữ            tự            cá
            Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                 giả             Phầ 2,Chương                 Thắ     1                         Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                     giả             Phầ 2,Chương                 Thắ               2




                                                                                                                        String

                                                                                      +String()

           7.2. Lớp String                                                            +String(value: String)
                                                                                      +String(value: char[])
                                                                                      +charAt(index: int): char
                                                                                      +compareTo(anotherString: String): int
                                                                                      +compareToIgnoreCase(anotherString: String): int
                                                                                      +concat(anotherString: String): String
l Lớp java.lang.String được tự động nạp
       java.lang.String đượ tự độ nạ                                                  +endsWithSuffixe(suffix: String): boolean
                                                                                      +equals(anotherString: String): boolean

  vào trong mọi chương trình java => không                                            +equalsIgnoreCase(anotherString: String): boolean
                                                                                      +indexOf(ch: int): int
                                                                                      +indexOf(ch: int, fromIndex: int): int
  cần dùng lệnh nạp (import) lớp.                                                     +indexOf(str: String): int
                                                                                      +indexOf(str: String, fromIndex: int): int
                                                                                      +intern(): String
l Lớp String có nhiều hàm tạo cho phép tạo                                            +regionMatches(toffset: int, other: String, offset: int, len: int): boolean
                                                                                      +length(): int

  các đối tượng xâu ký tự theo nhiều cách                                             +replace(oldChar: char, newChar: char): String
                                                                                      +startsWith(prefix: String): boolean
                                                                                      +subString(beginIndex: int): String
  khác nhau và nhiều phương thức dùng để
  khá         và nhiề          thứ dù để                                              +subString(beginIndex: int, endIndex: int): String
                                                                                      +toCharArray(): char[]

  lấy từng ký tự của xâu, so sánh xâu, tìm
      từ       tự            sá        tì
                                                                                      +toLowerCase(): String
                                                                                      +toString(): String
                                                                                      +toUpperCase(): String
  xâu con, tách xâu con…                                                              +trim(): String
                                                                                      +copyValueOf(data: char[]): String
                                                                                      +valueOf(c: char): String
                                                                                      +valueOf(data: char[]): String
                                                                                      +valueOf(d: double): String
                                                                                      +valueOf(f: float): String
            Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                 giả             Phầ 2,Chương                 Thắ     3               +valueOf(i:àint): String
                                                                                                 B i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                     giả             Phầ 2,Chương                   Thắ             4
                                                                                      +valueOf(l: long): String
7.2. Lớp String                                                   7.2.1. Tạo xâu ký tự lớp String
7.2.1. Tạo xâu ký tự lớp String
       Tạ          tự                                                          l   Lớp String có nhiều hàm tạo để tạo đối
                                                                                              có nhiề hà tạ để        đố
7.2.2. Lấy chiều dài và từng ký tự của xâu
       Lấ chiề dà và            tự                                                 tượng xâu ký tự, hay dùng nhất là hàm tạo
7.2.3. Nối các xâu
       Nố cá                                                                       String(Hằng xâu):
7.2.4. Tách các xâu con
       Tá cá                                                                       String BienXau = new String(Hằng xâu);
                                                                                                        String(Hằ
7.2.5. So sánh xâu
                                                                                   hoặc
                                                                                   hoặ
7.2.6. Chuyển đổi xâu
       Chuyể đổ
                                                                                   String BienXau = Hằng xâu;
                                                                                                    Hằ
7.2.7. Tìm ký tự và xâu con trong một xâu
       Tì     tự                    mộ
7.2.8. Chuyển đổi giữa mảng ký tự và xâu
       Chuyể đổ giữ mả             tự                                          l   Ví dụ:
7.2.9. Chuyển các ký tự và giá trị số thành đối
       Chuyể cá       tự    giá trị   thà đố                                       String strVar = new String(“DHNN1 HN”);
                                                                                                       String(“      HN”
  tượng xâu ký tự
  tượ            tự
                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     5                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     6




                                                                                   7.2.2. Lấy chiều dài và từng ký tự
    7.2.1. Tạo xâu ký tự lớp String
                                                                                                của xâu
l   Một đối tượng xâu ký tự String sau khi tạo                                 l Để lấy chiều dài một xâu ký tự ta dùng
    không thể thay đổi được, tức là nội dung của nó
           thể     đổ đượ tứ là              củ nó                               phương thức length()
    không thay đổi được.                                                       l Để lấy từng ký tự của xâu ta dùng phương
l   Ví dụ:                                                                       thức charAt(index), trong đó index có giá
                                                                                 thứ charAt(index), trong đó        có giá
    String s = new String(“Java”);
                   String(“ Java”                                                trị từ 0 đến chiều dài xâu trừ 1.
                                                                                 trị          chiề dà       trừ
    s = "HTML";                                                                l Ví dụ:
    Khi gán s = “HTML” tạo ra một đối tượng xâu
         gá       HTML”        mộ đố tượ                                           String s = "Welcome";
    mới có nội dung là “HTML” và gán tham chiếu
         có           là HTML”                chiế                                 s.length() cho giá trị 7
                                                                                                  giá trị
    tới s, còn đối tượng xâu có nội dung là “Java”
               đố tượ        có          là Java”
                                                                                   s.charAt(1) cho ký tự ‘e’
                                                                                                       tự
    không được tham chiếu nữa sẽ bị hủy.
            đượ         chiế nữ sẽ
                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     7                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     8
7.2.3. Nối các xâu                                                          7.2.4. Tách các xâu con
l Để nối hai hoặc nhiều xâu ký tự ta có thể                                   l   Có thể lấy ra một phần của đối tượng xâu ký tự
                                                                                     thể        mộ phầ củ đố tượ              tự
  dùng phương thức concat() hoặc dùng                                             bằng phương thức substring(). Phương thức
                                                                                                 thứ substring(). Phương thứ
  phép toán cộng.
  phé toá cộ                                                                      này có 2 dạng:
                                                                                      có dạ
                                                                                  l   substring(beginIndex,endIndex) trả về một đối tượng
                                                                                                                      trả       đố tượ
l Ví dụ:                                                                              xâu chứa ký tự từ beginIndex đến endIndex-1.
                                                                                           chứ     tự               đế endIndex-
    String s3 = s1.concat(s2);                                                    l   substring(beginIndex) trả về một đối tượng xâu chứa
                                                                                                            trả        đố tượ        chứ
                                                                                      ký tự từ beginIndex đến cuối xâu.
                                                                                         tự               đế cuố
    hoặc
    hoặ
                                                                              l   Ví dụ:
    String s3 = s1 + s2;
                                                                                  String s = “DHNN1";
l   Trong Java hay dùng phép cộng để ghép
                    dù phé cộ để ghé                                              s.substring(2, 3) cho “N”
    hai hoặc nhiều xâu ký tự.
        hoặ nhiề          tự                                                      s.substring(3) cho “N1”
                                                                                                      N1”

               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                    giả             Phầ 2,Chương                 Thắ     9                       Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                      giả             Phầ 2,Chương                 Thắ     10




           7.2.5. So sánh xâu                                                               7.2.5. So sánh xâu
l Giống C++, trong Java không dùng được                                       l Nếu muốn so sánh hai xâu ký tự không
                                                                                      muố     sá             tự
  các phép toán so sánh để so sánh hai xâu                                      phân biệt chữ hoa, chữ thường thì dùng
  ký tự.
     tự                                                                         phương thức equalsIgnoreCase() hoặc
l Muốn so sánh hai xâu ký tự ta phải dùng
  Muố      sá             tự phả dù                                             compareToIgnoreCase().
  phương thức equals() hoặc compareTo()
          thứ          hoặ
                                                                              l Ví dụ:
    l s1.equals(s2)      cho true nếu nội dung s1 giống
                                  nế nộ           giố
      nội dung s2.                                                              “dhnn1”.equalsIgnoreCase(“DHNN1”) cho
                                                                                 dhnn1” .equalsIgnoreCase(“ DHNN1”
    l s1.compareTo(s2) cho giá trị 0 nếu s1=s2,                                 giá trị true.
                                                                                giá trị
      cho giá trị < 0 nếu s1<s2 và cho giá trị > 0
           giá trị    nế        và     giá trị
      nếu s1>s2. (giống hàm strcmp() trong C++).
                   (giố hà
               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                    giả             Phầ 2,Chương                 Thắ     11                      Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                      giả             Phầ 2,Chương                 Thắ     12
7.2.5. So sánh xâu                                                          7.2.6. Chuyển đổi xâu
l Để kiểm tra xem một xâu có bắt đầu hay
      kiể         mộ      có      đầ                                            l   Mặc dù nội dung của đối tượng xâu String
  kết thúc bằng một xâu nào đó ta dùng                                              không thể thay đổi nhưng ta có thể dùng các
                                                                                            thể     đổ             có thể      cá
  phương thức startWith(prefix) và                                                  phương thức toLowerCase(), toUpperCase(),
                                                                                    trim() và replace() để tạo ra các xâu mới.
                                                                                           và replace()           cá       mớ
  endWith(suffix)
                                                                                l   s.toLowerCase() cho xâu ký tự chữ thường của
                                                                                                                   tự chữ thườ củ
l Ví dụ:                                                                            s.
    String s = “Welcome to Java”;
                             Java”                                              l   s.toUpperCase() cho xâu ký tự chữ hoa của s.
                                                                                                                   tự chữ     củ
    s. startWith(“Wel”) cho giá trị true
       startWith(“ Wel”     giá trị                                             l   s.trim() cho xâu ký tự của s nhưng không có dấu
                                                                                                         tự                     có
    s.endWith(“Java”) cho giá trị true
    s.endWith(“ Java”       giá trị                                                 cách ở hai đầu.
                                                                                                đầ

                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     13                  Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     14




          7.2.6. Chuyển đổi xâu                                                          7.2.6. Chuyển đổi xâu
l   s.replace(oldChar, newChar) cho xâu ký tự của                               l   Ví dụ:
    s nhưng thay thế tất cả các ký tự oldChar bằng
                   thế    cả          tự           bằ                               "Welcome".replace(‘e’, ‘A’) => “WAlcome”
                                                                                    "Welcome".replace(‘             WAlcome”
    ký tự newChar.
                                                                                    "Welcome".replaceFirst("e", "A") => “WAcome”
                                                                                                                         WAcome”
l   s.replaceFirst(oldSubstr,newSubstr) cho xâu ký
                                                                                    "Welcome".replaceAll("e", "A") => “WAlcomA”
                                                                                                                       WAlcomA”
    tự của s nhưng thay thế xâu con oldSubstr bằng
                          thế                        bằ
    xâu con newSubstr tại vị trí xuất hiện đầu tiên.
                         tạ vị trí xuấ hiệ đầ
l   s.replaceAll(oldSubstr,newSubstr) cho xâu ký tự     tự
    của s nhưng thay thế xâu con oldSubstr bằng
                       thế                        bằ
    xâu con newSubstr tại tất cả các vị trí xuất hiện.
                         tạ tấ cả        vị trí xuấ hiệ

                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     15                  Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                    giả             Phầ 2,Chương                 Thắ     16
7.2.7. Tìm ký tự và xâu con trong                                                 7.2.7. Tìm ký tự và xâu con trong
                 một xâu                                                                           một xâu
l   Dùng các phương thức indexOf() và
           cá           thứ           và                                          l   Ví dụ:
    lastIndexOf() để tìm một ký tự hoặc một xâu con
                  để      mộ    tự hoặ mộ                                         "Welcome to Java!".indexOf('W') returns 0.
    trong một xâu ký tự.
          m ộ         tự                                                          "Welcome to Java!".indexOf('x') returns -1.
    indexOf(int ch)                                                               "Welcome to Java!".indexOf('o', 5) returns 9.
    lastIndexOf(int ch)
                                                                                  "Welcome to Java!".indexOf("come") returns 3.
    indexOf(int ch, int fromIndex)
    lastIndexOf(int ch, int endIndex)                                             "Welcome to Java!".indexOf("Java", 5) returns 11.

    indexOf(String str)                                                           "Welcome to Java!".indexOf("java", 5) returns -1.
    lastIndexOf(String str)
    indexOf(String ch, int fromIndex)
    lastIndexOf(String str, int endIndex)

                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                        giả             Phầ 2,Chương                 Thắ     17                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ     18




7.2.8. Chuyển đổi giữa mảng ký tự                                                     7.2.9. Chuyển các ký tự và giá trị
             và xâu                                                                     số thành đối tượng xâu ký tự
l   Chuyển đối tượng xâu ký tự thành mảng các ký                                  l Phương thức valueOf được chồng để
                                                                                            thứ          đượ chồ để
    tự dùng phương thức toCharArray(). Ví dụ:
                   thứ                 Ví                                           chuyển một ký tự hoặc một số thành xâu
    char[] chars = “Java”.toCharArray();
                    Java”                                                           ký tự.
l   Chuyển mảng các ký tự thành đối tượng xâu ký
    Chuyể mả cá          tự thà đố tượ
                                                                                  l Ví dụ:
    tự dùng hàm tạo String(mảng kt) hoặc phương
            hà tạ String(mả         hoặ
    thức valueOf(m ảng kt).                                                           String str = String.valueOf(5.44); cho “5.44”
                                                                                                                              5.44”
l   Ví dụ:
    String str = new String(new char[] {'J','a','v','a'});
    String str = String.valueOf(new char[] {'J','a','v','a'});


                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                        giả             Phầ 2,Chương                 Thắ     19                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ     20
7.3. Lớp Character                                                              7.3. Lớp Character
                                                                                                               Character
l Với mỗi kiểu dữ liệu cơ sở, Java có một
        mỗ kiể dữ liệ      sở        có
  lớp gói (wrapper class): Character,                                         +Character(value: char)
                                                                              +charValue(): char
  Boolean, Byte, Short, Integer, Long, Float,                                 +compareTo(anotherCharacter: Character): int
  Double. Các kiểu dữ liệu cơ sở được                                         +equals(anotherCharacter: Character): boolean
                                                                              +isDigit(ch: char): boolean
  đóng gói trong các lớp tương ứng. Các giá                                   +isLetter(ch: char): boolean
  trị kiểu cơ sở có thể dùng như các đối
  trị kiể     sở    thể           cá đố                                       +isLetterOrDigit(ch: char): boolean
                                                                              +isLowerCase(ch: char): boolean
  tượng.                                                                      +isUpperCase(ch: char): boolean
                                                                              +toLowerCase(ch: char): char
l Tất cả các lớp gói trên đặt trong java.lang                                 +toUpperCase(ch: char): char


               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                    giả             Phầ 2,Chương                 Thắ     21                       Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ     22




             7.3. Lớp Character                                                            7.4. Lớp StringBuffer
    Ví dụ:
l
                                                                              7.4.1. Giới thiệu về lớp StringBuffer
                                                                                     Giớ thiệ về
Character charObj = new Character('b');
charObj.compareTo(new Character('a')) returns 1
                                                                              7.4.2. Tạo đối tượng xâu StringBuffer
charObj.compareTo(new Character('b')) returns 0                               7.4.3. Thay đổi xâu ký tự StringBuffer
                                                                                           đổ         tự
charObj.compareTo(new Character('c')) returns -1
charObj.compareTo(new Character('d') returns –2
charObj.equals(new Character('b')) returns true
charObj.equals(new Character('d')) returns false




               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                    giả             Phầ 2,Chương                 Thắ     23                       Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                       giả             Phầ 2,Chương                 Thắ     24
7.4.1. Giới thiệu về lớp StringBuffer                                          7.4.1. Giới thiệu về lớp StringBuffer
                                                                                                                        StringBuffer
l Lớp StringBuffer được dùng như lớp
                    đượ dù          lớ                                                +append(data: char[]): StringBuffer
  String nhưng mềm dẻo hơn. Nội dung của                                              +append(data: char[], offset: int, len: int): StringBuffer
                                                                                      +append(v: aPrim itiveType): StringBuffer
  đối tượng StringBuffer có thể thay đổi                                              +append(str: String): StringBuffer
                                                                                      +capacity(): int
  trong khi nội dung của đối tượng String thì                                         +charAt(index: int): char
                                                                                      +delete(startIndex: int, endIndex: int): StringBuffer
  không.                                                                              +deleteCharAt(int index): StringBuffer
                                                                                      +insert(index: int, data: char[], offset: int, len: int): StringBuffer
                                                                                      +insert(offset: int, data: char[]): StringBuffer
l Lớp StringBuffer có 3 hàm tạo và trên 30
                    có hà tạ và                                                       +insert(offset: int, b: aPrim itiveType): StringBuffer
                                                                                      +insert(offset: int, str: String): StringBuffer
  phương thức để quản lý vùng nhớ chứa
           thứ để quả       vù nhớ chứ                                                +length(): int
                                                                                      +replace(int startIndex, int endIndex, String str): StringBuffer
  xâu (buffer) và thay đổi xâu.                                                       +reverse(): StringBuffer
                                                                                      +setCharAt(index: int, ch: char): void
                                                                                      +setLength(new Length: int): void
                                                                                      +substring(start: int): StringBuffer
                Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                     giả             Phầ 2,Chương                 Thắ     25          +substring(start:i giảng LT JAVAint): 2,Chương 7 GV. Ngô Công Thắng
                                                                                                         int, end: - Phần StringBuffer
                                                                                                     Bà giả             Phầ 2,Chương                Thắ        26




         7.4.2. Tạo đối tượng xâu                                                        7.4.2. Tạo đối tượng xâu
                StringBuffer                                                                    StringBuffer
l   Có thể tạo đối tượng xâu StringBuffer                                      l   Ví dụ:
    bằng một trong 3 hàm tạo:                                                      StringBuffer s = new StringBuffer(“DHNN1”);
                                                                                                        StringBuffer(“ DHNN1”
    l StringBuffer() => Tạo một đối tượng xâu
                         Tạ mộ đố tượ
      không chứa ký tự nào, có kích thước là 16.
               chứ     tự      có     thướ là
    l StringBuffer(int length) => Tạo một đối tượng
                                  Tạ mộ đố tượ
      xâu không chứa ký tự nào, có kích thước là
      length.
    l StringBuffer(String str) => Tạo một đối tượng
                                  Tạ mộ đố tượ
      xâu chứa str, có kích thước là 16 +
            chứ      có      thư ớ là
      str.length().

                Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                     giả             Phầ 2,Chương                 Thắ     27                         Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                          giả             Phầ 2,Chương                 Thắ     28
7.4.3. Thay đổi xâu ký tự                                                         7.4.3. Thay đổi xâu ký tự
                  StringBuffer                                                                      StringBuffer
l   Dùng phương thức append() để thêm vào cuối xâu
                      thứ append()          và cuố                                l   Dùng phương thức insert() để chèn vào
                                                                                                       thứ insert()     chè và
    StringBuffer các giá trị boolean, char, char array, double,
                   cá giá trị
    float, int, long và String.
                     và                                                               một vị trí xác định trong xâu StringBuffer
l   Ví dụ: Các lệnh sau tạo ra xâu “Welcome to Java”
             Cá lệ          tạ                    Java”                               các giá trị boolean, char, char array,
StringBuffer strBuf = new StringBuffer();                                             double, float, int, long và String.
strBuf.append("Welcome");                                                             insert(p, str) => Chèn str vào vị trí p
strBuf.append(' ');
                                                                                      Ví dụ: StringBuffer s = new StringBuffer(“Welcome to Java”);
strBuf.append("to");                                                                  s.insert(11,”HTML and ”); => “Welcome to HTML and Java”
strBuf.append(' ');
strBuf.append("Java");

                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                        giả             Phầ 2,Chương                 Thắ     29                        Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                            giả             Phầ 2,Chương                 Thắ     30




           7.4.3. Thay đổi xâu ký tự
                                                                                           7.5. Lớp StringTokenizer
                  StringBuffer
l   Xóa ký tự của xâu:                                                            l Một  xâu ký tự có thể được tách thành
    l   delete(beginIndex,endIndex) => Xóa các ký tự từ vị trí
                                       Xó cá          tự   trí                      các xâu con (mảnh, token) bởi các ký
        beginIndex đến endIndex-1
                    đế endIndex-
    l   deleteCharAt(index) => Xóa ký tự tại vị trí index
                               Xó     tự     vị trí
                                                                                    tự phân tách (delimiter). Để có thể
    Đảo ngược xâu: reverse()
                                                                                    tách thành các xâu con ta phải dùng
l       ngượ
                                                                                    đối tượng xâu ký tự lớp
l   Thay thế các ký tự của xâu:
         thế        tự
    replace(beginIndex,endIndex,str) => Thay các ký tự từ
                                             cá     tự
                                                                                    StringTokenizer.
      beginIndex đến endIndex bằng str.
                  đế          bằ                                                  l Lớp StringTokenizer nằm trong gói
l   Thay thế ký tự tại một vị trí: setCharAt(index,ch)
         thế    tự     mộ vị trí                                                    java.util và được tự động import khi
                                                                                    biên dịch.
                   Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                        giả             Phầ 2,Chương                 Thắ     31                        Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                            giả             Phầ 2,Chương                 Thắ     32
7.5. Lớp StringTokenizer                                                         7.5. Lớp StringTokenizer
l   Các hàm tạo:
        hà tạ                                                                   l   Một số phương thức:
    StringTokenizer(String s)                                                       boolean hasMoreTokens()
    StringTokenizer(String s, String delim)                                         String nextToken()
    StringTokenizer(String s, String delim,                                         String nextToken(String delim)
                            boolean returnTokens)
l   Ví dụ:                                                                      l   Ví dụ:
                                                                                    String s = "Java is cool."
    String s = "Java is cool."
                                                                                    StringTokenizer tkz = new StringTokenizer(s);
    StringTokenizer tkz = new StringTokenizer(s);
                                                                                    System.out.println("Tong so token = " + tkz.countTokens());
    StringTokenizer tkz = new StringTokenizer(s,"ac");                              while (tkz.hasMoreTokens())
    StringTokenizer tkz = new StringTokenizer(s,"ac",true);                            System.out.println(tkz.nextToken());



                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     33                       Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                         giả             Phầ 2,Chương                 Thắ     34




              Bài tập chương 7                                                                  Bài tập chương 7
Bài 1. Viết chương trình nhập vào một xâu
       Viế         trì nhậ và mộ                                                Bài 2. Viết phương thức đếm số lần xuất
 ký tự và một ký tự. Gọi phương thức đếm                                         hiện của mỗi chữ số trong một xâu ký tự
 số lần xuất hiện của ký tự trong xâu ký tự                                      String. Tiêu đề phương thức đếm có dạng:
                                                                                              đề         thứ đế có
 String đã nhập. Tiêu đề phương thức đếm                                            public static int[] count(String str)
 có dạng:                                                                           Phương thức trả về mảng 10 phần tử, mỗi
    public static int count(String str, char ch)
                                                                                    phần tử chứa số đếm được cho 1 chữ số.
    Ví dụ: count(“Welcome”,’e’) trả về 2
           count(“ Welcome”        trả
                                                                                    Viết chương trình nhập vào 1 xâu ký tự có
                                                                                    chứa số, hiển thị kết quả đếm cho từng
                                                                                    chữ số có mặt trong xâu.
                                                                                    chữ

                 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                      giả             Phầ 2,Chương                 Thắ     35                       Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                                         giả             Phầ 2,Chương                 Thắ     36
Bài tập chương 7                                                           Bài tập chương 7
Bài 3. Viết phương thức chuyển một số hex
       Viế         thứ chuyể mộ số                                        Bài 4. Viết phương thức chuyển một số nhị
                                                                                 Viế          thứ chuyể mộ số nhị
 cho dưới dạng xâu ký tự thành số nguyên                                   phân cho dưới dạng xâu ký tự thành số
 thập phân. Tiêu đề của phương thức có                                     nguyên thập phân. Tiêu đề của phương
 dạng sau:                                                                 thức có dạng sau:
 int parseHex(String hexString)                                            int parseBin(String binString)
 Viết chương trình nhập vào 1 số hex dưới                                  Viết chương trình nhập vào 1 số binary
 dạng xâu, gọi phương thức parseHex() để                                   dưới dạng xâu, gọi phương thức
 chuyển thành số nguyên thập phân và
 chuyể thà số             thậ       và                                     parseBin() để chuyển thành số nguyên
                                                                                        để chuyể thà số
 đưa kết quả ra màn hình.
       kế quả mà hì                                                        thập phân và đưa kết quả ra màn hình.
                                                                           thậ         và      kế quả mà hì
           Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                giả             Phầ 2,Chương                 Thắ     37               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                           giả             Phầ 2,Chương                 Thắ     38




         Bài tập chương 7                                                           Bài tập chương 7
Bài 5. Viết phương thức chuyển một số
       Viế         thứ chuyể mộ số                                        Bài 6. Viết phương thức sắp xếp các ký tự
                                                                                 Viế          thứ sắ xế cá        tự
 nguyên dương thập phân thành số hex                                       trong một xâu ký tự theo chiều tăng dần
 dưới dạng xâu ký tự. Tiêu đề của phương                                   và trả về xâu ký tự đã sắp xếp. Tiêu đề
 thức có dạng sau:                                                         của phương thức có dạng sau:
 String convertDecimalToHex(int value)                                     String sort(String s)
 Viết chương trình nhập vào 1 số nguyên                                    Viết chương trình nhập vào 1 xâu ký tự,
 dương, gọi phương thức này để chuyển                                      đưa ra màn hình xâu ký tự đã sắp xếp.
 thành số hex và đưa kết quả ra màn hình.
 thà số        và     kế quả mà hì

           Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                giả             Phầ 2,Chương                 Thắ     39               Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                           giả             Phầ 2,Chương                 Thắ     40
Bài tập chương 7                                                           Bài tập chương 7
Bài 7. Viết phương thức kiểm tra xem hai từ
       Viế         thứ kiể               từ                                Bài 8. Viết chương trình nhập vào một xâu
 có phải là anagram. Hai từ được gọi là                                     ký tự. Đếm xem trong xâu đó có bao nhiêu
 anagram với nhau nếu chúng có số chữ                                       từ. Biết rằng các từ phân cách nhau bởi
                                                                                Biế rằ cá từ          cá         bở
 cái giống nhau từng đôi một, không kể đến                                  dấu cách và các dấu chấm câu. Đưa kết
                                                                                  cá và       dấ chấ              kế
                                                                            quả ra màn hình.
 thứ tự. Tiêu đề của phương thức có dạng
 sau:                                                                      Bài 9. Viết chương trình nhập vào một dãy
                                                                            số thực dưới dạng xâu ký tự, các số thực
 boolean isAnagram(String s1, String s2)                                    phân cách nhau bởi ít nhất một dấu cách.
 Viết chương trình nhập vào 2 từ, đưa kết
 Viế           trì nhậ và      từ      kế                                   Tính tổng các số thực và đưa kết quả ra
 quả kiểm tra ra màn hình.
 quả kiể          mà hì                                                     màn hình.
            Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                 giả             Phầ 2,Chương                 Thắ     41              Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng
                                                                                           giả             Phầ 2,Chương                 Thắ     42

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Ch06 07 oop java

  • 1. Chương 6. Đối tượng và lớp 6.1. Khai báo lớp 6.2. Tạo các đối tượng PHẦN II 6.3. Truy nhập đối tượng qua biến tham chiếu LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 6.4. Mảng đối tượng 6.5. Truyền đối tượng cho phương thức Truyề đố tượ thứ 6.6. Che giấu thông tin giấ GV. Ngô Công Thắng Thắ 6.7. Các thành viên tĩnh Cá thà tĩ Bộ môn Công nghệ phần mềm 6.8. Đối tượng và lớp hằng Đố tượ và hằ Khoa Công nghệ thông tin 6.9. Các lớp lồng nhau Cá lớ lồ Bài tập chương 6 tậ Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 2 6.1. Khai báo lớp 6.1.1. Cú pháp khai báo lớp 6.1.1. Cú pháp khai báo lớp Cú phá bá lớ class TenLop 6.1.2. Điều khiển truy nhập { 6.1.3. Định nghĩa các biến của lớp //Khai báo các thành viên dữ liệu 6.1.4. Định nghĩa các phương thức của lớp //và phương thức của lớp 6.1.5. Ví dụ về khai báo lớp } Không có dấu chấm phẩy Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 3 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 4
  • 2. 6.1.2. Điều khiển truy nhập 6.1.2. Điều khiển truy nhập l Java có các modifier để điều khiển việc có để điề khiể việ l Các từ khóa modifier được đặt trước các từ khó đượ đặ trướ cá truy nhập dữ liệu, phương thức và lớp: khai báo dữ liệu, phương thức và lớp. public dùng cho dữ liệu, phương thức và l Nếu không dùng modifier nào thì mặc định lớp; private chỉ dùng cho dữ liệu và dữ liệu và phương thức có thể truy nhập phương thức. từ tất cả các lớp trong cùng package. l public cho phép truy nhập lớp, dữ liệu và phương thức từ bất kỳ lớp nào. l private chỉ cho phép truy nhập dữ liệu v à phương thức từ bên trong lớp. thứ từ lớ Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 5 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 6 6.1.3. Định nghĩa các biến của lớp 6.1.3. Định nghĩa các biến của lớp l Dữ liệu của lớp chính là các biến của lớp. liệ củ lớ chí là biế củ lớ l Khác với C++: Khá vớ Các biến của lớp được chia thành hai loại, l Các biến của lớp (cả biến thực thể và biến biế củ lớ (cả biế thự thể biế biến thực thể và biến tĩnh. Biến thực thể là tĩnh) phải khai báo và định nghĩa ngay trong phả bá và đị nghĩ biến của riêng từng đối tượng, biến tĩnh là mô tả lớp. tả biến của cả lớp đối tượng, dùng chung l Khi khai báo biến lớp có thể khởi tạo giá trị cho tất cả các đối tượng. ban đầu cho chúng. . l Cú pháp khai báo biến của lớp giống như khai báo biến thông thường. Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 7 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 8
  • 3. 6.1.4. Định nghĩa các phương thức 6.1.5. Ví dụ về khai báo lớp của lớp l Các phương thức của lớp phải được định nghĩa public class circle { ngay trong mô tả lớp. tả private double radius = 1.0; l Hàm tạo là một phương thức đặc biệt của lớp public circle() { } được dùng để tạo đối tượng của lớp. Hàm tạo đượ dù để đố tượ củ lớ Hà tạ puplic circle(double newRadius) //Ham tao mot doi so trong Java giống trong C++, chỉ khác là không giố chỉ khá là { được thực hiện tự động mà phải gọi. Trong lớp radius = newRadius; có thể có nhiều hàm tạo chồng nhau, mỗi hàm thể nhiề hà tạ chồ mỗ hà } //Tinh dien tich tạo cho ta một cách tạo đối tượng của lớp. mộ cá tạ đố tượ củ lớ public double findArea() l Khác với C++, trong Java không có hàm hủy, Khá vớ có hủ { bởi vì công việc hủy đối tượng và dọn dẹp bộ vì việ hủ đố tượ và dẹ bộ return 3.14159 * radius * radius; } nhớ được JVM thực hiện tự động. } Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 9 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 10 6.2.1. Biến tham chiếu và kiểu 6.2. Tạo các đối tượng tham chiếu 6.2.1. Biến tham chiếu và kiểu tham chiếu l Trong Java, lớp được coi là kiểu tham chiếu. 6.2.2. Cú pháp tạo đối tượng Cú phá tạ đố tượ Một biến có kiểu lớp được gọi là biến tham 6.2.3. Biến kiểu cơ bản và biến kiểu tham chiếu chiếu đối tượng (khác C++, biến có kiểu lớp là chiế đố tượ (khá biế có kiể lớ là Biế kiể bả và biế kiể chiế đối tượng). Biến tham chiếu đối tượng có thể tượ Biế chiế đố tượ có thể 6.2.4. Giá trị null chứa tham chiếu tới đối tương của lớp. chứ chiế tớ đố củ lớ l Cú pháp khai báo biến tham chiếu đối tượng như sau: sau: TenLop TenBienThamChieu; Ví dụ: Circle c1; Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 11 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 12
  • 4. 6.2.3. Biến kiểu cơ bản và biến 6.2.2. Cú pháp tạo đối tượng kiểu tham chiếu l Để tạo đối tượng của một lớp ta phải gọi đố tượ củ mộ lớ phả gọ l Biến kiểu cơ bản chứa giá trị của kiểu cơ Biế kiể bả chứ giá trị kiể hàm tạo của lớp bằng toán tử new bản, biến kiểu tham chiếu chứa giá trị là new TenLop(DS Các đối số); tham chiếu tới nơi để đối tượng. Ví dụ: new Circle(5); Biến kiểu cơ bản int i = 1; i 1 l Toán tử new tạo đối tượng và trả về tham c chiếu tới đối tượng, tham chiếu này phải Biến kiểu tham chiếu Circle c; reference c:Circle đặt trong một biến tham chiếu. radius = 1 Ví dụ: Circle c = new Circle(); Tạo dùng new Circle(1); Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 13 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 14 6.2.3. Biến kiểu cơ bản và biến 6.2.4. Giá trị null kiểu tham chiếu l Khi gán một biến cho một biến thì giá trị gá mộ biế mộ biế thì giá trị l Nếu một biến kiểu tham chiếu không tham của biến này được đưa sang biến kia, hai chiếu tới đối tượng nào thì nó chứa giá trị chiế tớ đố tượ nà thì chứ giá trị biến có cùng giá trị. null. l Java sẽ gán giá trị mặc định là null cho sẽ giá trị đị là l Với biến kiểu tham chiếu, vì giá trị là tham biến có kiểu tham chiếu. chiếu nên sau khi gán hai biến cùng tham l Java tự động giải phóng v ùng nhớ của đối chiếu tới một đối tượng, để lại một đối tượng không được tham chiếu, bởi vậy, tượng không được tham chiếu. JVM sẽ tự nếu không cần dùng tới đối tượng nữa, ta động tìm và giải phóng các vùng nhớ cho biến tham chiếu tới đối tượng đó bằng không được tham chiếu nữa. null. Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 15 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 16
  • 5. 6.3. Truy nhập đối tượng qua biến 6.3. Truy nhập đối tượng qua tham chiếu biến tham chiếu l Sau khi một đối tượng được tạo ta có thể l Khi đối tượng được tạo, bên trong đối tượng luôn có một biến tham chiếu tới chính đối tượng có biế chiế tớ chí đố tượ truy nhập dữ liệu và gọi các phương thức nhậ dữ liệ và cá thứ đó. Biến tham chiếu này có tên là từ khóa this. của nó qua biến tham chiếu tới nó. nó biế chiế tớ nó l Nếu một phương thức có tên tham số trùng với l Cú pháp: phá tên biến của lớp thì trong phương thức ta có thể biế củ lớ thì thứ có thể truy nhập biến của lớp qua biến this. nhậ biế củ lớ biế . TenBienThamChieu.Bien Ví dụ: Lớp Circle có một biến Radius để chứa bán Lớ có biế để chứ bá TenBienThamChieu.PThuc(DS Đối số) kính, hàm tạo Circle(doube Radius) có tên tham số hà tạ có số trùng với tên biến của lớp => Để gán giá trị của tham trù vớ biế củ lớ => giá trị l Ví dụ: số cho biến lớp ta phải dùng this.Radius=Radius biế lớ phả dù Circle c1 = new Circle(1.5); l Biến this cũng có thể dùng trong hàm tạo để gọi Biế cũ có thể hà tạ để một hàm tạo khác cùng lớp. hà tạ khá cù lớ c1.findArea(); Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 17 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 18 6.5. Truyền đối tượng cho 6.4. Mảng đối tượng phương thức l Mảng các đối tượng thực chất là mảng các biến l Giống như mảng, truyền đối tượng cho tham chiếu tới đối tượng. chiế tớ đố tượ phương thức thực chất là truyền tham thứ thự chấ là truyề l Để có mảng các đối tượng ta phải khai báo cá đố tượ phả bá mảng các biến tham chiếu tới đối tượng rồi tạo chiếu của đối tượng cho phương thức. chiế củ đố tượ thứ các đối tượng và gán tham chiếu cho các phần đố tượ và chiế cá phầ Bởi vậy trong phương thức có thể tác tử của mảng. mả động tới đối tượng giống như ở bên ngoài Ví dụ: phương thức. - Tạo mảng 10 biến tham chiếu tới lớp Circle: mả biế chiế tớ lớ Circle[ ] mang = new Circle[10]; l Để có thể truyền đối tương cho phương - Tạo 10 đối tượng và cho các biến tham chiếu tới 10 tượ và cá biế chiế tớ thức thì khi định nghĩa phương thức phải chúng: chú khai báo tham số là tham chiếu tới đối for(i=0;i<mang.length;i++) mang[i] = new Circle(); tượng. Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 19 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 20
  • 6. 6.6. Che giấu thông tin 6.6. Che giấu thông tin l Để đảm bảo nguyên tắc bao gói thông tin, dữ l Phương thức trả về dữ liệu lớp được gọi liệu của lớp phải là private. là getter (mutator), phương thức thiết lập thứ thiế lậ l Khi dữ liệu của lớp để ở private thì bên ngoài dữ liệ củ lớ để thì ngoà giá trị mới cho dữ liệu lớp được gọi là giá trị dữ liệ lớ đượ gọ là lớp không thể truy nhập trực tiếp tới dữ liệu của setter (accessor). đối tượng thông qua tham chiếu tới đối tượng. l Phương thức getter thường có tên là: l Để cho phép bên ngoài lớp có thể lấy dữ liệu và phé ngoà lớ có thể dữ liệ và l getTenBien thay đổi dữ liệu của đối tượng thì trong mô tả đổ dữ liệ củ đố tượ thì tả l isTenBien nếu kiểu trả về là boolean. nế kiể trả lớp phải có phương thức trả về dữ liệu lớp và l Phương thức setter thường có tên là: thứ thườ có là thiết lập giá trị mới cho dữ liệu lớp. thiế lậ giá trị dữ liệ lớ l setTenBien Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 21 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 22 6.7. Các thành viên tĩnh 6.7. Các thành viên tĩnh l Giống như C++, các biến và phương thức của l Để khai báo biến và phương thức tĩnh ta lớp được chia thành hai loại: đặt từ khóa static trong khai báo biến và từ khó bá biế và l Biến và phương thức thực thể Biế và thứ thự thể phương thức. thứ l Biến và phương thức tĩnh Biế và thứ tĩ private static int numberOfObjects; l Biến và phương thức thực thể là của đối tượng, Biế và thứ thự thể đố tượ public static int getNumberOfObjects() chúng gắn với đối tượng. chú gắ vớ đố tượ { } l Bi ến và phương thức tĩnh là của lớp, được dùng l Để khai báo hằng của lớp, ta thêm từ chung bởi tất cả các đối tượng của lớp. Nếu một khóa final trong khai báo biến tĩnh. Ví dụ: đối tượng thay đổi biến tĩnh thì các đối tượng tượ đổ biế tĩ thì đố tượ private final static double PI = 3.1515; tượng khác cùng lớp sẽ bị ảnh hưởng. tượ khá cù lớ sẽ hưở Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 23 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 24
  • 7. 6.7. Các thành viên tĩnh 6.8. Đối tượng và lớp hằng l Phương thức thực thể được gọi theo cú l Một đối tượng mà dữ liệu của nó không thể thay pháp sau: phá đổi từ khi sinh ra được là đối tượng hằng và lớp từ đượ là đố tượ hằ và của nó được gọi là lớp hằng. nó đượ gọ là hằ BienThamChieuDT.TenPhuongThuc() l Để có lớp và đối tượng hằng chỉ cần cho tất cả và đố tượ hằ chỉ tấ cả l Phương thức tĩnh có thể được gọi theo dữ liệu là private và bỏ tất cả các phương thức liệ là và cả thứ hai cách: cá setter. BienThamChieuDT.TenPhuongThuc() l Lưu ý: Một lớp có tất cả dữ liệu là private và TenLop.TenPhuongThuc() không có phương thức setter chưa chắc đã là có thứ chắ là l Chỉ nên gọi phương thức tĩnh dùng tên lớp hằng, vì nếu phương thức getter mà trả về hằ vì thứ mà trả tham chiếu tới dữ liệu lớp thì vẫn có thể thay đổi chiế tớ dữ liệ lớ thì có thể đổ lớp. được. Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 25 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 26 6.9. Các lớp lồng nhau 6.9. Các lớp lồng nhau l Kh ác với C++, Java cho phép mô tả một lớp bên l Lớp bên trong một lớp khác có các đặc trong mô tả một lớp khác. Đây được gọi là sự tả lớ khá đượ gọ là điểm sau: điể lồng nhau của các lớp. củ cá lớ l Đối tượng của lớp trong có thể tạo bên trong l Lớp bên trong một lớp khác có các đặc điểm mộ lớ khá có đặ điể lớp ngoài hoặc bên trong một lớp khác. ngoà hoặ mộ lớ khá sau: l Nếu tạo trong lớp khác thì theo cú pháp sau: tạ lớ khá thì cú phá l Có thể truy nhập biến và phương thức của lớp ngoài thể nhậ biế và thứ củ lớ ngoà l Nế u lớp bên trong không phải static thì phải tạo chứa nó. chứ nó đối tượng lớp ngoài trước, sau đó dùng: tượ lớ ngoà trướ đó l Có thể khai báo là public, private và protected giống thể bá là và giố TenLopNgoai.TenLopTrong TenBien = DoiTuongLopNgoai. new TenLopTrong(); như các thành viên của lớp ngoài. cá thà củ lớ ngoà l Nế ulớp bên trong là static thì chỉ cần dùng cú lớ là thì chỉ dù cú l Có thể khai báo là static. Nếu lớp trong là static thì thể bá là Nế lớ là thì pháp sau: phá không thể truy nhập các thành viên không phải tĩnh thể nhậ cá thà phả tĩ TenLopNgoai.TenLopTrong TenBien = TenLopNgoai. new TenLopTrong(); của lớp ngoài. lớ ngoà Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 27 Bài giảng LT JAVA - Phần 2,Chương 6 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 28
  • 8. Chương 7. Xâu ký tự 7.1. Xâu ký tự trong Java 7.1. Xâu ký tự trong Java tự l Một xâu ký tự là một dãy các ký tự. Khác với tự cá tự Khá vớ C++, trong Java xâu ký tự không phải là mảng tự phả là 7.2. Lớp String các ký tự mà là một đối tượng. tự đố tượ 7.3. Lớp Character Lớ l Java có 3 lớp xâu ký tự được dùng để lưu trữ và có lớ tự đượ dù để trữ xử lý các xâu ký tự: Lớp String, lớp StringBuffer cá tự Lớ lớ 7.4. Lớp StringBuffer và lớp StringTokenizer. 7.5. Lớp StringTokenizer l Lớp String được dùng để tạo ra các xâu ký tự cố đượ dù để cá tự Bài tập chương 7 định, không thể thay đổi được. Lớp StringBuffer thể đổ đượ Lớ được dùng để tạo ra các xâu ký tự có thể thay đượ dù để cá tự thể đổi được. Lớp StringTokenizer được dùng để đượ Lớ đượ dù để lưu trữ các xâu ký tự và tách ra các xâu con. trữ tự cá Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 1 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 2 String +String() 7.2. Lớp String +String(value: String) +String(value: char[]) +charAt(index: int): char +compareTo(anotherString: String): int +compareToIgnoreCase(anotherString: String): int +concat(anotherString: String): String l Lớp java.lang.String được tự động nạp java.lang.String đượ tự độ nạ +endsWithSuffixe(suffix: String): boolean +equals(anotherString: String): boolean vào trong mọi chương trình java => không +equalsIgnoreCase(anotherString: String): boolean +indexOf(ch: int): int +indexOf(ch: int, fromIndex: int): int cần dùng lệnh nạp (import) lớp. +indexOf(str: String): int +indexOf(str: String, fromIndex: int): int +intern(): String l Lớp String có nhiều hàm tạo cho phép tạo +regionMatches(toffset: int, other: String, offset: int, len: int): boolean +length(): int các đối tượng xâu ký tự theo nhiều cách +replace(oldChar: char, newChar: char): String +startsWith(prefix: String): boolean +subString(beginIndex: int): String khác nhau và nhiều phương thức dùng để khá và nhiề thứ dù để +subString(beginIndex: int, endIndex: int): String +toCharArray(): char[] lấy từng ký tự của xâu, so sánh xâu, tìm từ tự sá tì +toLowerCase(): String +toString(): String +toUpperCase(): String xâu con, tách xâu con… +trim(): String +copyValueOf(data: char[]): String +valueOf(c: char): String +valueOf(data: char[]): String +valueOf(d: double): String +valueOf(f: float): String Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 3 +valueOf(i:àint): String B i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 4 +valueOf(l: long): String
  • 9. 7.2. Lớp String 7.2.1. Tạo xâu ký tự lớp String 7.2.1. Tạo xâu ký tự lớp String Tạ tự l Lớp String có nhiều hàm tạo để tạo đối có nhiề hà tạ để đố 7.2.2. Lấy chiều dài và từng ký tự của xâu Lấ chiề dà và tự tượng xâu ký tự, hay dùng nhất là hàm tạo 7.2.3. Nối các xâu Nố cá String(Hằng xâu): 7.2.4. Tách các xâu con Tá cá String BienXau = new String(Hằng xâu); String(Hằ 7.2.5. So sánh xâu hoặc hoặ 7.2.6. Chuyển đổi xâu Chuyể đổ String BienXau = Hằng xâu; Hằ 7.2.7. Tìm ký tự và xâu con trong một xâu Tì tự mộ 7.2.8. Chuyển đổi giữa mảng ký tự và xâu Chuyể đổ giữ mả tự l Ví dụ: 7.2.9. Chuyển các ký tự và giá trị số thành đối Chuyể cá tự giá trị thà đố String strVar = new String(“DHNN1 HN”); String(“ HN” tượng xâu ký tự tượ tự Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 5 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 6 7.2.2. Lấy chiều dài và từng ký tự 7.2.1. Tạo xâu ký tự lớp String của xâu l Một đối tượng xâu ký tự String sau khi tạo l Để lấy chiều dài một xâu ký tự ta dùng không thể thay đổi được, tức là nội dung của nó thể đổ đượ tứ là củ nó phương thức length() không thay đổi được. l Để lấy từng ký tự của xâu ta dùng phương l Ví dụ: thức charAt(index), trong đó index có giá thứ charAt(index), trong đó có giá String s = new String(“Java”); String(“ Java” trị từ 0 đến chiều dài xâu trừ 1. trị chiề dà trừ s = "HTML"; l Ví dụ: Khi gán s = “HTML” tạo ra một đối tượng xâu gá HTML” mộ đố tượ String s = "Welcome"; mới có nội dung là “HTML” và gán tham chiếu có là HTML” chiế s.length() cho giá trị 7 giá trị tới s, còn đối tượng xâu có nội dung là “Java” đố tượ có là Java” s.charAt(1) cho ký tự ‘e’ tự không được tham chiếu nữa sẽ bị hủy. đượ chiế nữ sẽ Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 7 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 8
  • 10. 7.2.3. Nối các xâu 7.2.4. Tách các xâu con l Để nối hai hoặc nhiều xâu ký tự ta có thể l Có thể lấy ra một phần của đối tượng xâu ký tự thể mộ phầ củ đố tượ tự dùng phương thức concat() hoặc dùng bằng phương thức substring(). Phương thức thứ substring(). Phương thứ phép toán cộng. phé toá cộ này có 2 dạng: có dạ l substring(beginIndex,endIndex) trả về một đối tượng trả đố tượ l Ví dụ: xâu chứa ký tự từ beginIndex đến endIndex-1. chứ tự đế endIndex- String s3 = s1.concat(s2); l substring(beginIndex) trả về một đối tượng xâu chứa trả đố tượ chứ ký tự từ beginIndex đến cuối xâu. tự đế cuố hoặc hoặ l Ví dụ: String s3 = s1 + s2; String s = “DHNN1"; l Trong Java hay dùng phép cộng để ghép dù phé cộ để ghé s.substring(2, 3) cho “N” hai hoặc nhiều xâu ký tự. hoặ nhiề tự s.substring(3) cho “N1” N1” Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 9 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 10 7.2.5. So sánh xâu 7.2.5. So sánh xâu l Giống C++, trong Java không dùng được l Nếu muốn so sánh hai xâu ký tự không muố sá tự các phép toán so sánh để so sánh hai xâu phân biệt chữ hoa, chữ thường thì dùng ký tự. tự phương thức equalsIgnoreCase() hoặc l Muốn so sánh hai xâu ký tự ta phải dùng Muố sá tự phả dù compareToIgnoreCase(). phương thức equals() hoặc compareTo() thứ hoặ l Ví dụ: l s1.equals(s2) cho true nếu nội dung s1 giống nế nộ giố nội dung s2. “dhnn1”.equalsIgnoreCase(“DHNN1”) cho dhnn1” .equalsIgnoreCase(“ DHNN1” l s1.compareTo(s2) cho giá trị 0 nếu s1=s2, giá trị true. giá trị cho giá trị < 0 nếu s1<s2 và cho giá trị > 0 giá trị nế và giá trị nếu s1>s2. (giống hàm strcmp() trong C++). (giố hà Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 11 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 12
  • 11. 7.2.5. So sánh xâu 7.2.6. Chuyển đổi xâu l Để kiểm tra xem một xâu có bắt đầu hay kiể mộ có đầ l Mặc dù nội dung của đối tượng xâu String kết thúc bằng một xâu nào đó ta dùng không thể thay đổi nhưng ta có thể dùng các thể đổ có thể cá phương thức startWith(prefix) và phương thức toLowerCase(), toUpperCase(), trim() và replace() để tạo ra các xâu mới. và replace() cá mớ endWith(suffix) l s.toLowerCase() cho xâu ký tự chữ thường của tự chữ thườ củ l Ví dụ: s. String s = “Welcome to Java”; Java” l s.toUpperCase() cho xâu ký tự chữ hoa của s. tự chữ củ s. startWith(“Wel”) cho giá trị true startWith(“ Wel” giá trị l s.trim() cho xâu ký tự của s nhưng không có dấu tự có s.endWith(“Java”) cho giá trị true s.endWith(“ Java” giá trị cách ở hai đầu. đầ Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 13 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 14 7.2.6. Chuyển đổi xâu 7.2.6. Chuyển đổi xâu l s.replace(oldChar, newChar) cho xâu ký tự của l Ví dụ: s nhưng thay thế tất cả các ký tự oldChar bằng thế cả tự bằ "Welcome".replace(‘e’, ‘A’) => “WAlcome” "Welcome".replace(‘ WAlcome” ký tự newChar. "Welcome".replaceFirst("e", "A") => “WAcome” WAcome” l s.replaceFirst(oldSubstr,newSubstr) cho xâu ký "Welcome".replaceAll("e", "A") => “WAlcomA” WAlcomA” tự của s nhưng thay thế xâu con oldSubstr bằng thế bằ xâu con newSubstr tại vị trí xuất hiện đầu tiên. tạ vị trí xuấ hiệ đầ l s.replaceAll(oldSubstr,newSubstr) cho xâu ký tự tự của s nhưng thay thế xâu con oldSubstr bằng thế bằ xâu con newSubstr tại tất cả các vị trí xuất hiện. tạ tấ cả vị trí xuấ hiệ Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 15 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 16
  • 12. 7.2.7. Tìm ký tự và xâu con trong 7.2.7. Tìm ký tự và xâu con trong một xâu một xâu l Dùng các phương thức indexOf() và cá thứ và l Ví dụ: lastIndexOf() để tìm một ký tự hoặc một xâu con để mộ tự hoặ mộ "Welcome to Java!".indexOf('W') returns 0. trong một xâu ký tự. m ộ tự "Welcome to Java!".indexOf('x') returns -1. indexOf(int ch) "Welcome to Java!".indexOf('o', 5) returns 9. lastIndexOf(int ch) "Welcome to Java!".indexOf("come") returns 3. indexOf(int ch, int fromIndex) lastIndexOf(int ch, int endIndex) "Welcome to Java!".indexOf("Java", 5) returns 11. indexOf(String str) "Welcome to Java!".indexOf("java", 5) returns -1. lastIndexOf(String str) indexOf(String ch, int fromIndex) lastIndexOf(String str, int endIndex) Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 17 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 18 7.2.8. Chuyển đổi giữa mảng ký tự 7.2.9. Chuyển các ký tự và giá trị và xâu số thành đối tượng xâu ký tự l Chuyển đối tượng xâu ký tự thành mảng các ký l Phương thức valueOf được chồng để thứ đượ chồ để tự dùng phương thức toCharArray(). Ví dụ: thứ Ví chuyển một ký tự hoặc một số thành xâu char[] chars = “Java”.toCharArray(); Java” ký tự. l Chuyển mảng các ký tự thành đối tượng xâu ký Chuyể mả cá tự thà đố tượ l Ví dụ: tự dùng hàm tạo String(mảng kt) hoặc phương hà tạ String(mả hoặ thức valueOf(m ảng kt). String str = String.valueOf(5.44); cho “5.44” 5.44” l Ví dụ: String str = new String(new char[] {'J','a','v','a'}); String str = String.valueOf(new char[] {'J','a','v','a'}); Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 19 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 20
  • 13. 7.3. Lớp Character 7.3. Lớp Character Character l Với mỗi kiểu dữ liệu cơ sở, Java có một mỗ kiể dữ liệ sở có lớp gói (wrapper class): Character, +Character(value: char) +charValue(): char Boolean, Byte, Short, Integer, Long, Float, +compareTo(anotherCharacter: Character): int Double. Các kiểu dữ liệu cơ sở được +equals(anotherCharacter: Character): boolean +isDigit(ch: char): boolean đóng gói trong các lớp tương ứng. Các giá +isLetter(ch: char): boolean trị kiểu cơ sở có thể dùng như các đối trị kiể sở thể cá đố +isLetterOrDigit(ch: char): boolean +isLowerCase(ch: char): boolean tượng. +isUpperCase(ch: char): boolean +toLowerCase(ch: char): char l Tất cả các lớp gói trên đặt trong java.lang +toUpperCase(ch: char): char Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 21 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 22 7.3. Lớp Character 7.4. Lớp StringBuffer Ví dụ: l 7.4.1. Giới thiệu về lớp StringBuffer Giớ thiệ về Character charObj = new Character('b'); charObj.compareTo(new Character('a')) returns 1 7.4.2. Tạo đối tượng xâu StringBuffer charObj.compareTo(new Character('b')) returns 0 7.4.3. Thay đổi xâu ký tự StringBuffer đổ tự charObj.compareTo(new Character('c')) returns -1 charObj.compareTo(new Character('d') returns –2 charObj.equals(new Character('b')) returns true charObj.equals(new Character('d')) returns false Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 23 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 24
  • 14. 7.4.1. Giới thiệu về lớp StringBuffer 7.4.1. Giới thiệu về lớp StringBuffer StringBuffer l Lớp StringBuffer được dùng như lớp đượ dù lớ +append(data: char[]): StringBuffer String nhưng mềm dẻo hơn. Nội dung của +append(data: char[], offset: int, len: int): StringBuffer +append(v: aPrim itiveType): StringBuffer đối tượng StringBuffer có thể thay đổi +append(str: String): StringBuffer +capacity(): int trong khi nội dung của đối tượng String thì +charAt(index: int): char +delete(startIndex: int, endIndex: int): StringBuffer không. +deleteCharAt(int index): StringBuffer +insert(index: int, data: char[], offset: int, len: int): StringBuffer +insert(offset: int, data: char[]): StringBuffer l Lớp StringBuffer có 3 hàm tạo và trên 30 có hà tạ và +insert(offset: int, b: aPrim itiveType): StringBuffer +insert(offset: int, str: String): StringBuffer phương thức để quản lý vùng nhớ chứa thứ để quả vù nhớ chứ +length(): int +replace(int startIndex, int endIndex, String str): StringBuffer xâu (buffer) và thay đổi xâu. +reverse(): StringBuffer +setCharAt(index: int, ch: char): void +setLength(new Length: int): void +substring(start: int): StringBuffer Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 25 +substring(start:i giảng LT JAVAint): 2,Chương 7 GV. Ngô Công Thắng int, end: - Phần StringBuffer Bà giả Phầ 2,Chương Thắ 26 7.4.2. Tạo đối tượng xâu 7.4.2. Tạo đối tượng xâu StringBuffer StringBuffer l Có thể tạo đối tượng xâu StringBuffer l Ví dụ: bằng một trong 3 hàm tạo: StringBuffer s = new StringBuffer(“DHNN1”); StringBuffer(“ DHNN1” l StringBuffer() => Tạo một đối tượng xâu Tạ mộ đố tượ không chứa ký tự nào, có kích thước là 16. chứ tự có thướ là l StringBuffer(int length) => Tạo một đối tượng Tạ mộ đố tượ xâu không chứa ký tự nào, có kích thước là length. l StringBuffer(String str) => Tạo một đối tượng Tạ mộ đố tượ xâu chứa str, có kích thước là 16 + chứ có thư ớ là str.length(). Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 27 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 28
  • 15. 7.4.3. Thay đổi xâu ký tự 7.4.3. Thay đổi xâu ký tự StringBuffer StringBuffer l Dùng phương thức append() để thêm vào cuối xâu thứ append() và cuố l Dùng phương thức insert() để chèn vào thứ insert() chè và StringBuffer các giá trị boolean, char, char array, double, cá giá trị float, int, long và String. và một vị trí xác định trong xâu StringBuffer l Ví dụ: Các lệnh sau tạo ra xâu “Welcome to Java” Cá lệ tạ Java” các giá trị boolean, char, char array, StringBuffer strBuf = new StringBuffer(); double, float, int, long và String. strBuf.append("Welcome"); insert(p, str) => Chèn str vào vị trí p strBuf.append(' '); Ví dụ: StringBuffer s = new StringBuffer(“Welcome to Java”); strBuf.append("to"); s.insert(11,”HTML and ”); => “Welcome to HTML and Java” strBuf.append(' '); strBuf.append("Java"); Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 29 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 30 7.4.3. Thay đổi xâu ký tự 7.5. Lớp StringTokenizer StringBuffer l Xóa ký tự của xâu: l Một xâu ký tự có thể được tách thành l delete(beginIndex,endIndex) => Xóa các ký tự từ vị trí Xó cá tự trí các xâu con (mảnh, token) bởi các ký beginIndex đến endIndex-1 đế endIndex- l deleteCharAt(index) => Xóa ký tự tại vị trí index Xó tự vị trí tự phân tách (delimiter). Để có thể Đảo ngược xâu: reverse() tách thành các xâu con ta phải dùng l ngượ đối tượng xâu ký tự lớp l Thay thế các ký tự của xâu: thế tự replace(beginIndex,endIndex,str) => Thay các ký tự từ cá tự StringTokenizer. beginIndex đến endIndex bằng str. đế bằ l Lớp StringTokenizer nằm trong gói l Thay thế ký tự tại một vị trí: setCharAt(index,ch) thế tự mộ vị trí java.util và được tự động import khi biên dịch. Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 31 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 32
  • 16. 7.5. Lớp StringTokenizer 7.5. Lớp StringTokenizer l Các hàm tạo: hà tạ l Một số phương thức: StringTokenizer(String s) boolean hasMoreTokens() StringTokenizer(String s, String delim) String nextToken() StringTokenizer(String s, String delim, String nextToken(String delim) boolean returnTokens) l Ví dụ: l Ví dụ: String s = "Java is cool." String s = "Java is cool." StringTokenizer tkz = new StringTokenizer(s); StringTokenizer tkz = new StringTokenizer(s); System.out.println("Tong so token = " + tkz.countTokens()); StringTokenizer tkz = new StringTokenizer(s,"ac"); while (tkz.hasMoreTokens()) StringTokenizer tkz = new StringTokenizer(s,"ac",true); System.out.println(tkz.nextToken()); Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 33 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 34 Bài tập chương 7 Bài tập chương 7 Bài 1. Viết chương trình nhập vào một xâu Viế trì nhậ và mộ Bài 2. Viết phương thức đếm số lần xuất ký tự và một ký tự. Gọi phương thức đếm hiện của mỗi chữ số trong một xâu ký tự số lần xuất hiện của ký tự trong xâu ký tự String. Tiêu đề phương thức đếm có dạng: đề thứ đế có String đã nhập. Tiêu đề phương thức đếm public static int[] count(String str) có dạng: Phương thức trả về mảng 10 phần tử, mỗi public static int count(String str, char ch) phần tử chứa số đếm được cho 1 chữ số. Ví dụ: count(“Welcome”,’e’) trả về 2 count(“ Welcome” trả Viết chương trình nhập vào 1 xâu ký tự có chứa số, hiển thị kết quả đếm cho từng chữ số có mặt trong xâu. chữ Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 35 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 36
  • 17. Bài tập chương 7 Bài tập chương 7 Bài 3. Viết phương thức chuyển một số hex Viế thứ chuyể mộ số Bài 4. Viết phương thức chuyển một số nhị Viế thứ chuyể mộ số nhị cho dưới dạng xâu ký tự thành số nguyên phân cho dưới dạng xâu ký tự thành số thập phân. Tiêu đề của phương thức có nguyên thập phân. Tiêu đề của phương dạng sau: thức có dạng sau: int parseHex(String hexString) int parseBin(String binString) Viết chương trình nhập vào 1 số hex dưới Viết chương trình nhập vào 1 số binary dạng xâu, gọi phương thức parseHex() để dưới dạng xâu, gọi phương thức chuyển thành số nguyên thập phân và chuyể thà số thậ và parseBin() để chuyển thành số nguyên để chuyể thà số đưa kết quả ra màn hình. kế quả mà hì thập phân và đưa kết quả ra màn hình. thậ và kế quả mà hì Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 37 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 38 Bài tập chương 7 Bài tập chương 7 Bài 5. Viết phương thức chuyển một số Viế thứ chuyể mộ số Bài 6. Viết phương thức sắp xếp các ký tự Viế thứ sắ xế cá tự nguyên dương thập phân thành số hex trong một xâu ký tự theo chiều tăng dần dưới dạng xâu ký tự. Tiêu đề của phương và trả về xâu ký tự đã sắp xếp. Tiêu đề thức có dạng sau: của phương thức có dạng sau: String convertDecimalToHex(int value) String sort(String s) Viết chương trình nhập vào 1 số nguyên Viết chương trình nhập vào 1 xâu ký tự, dương, gọi phương thức này để chuyển đưa ra màn hình xâu ký tự đã sắp xếp. thành số hex và đưa kết quả ra màn hình. thà số và kế quả mà hì Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 39 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 40
  • 18. Bài tập chương 7 Bài tập chương 7 Bài 7. Viết phương thức kiểm tra xem hai từ Viế thứ kiể từ Bài 8. Viết chương trình nhập vào một xâu có phải là anagram. Hai từ được gọi là ký tự. Đếm xem trong xâu đó có bao nhiêu anagram với nhau nếu chúng có số chữ từ. Biết rằng các từ phân cách nhau bởi Biế rằ cá từ cá bở cái giống nhau từng đôi một, không kể đến dấu cách và các dấu chấm câu. Đưa kết cá và dấ chấ kế quả ra màn hình. thứ tự. Tiêu đề của phương thức có dạng sau: Bài 9. Viết chương trình nhập vào một dãy số thực dưới dạng xâu ký tự, các số thực boolean isAnagram(String s1, String s2) phân cách nhau bởi ít nhất một dấu cách. Viết chương trình nhập vào 2 từ, đưa kết Viế trì nhậ và từ kế Tính tổng các số thực và đưa kết quả ra quả kiểm tra ra màn hình. quả kiể mà hì màn hình. Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 41 Bà i giảng LT JAVA - Phần 2,Chương 7 GV. Ngô Công Thắng giả Phầ 2,Chương Thắ 42