1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng xây dựng phần mềm hướng đối tượng OOP

88 325 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 6,54 MB

Nội dung

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tinXây Dựng Phần Mềm Hướng Đối Tượng OOPObject Oriented Programming Th.s Hồ Đình Khả Trường Đại học Công nghệ Sài gòn Khoa Công nghệ

Trang 1

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

Xây Dựng Phần Mềm Hướng Đối Tượng

OOP(Object Oriented Programming)

Th.s Hồ Đình Khả

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Nội dung

 Chương 1: Tổng quan OOP

 Chương 2: Ngôn ngữ Java và công cụ

 Chương 3: Cài đặt Class và Object

 Chương 4: Cấu trúc tuyển tập

 Chương 5: Lưu trữ (file, DBMS)

 Chương 6: Thiết kế GUI

 Chương 7: Mô hình N-Layer

 Chương 8: Report

 Chương 9: Mô hình phân bố (Option)

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Hình thức đánh giá:

Thi cuối kì: Thực hiện một ứng dụng trên máy.

Tài liệu tham khảo:

[1] Michael A.Smith, Java: an Object-Oriented Language, McGraw-Hill, 2000

[2] Prof Alfons Kemper, Ph D.: Object oriented Data modeling And programming In

java,2000

 [3] Copyright by Sams Publishing :Sams Teach Yourself Object Oriented

Programming in 21 Days, 2002

 Slide Bài Giảng- ĐHCNSG

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

Chương 1

(Object Oriented Programming)

Trang 2

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Mục tiêu

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

So sánh lập trình cấu trúc và Lập trình OOP

Procedural programming :Bao gồm một tập các chức năng (functions

hay algorithms) giải quyết vấn đề

Algorithms + Data Structures = Programs

OOP : đầu tiên diễn đạt dữ liệu (data), sau đó tìm kiếm các giải thuật

điều hành dữ liệu.

số giờ hay phụ cấp Ngoài ra lương còn phải khấu trừ thuế (Social

Security và Medicare)

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Lập trình cấu trúc

thủ tục được viết Chương trình chính được viết bằng cách sử dụng các thủ tục theo một trình tự xử lí.

 Chúng ta cần viết các thủ tục tương ứng:

computePay(): cung cấp dữ liệu

computeSSTax ()

computeMedicareTax(),

Trang 3

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Object-Oriented Programming

Viết chương trình tính lương nhân viên Lương được trả dựa

vào : số giờ hay phục cấp Ngoài ra lương còn phải khấu trừ thuế

(Social Security và Medicare)

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Object-Oriented Programming

dụ : name, address, employee number, Social Security number, hours

worked  variables

phải trả, mail bảng lương,…  methods

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Procedural Programming và Object-Oriented Programming

liệu được truyền vào thủ tục

thức có thể truy xuất dữ liệu mà không phải truyền nó vào phương

thức.

bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho

phép nhập thông tin sv, tính điểm trung bình, in điểm sv

Ví Dụ:

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Data Abstraction

 Cho phép quản lí tốt hơn các chương trình phức tạp

Functions & Procedures

Modules

Abstract Data Types

Class/Objects

 Data Abstract cho phép

Mở rộng ngôn ngữ : Định nghĩa thêm kiểu

Chế tác các thể hiện dữ liệu khác nhau

Trang 4

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

NameAddress

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Data Abstraction (tiếp )

Phát sinh hóa đơn

Chấp nhận tên người bán Người bán (saleman)

Chấp nhận kiểu xe đặt hàng Kiểu xe mua

Chấp nhận địa chỉ khách hàng Địa chỉ khách hàng

Chấp nhận tên khách hàng Tên khách hàng

Hành động Thuộc tính

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Data Abstraction (tiếp…)

 Data Abstraction là quá trình nhận diện và nhóm dữ liệu và

hành động có liên quan tới một thực thể riêng biệt

 Thuận lợi:

Nhận diện các đặt trưng và hành động thiết yếu

Giúp lọai trừ những chi tiết không cần thiết

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Class

 Một Class định nghĩa như là một bản mẫu hay một kiểu chung về một lọai đối tượng nào đó theo thuộc tính và hành vi.

Chấp nhận lọai xe đặt mua Chấp nhận tên người bán Phát sinh hóa đơn

Chấp nhận địa chỉ Chấp nhận tên Tên người bán Kiểu xe mua Địa chỉ khách hàng Tên khách hàng

Class Customer

Trang 5

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Stephen là một Object của class Customer

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Tác nhân được gởi từ một object to object khác

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

 Class là một prototype của một object

 Tất cả object thuộc về một class đều có đặt trưng và hành động giống nhau

Trang 6

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Các bài toán ví dụ

bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho

phép nhập thông tin sv, tính điểm trung bình, xuất thông tin sv

Behaviors: Tính diện tích, tính chu vi  Methods

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Các bài toán ví dụ

bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho phép nhập thông tin sv, tính điểm trung bình, xuất thông tin sv

Behaviors: Tính diện tích, tính chu vi  Methods

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Các bài toán ví dụ

bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho

phép nhập thông tin sv, tính điểm trung bình, in điểm

Attributes: Mã sv, họ tên, ngày sinh, nơi sinh, lớp, môn học, điểm lý thuyết,

điểm thực hành, điểm trung bình  Variables

Behaviors: Nhập thông tin sinh viên, tính điểm trung bình, in điểm

Methods

Trang 7

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Mô hình hóa đối tượng

Behaviors: Tính diện tích, tính chu vi  Methods

Hình chữ nhật

- Chiều dài

- Chiều rộng+ Tính diện tích+ Tính chu vi

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Mô hình hóa đối tượng

Hình tròn

- Bán kính+ Tính diện tích+ Tính chu vi

Behaviors : Tính diện tích, tính chu vi  Methods

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Constructor, Destructor,Persistence

 Thiết lập (Constructor):

Cấp phát bộ nhớ

Khởi tạo thuộc tính

Cho phép truy xuất các thuộc tính và phương thức

 Huỷ (Destructor)

Giải phóng không gian cấp phát

Cấm truy xuất các thuộc tính và phương thức

 Tính bền vững (Persistence)

Tính bền vững là một khả năng của đối tượng để lưu trữ dữ liệu

trong thời gian sống của đối tượng

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Bao Bọc và Che Dấu Thông tin (Encapsulation and information hiding)

 Quá trình che dấu sự hiện thực chi tiết của một đối tượng từ user được gọi là Encapsulation

 Nguyên tắc bao bọc dữ liệu ngăn cấm truy nhập trực tiếp gọi là sựche dấu thông tin

Trang 8

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Tính thừa kế (Inheritance)

 Cách tổ chức các Classes

Vehicle

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Tính thừa kế (tt)

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Trang 9

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Tính Đa Hình (Polymorphism)

Làm thế nào?

Operation Display

khác nhau trong cùng một lớp hay trong những

Thiết kế các đối tượng

Phát triển các giải thuật cho các phương thức của đối tượng

Mô tả giải thuật, dùng pseudocode

Viết code

Kiểm tra code

Debug

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Những thuận lợi.

 Khả năng đối phó với những ứng dụng thuộc lọai khó

 Nâng cao tính nhất quán giữa phân tích, thiết kế và lập trình

 Nâng cao chia sẽ trong ứng dụng

 Tính dùng lại của những kết quả phân tích thiết kế và lập

trình

 Giảm bớt các lỗi

 Sự thay đổi nhanh hơn

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Tổng kết

 Phương pháp Object-oriented cho phép giải quyết hầu hết các vấn đề

 Sự trừu tượng dữ liệu là quá trình nhận diện và nhóm các thuộc tính

Trang 10

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Câu hỏi

 Các đối tượng trong thế giới thực chứa _ và _

 Một trạng thái của đối tượng được lưu trữ trong _

 Một hành vi của đối tượng được phơi bày thông qua _

 Các dữ liệu nội tại được che đậy từ thế giới bên ngòai và chỉ truy xuất qua phương thức

được biết như dữ liệu _

 Bản thiết kế cho một đối tượng phần mềm được gọi là _

 Hành vi chung, phổ biến có thể được định nghĩa trong _ và được thừa kế vào _

 Một tập phương thức với không hiện thực được gọi là _

Trang 11

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

Chương 2

Giới Thiệu JAVA

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 2 of 19

Mục Tiêu

Hiểu biết các đặt trưng của ngôn ngữ JAVA

Phân cấp các dạng chương trình JAVA

Định nghĩa Java Virtual Machine

Hiểu biết nội dung của Java Development Kit

Phân cấp các đặc trưng mới trong JAVA2

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 3 of 19

Khoa Công nghệ Thông tin Core Java / Session 3 / 4 of 19

Cách truyền thống biên dịch chương trình

Trang 12

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 5 of 19

Compiling code

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 6 of 19

Khoa Công nghệ Thông tin Core Java / Session 3 / 7 of 19

Các Thành Phần Của Môi Trường Java

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 8 of 19

Java Virtual Machine

máy tính ảo

máy tính

Trang 13

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 9 of 19

Các Bước Biên Sọan Một Chương Trình Java

 Compiler chuyển mã nguồn vào một tập các lệnh, không cần

đích tới cho một processor cụ thể

 Interpreter chuyển một tập các lệnh cho phần cứng

 JVM khởi tạo một hệ thống runtime giúp cho quá trình thực

Khoa Công nghệ Thông tin Core Java / Session 3 / 10 of 19

Xác định các tập tin class

Áp dụng cho tất cả file *.class , đảm bảo an tòan

Ba phần của file *.class :

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 11 of 19

Khoa Công nghệ Thông tin Core Java / Session 3 / 12 of 19

Java Development Kit

 Java 1.0 - The first release in 1995

 Java 1.1 - The 1997 release

 Java 2 - The latest version

1.4

1.5

1.6

Trang 14

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 13 of 19

JDK Tools

 Java Compiler, 'javac':

Dịch chuyển mã nguồn sang mã byte

javac [options] sourcecodename.java

 Java Interpreter, 'java'

Bộ thông dịch (thực thi)

java [options] classname

Bộ tạo lập header của C cho phép chương trình C gọi phương thức

của JAVA và ngược lại

javap [options] classname

Bộ tạo tài liệu dạng HTML từ mã nguồn cùng các chú thích bên

trong

javadoc [options] sourcecodename.java

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 14 of 19

jdb -host -password [options] sourcecodename.java

Thực thi các ứng dụng nhúng

appletviewer [options] sourcecodename.java / url

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 15 of 19

Core Java API

Khoa Công nghệ Thông tin Core Java / Session 3 / 16 of 19

Trang 15

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin Core Java / Session 3 / 17 of 19

Summary

Multithreaded, Dynamic

Trang 16

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

Chương 2

Ngôn Ngữ Java

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Mục Tiêu

 Phiên dịch một chương trình Java

 Hiểu biết cơ bản ngôn ngữ Java

 Kiểu dữ liệu

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Truyền các đối số dòng lệnh

class Pass{public static void main(String parameters[]){

System.out.println("This is what the main method received");

System.out.println(parameters[0]);

System.out.println(parameters[1]);

System.out.println(parameters[2]);

}}

Trang 17

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Truyền các đối số dòng lệnh(tt…)

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Cơ Sở Của Ngôn Ngữ Java

 Classes & Methods

Khoa Công nghệ Thông tin

Khai báo Class

 Cú pháp khai báo Class

Khoa Công nghệ Thông tin

VD class

Trang 18

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

class

 Phức tạp hơn

 Nhóm của các dạng khác(primitive hay class)

 Bao gồm data và methods

SavitchInString

Trang 19

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Tên biếnQui định

Không bắt đầu với số.

Chứa số,kí tự, (_) và $ (tránh dùng)

Phân biệt hoa và thường (ThisName và thisName là khác nhau)

Nên

Nên đặt tên có nghĩa (eggsPerBasket hơn là count)

Bắt đầu với kí tự thường.

Hoa đầu từ (eggsPerBasket hơn là eggsperbasket)

Tránh dùng $.

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Từ khóa

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khai báo Array

 Có 3 cách:

datatype identifier [ ];

datatype identifier [ ] = new datatype[size];

datatype identifier [ ]= {value1,value2,….valueN};

Trang 20

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Các phương thức trong Class

 Định nghĩa một tác vụ trên một đối tượng

Khoa Công nghệ Thông tin

VD

class Temp {static int x = 10; // variable

public static void show( ) { // method

System.out.println(x);

}public static void main(String args[ ]) {

t.show( ); // method call

t1.x = 20;

t1.show( );

}}

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Phạm Vi truy cập của Method

Khoa Công nghệ Thông tin

 += Addition and assignment

 -= Subtraction and assignment

 *= Multiplication and assignment

 /= Division and assignment

Trang 21

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Bitwise Operators

Khoa Công nghệ Thông tin

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Conditional Operator

Cú phápexpression1 ? expression2 : expression3;

Trang 22

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Độ ưu tiên Operator

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Định Dạng Xuất

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

if-else statement

 Cú pháp

if (condition) {

action1 statements;

} else { action2 statements;

}

Trang 23

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

while loop

while(condition) {

action statements;

: : }

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Trang 24

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Tổng kết

 Cấu trúc chương trình JAVA

 Định danh, từ khóa ,tóan tử

 Các kiểu dữ liệu - Primitive và Reference

 Phạm vi truy nhập: public, …

 Thiết lập - ẩn và hiện

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Trang 25

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

 Sử dụng class Scanner nhập dữ liệu từ bàn phím thông qua console

 Sử dụng class JOptionPane nhập dữ liệu từ bàn phím thông qua GUI (Graphic User Interface)

HƯỚNG ĐỐI TƯỢNG Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khai báo biến kiểu String chứa tạm dữ liệu nhập:

 String temp = dataIn.readLine();

HƯỚNG ĐỐI TƯỢNG Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Trang 26

HƯỚNG ĐỐI TƯỢNG Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Scanner datain=new Scanner(System.in);

Khai báo biến kiểu String chứa tạm dữ liệu nhập:

public class GetInputFromKeyboard { public static void main( String[] args ){

Trang 27

HƯỚNG ĐỐI TƯỢNG Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Chuyển đổi kiểu

String s=Integer.toString(int i);

String s=Double.toString(double i);

Trang 28

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khai báo Class

Chương 3

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

StudentRecord.java

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Writing class HinhChuNhat

class HinhChuNhat

{double cdai, crong;

public double DienTich(){

return cdai * crong;

}public double ChuVi(){

return (cdai + crong)*2;

}}

HinhChuNhat

- cdai : double

- crong : double+ DienTich() : double+ ChuVi() : double

Trang 29

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Writing class HinhTron

class HinhTron {

return 2 * Math.PI * bkinh;

Khoa Công nghệ Thông tin

Constructor

viện dẫn khi tạo đối tượng

được khởi tạo khi object được thể hiện

Khoa Công nghệ Thông tin

Writing class HinhChuNhat

class HinhChuNhat

{

double cdai, crong;

public HinhChuNhat (double cd, double cr) {

cdai = cd;

crong = cr;

}

public double DienTich() {

return cdai * crong;

}

public double ChuVi() {

return (cdai + crong)*2;

}

}

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Writing class HinhTron

class HinhTron {

double bkinh;

public HinhTron (double bk) { bkinh = bk;

} public HinhTron () { bkinh = 0.0;

} public double DienTich() { return Math.PI * bkinh * bkinh;

} public double ChuVi() { return 2 * Math.PI * bkinh;

} }

Trang 30

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

HinhChuNhat x = new HinhChuNhat(5,8);

HinhTron t = new HinhTron();

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Sử dụng Constructor của class HinhTron

class HinhTron {

double bkinh;

public HinhTron (double bk){

bkinh = bk;

} public HinhTron () { bkinh = 0.0;

} public double DienTich() { return Math.PI * bkinh * bkinh;

} public double ChuVi() { return 2 * Math.PI * bkinh;

} }

Ví dụ:

HinhTron t1 = new HinhTron(8.9);

HinhTron t2 = new HinhTron();

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Sử dụng this trong Constructor

constructor trong một khởi

double cdai, crong;

public HinhChuNhat() {

this(0,0);

} public HinhChuNhat (double cd, double cr) {

cdai = cd;

crong = cr;

} public double DienTich() {

return cdai * crong;

} public double ChuVi() {

return (cdai + crong)*2;

} }

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Trang 31

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Thể hiện Object

HinhChuNhat n1 = new HinhChuNhat();

HinhChuNhat n2 = new HinhChuNhat(8,10);

Khoa Công nghệ Thông tin

Truy xuất Fields và Methodsclass HinhChuNhat

{ double cdai, crong;

public HinhChuNhat() {

this(0,0);

} public HinhChuNhat (double cd, double cr) {

cdai = cd;

crong = cr;

} public double DienTich() {

return cdai * crong;

} public double ChuVi() {

return (cdai + crong)*2;

} }

// xuat ket qua tinh n1…

HinhChuNhat n2 = new HinhChuNhat(8,10);

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Overloading method

tự)

sách đối số.

gọi là overloading method

Trang 32

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Trang 33

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

private và cung cấp các phương thức truy xuất fields bằng

các phương thức public

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Encapsulation

hợp các visibility modifiers

xuất toàn cục.

xuất bởi bất kì class nào trong cùng một gói (package).

được truy xuất bởi trong class hoặc các class con.

truy xuất trong class.

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

methods

đích là hỗ trợ các phương thức khác của class  support

methods.

private final int INCREMENT = 5;

Encapsulation

Trang 34

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

return (cdai + crong)*2;

} }

OOP JAVA 26

Trường Đại học Công nghệ Sài gòn Khoa Công nghệ Thông tin

Encapsulation

bới các phương thức của đối tượng

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Encapsulation

thông qua interface

qua các service của nó ( interface)

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Tổng kết

một biến đối tượng được xác định trong trạng thái của nó Các phương thức của đối tượng đáp ứng các hành vi của nó

encapsulation

void nếu không)

Trang 35

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Ví dụ

public class SalesPerson

{

private String name;

private int id;

private double commissionRate;

private double sales;

public SalesPerson ( String name, int id, double commissionRate)

Khoa Công nghệ Thông tin

public double getCommissionRate() {

Khoa Công nghệ Thông tin

Trang 36

Trường Đại học Công nghệ Sài gònKhoa Công nghệ Thông tin

Mở rộng class

• Object tham chiếu v định danh

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Đối tượng tham chiếu

 Lưu ý: biến cơ sở chỉ chứa trị, nhưng biến đối tượng chứa địa chỉ của

Trước:

num2 = num1;

num1 38 num2 38

Sau:

int num1 = 38, num2 = 96;

num2 = num1;

Trang 37

OOP JAVA 5

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Phép gán (tt)

 Dạng đối tượng:

name2 = name1;

name1 name2

"Steve Wozniak"

name1 name2

 Tình huống sử dụng: Một đối tượng có thể được truy xuất bằng cách

sử dụng nhiều biến tham khảo

 Định danh thường dùng, nhưng cần quản lí cẩn thận

Thay đổi đối tượng qua một định danh là thay đổi tới tất cả định danh khác!

Khoa Công nghệ Thông tin

Truyền tham số tới Method

 Truyền trị

Tạo bảng sao tham số truyền vào tham số hình thức

Bản chất tham số truyền là một phép gán

 Truyền tham khảo

Tham số truyền và tham số hình thức cùng là định danh tới cùng một đối tượng

hình thức trong phương thức, chúng ta đang thay đổi đối tượng truyền.

đối tượng mà tham khảo chỉ tới!!!

Trang 38

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Example

class myClass{

public static void main(String[] agrs) {

Date d = new Date(2008, 9,13);

System.out.println (“Before call setDay : ” + d);

setDay(d);

System.out.println (“After call setDay : ” d);

} public static void setDay(Date da) {

After setDay(d):

(2008, 9, 20)

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Example

class myClass{

public static void main(String[] agrs)

{

Date d = new Date(2008, 10,13);

System.out.println (“Before call setDay : ” + d);

After setDay(d):

(2008, 9, 13) (2008, 9, 20)

Trang 39

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Static modifier

 Ví dụ: Class Math là static:

result = Math.sqrt(25)

 Gọi phương thức static có thể viện dẫn qua tên class

 Các biến có thể khai báo static

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Khoa Công nghệ Thông tin

Static variables

 Thông thường , một đối tượng có không gian dữ liệu của chính nó,

nhưng nếu một biến là static, chỉ có một bản sao của biến tồn tại cho

tất cả đối tượng thuộc class

private static int counter;

 Không gian bộ nhớ của biến static được tạo khi class được tham

khảo đầu tiên

 Tất cả đối tượng được tạo từ class sẽ chia sẽ các biến static

Thay đổi giá trị của một biến static trong một đối tượng, sẽ thay đổi

tới tất cả đối tượng

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

StaticDemo.java

class Employee {

private String name, address;

private int SSN, number;

private static int counter;

public Employee(String name, String address, int SSN) {

return counter;

} public int getNumber() {

SSN= 123456789

number=1

e2

name=“ Wayn ” address=“ WallStreet Blvd ”

SSN= 987654321

number=2

Trang 40

OOP JAVA 17

Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Static methods

 Phương thức main là static, nó được viện dẫn bởi hệ thống mà không

cần tạo đối tượng

 Static methods không thể tham khảo các biến thể hiện, bởi vì các

biến này không tồn tại cho đến khi đối tượng tồn tại

 Do đó chúng có thể tham khảo static hoặc biến cục bộ

 Ví dụ:

OOP JAVA Trường Đại học Công nghệ Sài gòn

Khoa Công nghệ Thông tin

Static methods

class Helper {

public static int triple (int num) {

return num * 3;

} }

Phương thức có thể được viện dẫn:

value = Helper.triple (5);

Khoa Công nghệ Thông tin

Ngày đăng: 12/01/2019, 23:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w