Phát triển ứng dụng trên thiết bị di động - Lương Trần Hy Hiến

1. Kiểu dữ liệu cơ sở

2. Mảng (Array)

3. Tập hợp (Collection)

4. Hướng đối tượng trong Java

5. Bẫy lỗi ngoại lệ (Exception)

pdf116 trang | Chia sẻ: tieuaka001 | Lượt xem: 774 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Phát triển ứng dụng trên thiết bị di động - Lương Trần Hy Hiến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hai bước: ▪ Đầu tiên, một biến có kiểu của lớp được khai báo, biến này chưa được định nghĩa là một ĐT. Nó chỉ là biến tham chiếu đến ĐT. ▪ Tiếp theo, một bản sao chép ĐT của lớp trên bộ nhớ được tạo ra và được gán cho biến. Điều này được thực hiện bằng toán tử new  Toán tử new cấp phát bộ nhớ động cho ĐT và trả về tham chiếu tới nó  Tất cả các ĐT của lớp phải được cấp phát động  Phương thức khởi tạo  Ví dụ: Khai báo đối tượng có kiểu TamGiac TamGiac t; t = new TamGiac(); TamGiac t1; t1 = new TamGiac(2,3,4); t TamGiac t a=0 b=0 c=0 t1 TamGiac t1 a=2 b=3 C=4  Phương thức khởi tạo  Ví dụ: Truy xuất các thành phần của đối tượng TamGiac t; t = new TamGiac(); t.getA() = 2; t.getB() = 3; t.getC() = 4; System.out.printf(“Tam giac (%d, %d, %d)”, t.getA(), t.getB(), t.getC());  Phương thức xử lý  Một phương thức được định nghĩa để cài đặt cho một hành động của đối tượng  Cú pháp: BổTừTruyXuất KiểuDữLiệu TênPhươngThức(DanhSáchThamSố){ //xử lý của phương thức } TamGiac a b c tinhChuVi() tinhDienTich() Phương thức  Phương thức xử lý  Ví dụ: Khai báo phương thức tính chu vi cho lớp tam giác class TamGiac{ // biến thực thể private double a, b, c; // hàm dựng mặc định public TamGiac() {} // phương thức tính chu vi public double tinhChuVi(){ return a + b + c; } }  Phương thức xử lý  Ví dụ: tính chu vi tam giác TamGiac t = new TamGiac(); t.getA() = 2; t.getB() = 3; t.getC() = 4; System.out.printf(“Tam giac (%f, %f, %f)”, t.getA(), t.getB(), t.getC()); System.out.printf(“Chu vi tam giac: %f”, t.tinhChuVi());  Truyền tham trị  Được sử dụng cho các kiểu dữ liệu cơ bản, mọi thay đổi diễn ra bên trong phương thức không ảnh hưởng đến giá trị truyền vào  Truyền tham chiếu  Thay đổi bên trong phương thức sẽ làm thay đối giá trị của tham số truyền vào  Tham số của phương thức có kiểu dữ liệu là tham chiếu sẽ được truyền theo kiểu tham trị chứ không phải kiểu tham chiếu. Ví dụ: khi phương thức kết thúc, tham chiếu này vẫn trỏ đến cùng đối tượng khi truyền vào  Truyền tham số cho phương thức  Ví dụ: Truyền tham trị public static void Swap(int a,int b){ int temp = a; a = b; b = temp; } public static void main(String args[]){ int a = 1, b = 2; System.out.printf(“a = %d, b = %d”, a, b); Swap(a,b); System.out.printf(“a = %d, b = %d”, a, b); } a=? b=?  Truyền tham số cho phương thức  Ví dụ: Truyền tham chiếu public static void Swap(MyClass a,MyClass b){ MyClass temp = a; a = b; b = temp; } public static void main(String args[]){ MyClass a = new MyClass(1); MyClass b = new MyClass(2); System.out.printf(“a = %d, b = %d”, a.x, b.x); Swap(a,b); System.out.printf(“a = %d, b = %d”, a.x, b.x); } a=? b=? class MyClass{ public int x; public MyClass(int _x){ x=_x; } }  Truyền tham số cho phương thức  Ví dụ: truyền tham chiếu public static void Swap(MyClass a,MyClass b){ MyClass temp = new MyClass(a); a.x = b.x; b.x = temp.x; } public static void main(String args[]){ MyClass a = new MyClass(1); MyClass b = new MyClass(2); System.out.printf(“a = %d, b = %d”, a.x, b.x); Swap(a,b); System.out.printf(“a = %d, b = %d”, a.x, b.x); } a=? b=? class MyClass{ public int x; public MyClass(int _x){ x=_x; } }  Phương thức có tham số thay đổi  Tham số thay đổi cho phép gọi phương thức với số tham số khác nhau.  Cú pháp KiểuDữLiệu TênPhươngThức (KiểuDữLiệu ... TênThamSố) { // các lệnh }  Phương thức có tham số thay đổi  Ví dụ: public static void Test(int a){ for (int i : a) System.out.println(i); } public static void main(String args[]){ Test(1, 2, 3, 4, 5, 6); Test(10, 20); }  Các lớp trong Java tồn tại trong một hệ thống thứ bậc, gọi là cây thừa kế  Các lớp ở bậc trên một lớp đã cho trong một hệ thống thứ bậc là lớp cha (superclass) của lớp đó  Lớp cụ thể là một lớp con (subclass) của tất cả các lớp bậc cao hơn 90  Lớp con có thể truy cập các biến và phương thức công khai (public) của lớp cha  Lớp con có thể truy cập các biến và phương thức được bảo vệ (protected) của lớp cha  Các hàm tạo là đặc biệt, chúng không được thừa kế  Lớp con không thể truy cập thành viên private của lớp cha  Sử dụng phương thức để truy cập thành viên private của lớp 91  Truy cập đến các thành viên của lớp cha bằng cách sử dụng từ khóa super  Có thể sử dụng super để truy cập đến hàm tạo của lớp cha 92  Ngăn cản ghi đè hàm  Ngăn cản thừa kế 93  Java package là một nhóm các lớp và giao diện có liên hệ với nhau được tổ chức thành một đơn vị để quản lý.  Package có thể do người dùng tạo ra hoặc do Java tạo sẵn.  Lệnh package, nếu sử dụng, phải đặt ở đầu chương trình  Lệnh import được dùng để import một hoặc nhiều lớp từ package vào chương trình  Chỉ định từ truy xuất điều khiển việc truy xuất các lớp và sự nhìn thấy các thành viên của lớp  Chỉ định từ truy xuất cho biến và phương thức là các từ khóa được dùng để xác định các biến và phương thức cần được khai báo để điều khiển việc truy xuất từ người dùng  Package được định nghĩa trước import java.util.*; import java.io.*; class A { } Bạn có thể xem nội dung của các package Bằng WINZAR/ WINZIP  Các class mà dự định sẽ được sử dụng bên ngoài package sẽ được khai báo là public.  Các package khác nhau có thể có các class trùng tên với nhau.  Nếu các package khác nhau mà có các class có tên trùng nhau thì khi sử dụng bắt buộc phải import đầy đủ tên package và tên class. 96 97 Có 4 kiểu truy cập vào package private protected public default 98 Từ khóa Trong cùng class Trong cùng package Trong sub- package Package khác private Có Không Không Không default Có Có Không Không protected Có Có Có Không public Có Có Có Có  Truy cập các thành phần trong package 99 private: Chỉ có thể được truy cập bởi chính class đó. default: Được truy cập bởi các class cùng package. protected: Được truy cập bởi các class cùng trong package và các class là sub-class của class này. public: Được truy cập bởi tất cả các class ở cùng package hay khác package.  Package được định nghĩa trước ● Tạo package package myPackage; class A { . } ● Sử dụng package import myPackage.A; class B { . void method3() { A obj = new A(); .. } }  Cú pháp:  import tên_package.tên_class  Ví dụ:  import mypack.MyClass;  import mypack.*;  Ký hiệu *: là import tất cả các class trong package mypack. 101 102 Tên Package Mô tả java.lang Chứa các class như Integer, String, System và được tự động import vào mỗi chương trình Java. java.util Các các Java collections như List, Set, Map java.io Chứa các class liên quan đến việc nhập, xuất dữ liệu như File, Reader, Writer java.awt và java.swing Chứa các class liên quan đến việc trình bày giao diện đồ họa và xử lý sự kiện. . . . 103 Java cung cấp 5 từ khoá sau để xử lý các ngoại lệ:  try  catch  throw  throws  finally 104 try{ // đoạn mã có khả năng gây ra ngoại lệ } catch(Exception e1) { // Xử lý } catch(Exception e2) { // Xử lý } ... catch(Exception eN) { // Xử lý } finally { // luôn được thực hiện cho dù ngoại lệ có xảy ra hay không. } 105  NullPointerException  ArrayIndexOfBoundException  ArthmeticException  FileNotFoundException  EOFException  IllegalArgumentException  106 107 • Class Throwable xử lý lỗi và ngoại lệ (Error, Exception). • Tất cả các class dưới đây đều nằm trong gói java.lang, ngoại trừ class IOException là nằm trong gói java.io ClassNotFoundException CloneNotSupportedException IllegalAccessException InstantialtionException IOException * RuntimeException LinkageError ThreadDeath VitualMachineError ArithmeticException IllegalArgumentException IndexOutOfBoundsException NullPointerException More class Exception Error Throwable 108 Ngoại lệ ‘unchecked’: • Là các ngoại lệ không cần phải ‘catch’ khi viết mã • Là các class Error, RuntimeException và các lớp con của chúng Ngoại lệ ‘checked’: • Là các ngoại lệ phải được ‘catch’ khi viết mã • Là các class còn lại 109 Một số ngoại lệ ‘checked’: • ClassNotFoundException • IOException • FileNotFoundException • EOFException Một số ngoại lệ ‘unchecked’ • ArithmeticException • IllegalArgumentException • IndexOutOfBoundException • NullPointerException • InputMismatchException  Từ khóa throws được sử dụng trong method dùng để đề xuất các ngoại lệ có thể xảy ra trong method đó. Có những method sử dụng một số lệnh mà các lệnh đó có thể xảy ra ngoại lệ ‘checked’ nên chúng ta bắt buộc phải xử lý ngoại lệ đó. Ví dụ khi xử lý các lệnh thao tác với file, phải xử lý ngoại lệ ‘checked’ FileNotFoundException. Tất cả các ngoại lệ được khai báo bởi throws đều phải được xử lý, nếu không có đủ sẽ bị thông báo lỗi. 110 111 112  Dùng cách throws trong phương thức main 113  bằng cách kế thừa class Exception của Java: 114 115 116

Các file đính kèm theo tài liệu này:

  • pdfslide01_javacoban_2956.pdf
Tài liệu liên quan