Tải bản đầy đủ (.pdf) (88 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.54 MB, 88 trang )

Nội dung


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

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
 JEDI
 Slide Bài Giảng- ĐHCNSG



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

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

Chương 1

Tổng Quan OOP
(Object Oriented Programming)

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

1


Mục tiêu
 Object Oriented Programming

 Trừu tượng hóa dữ liệu (Data Abstraction)
 Lớp và đối tượng (Class and Object )
 Phương thức thiết lập và hủy
(Construction và Destruction )
 Persistence, Data encapsulation, Inheritance và
Polymorphism
 Thuận lợi.

Object-oriented programmings
 Phương pháp thiết kế và hiện thực các hệ thống phần
mềm.
 Đặt trọng tâm vào đối tượng.
 Đối tượng bao hàm: hành vi và thuộc tính
 Đối tượng giao tiếp thông qua thông điệp

Trường Đại học Công nghệ Sài gòn
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

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.
Ví dụ:
 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ấ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




Chia bài toán thành những vấn đề nhỏ , ứng với mỗi vấn đề nhỏ, một
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(),...

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

2



Object-Oriented Programming
Xác định các objects trong bài toán.
 Employees, Company
 Xây dựng các class mô tả attributes và behaviors của đối tượng.


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)

Object-Oriented Programming
Xác định các objects trong bài toán.
 Employees, Company
 Xây dựng các class mô tả attributes và behaviors của đối tượng.
 Attributes của đối tượng Employee sẽ là cái gì mà employee “has”, ví
dụ : name, address, employee number, Social Security number, hours
worked ... variables
 Behaviors của Employee là cái gì mà employee “does”, ví dụ: lương
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

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





Nếu thủ tục trong lập trình cấu trúc cần dữ liệu để thực hiện tác vụ, dữ
liệu được truyền vào thủ tục
Với lập trình OOP, đối tượng thực hiện nhiệm vụ cho bạn, các phương
thức có thể truy xuất dữ liệu mà không phải truyền nó vào phương
thức.

Data Abstraction




Ví Dụ:




Viết chương trình tính diện tích, chu vi hình chữ nhật
Viết chương trình tính diện tích, chu vi hình tròn
Viết chương trình tính điểm trung bình của sinh viên, điểm trung
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

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

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

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

3


Data Abstraction (tiếp...)

Data Abstraction

Các đặc trưng của
Person
Name
Address
Age
Height
Hair color

Các đặc trưng của

Customer
Name
Address


Thuộc tính

Hành động

Tên khách hàng

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

Địa chỉ khách hàng

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

Kiểu xe mua

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

Người bán (saleman)

Chấp nhận tên người bán
Phát sinh hóa đơn

Trường Đại học Công nghệ Sài gòn
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

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.

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.

Class Customer
Tên khách hàng
Địa chỉ khách hàng
Kiểu xe mua
Tên người bán
Chấp nhận tên
Chấp nhận địa chỉ
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


Trường Đại học Công nghệ Sài gòn
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

4


Object

Class/Object
Message Passing
Generalization/Specialization
 Polymorphism
 Relationships: Associations, Aggregations
 Behaviors
 Rules




Một Object là sự thể hiện của class









Stephen
Boston
Opel Astra
Robin

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

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

So Sánh Class và Object

Object (tiếp…)










Attribute
 Những đặc trưng mô tả đối tượng.
Operation

 Là một dịch vụ hoặc một hàm đuợc cung cấp bởi mọi thể hiện của
một lớp đối tượng.
Method
 Diễn tả cách thức mà một đối tượng vận động, phản ứng
Message
 Yêu cầu cho một operation
Event
 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 định nghĩa một thực thể, trong khi một object là một thực
thể thực sự.
Class là một mô hình ý niệm,định nghĩa tất cả đặt trưng và
hành động của một object, trong khi đối tượng là một mô hình
thực.
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.

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


5


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




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

Viết chương trình tính diện tích, chu vi hình chữ nhật
Viết chương trình tính diện tích, chu vi hình tròn.
Viết chương trình tính điểm trung bình của sinh viên, điểm trung
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.





Viết chương trình tính diện tích, chu vi hình chữ nhật
Viết chương trình tính diện tích, chu vi hình tròn
Viết chương trình tính điểm trung bình của sinh viên, điểm trung
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

Object: Hình chữ nhật

 Class


Object: Hình tròn

 Class

 Variables

Attributes: Bán kính

 Variables

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

 Methods

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ụ





Attributes: Chiều dài, chiều rộng


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





Viết chương trình tính diện tích, chu vi hình chữ nhật
Viết chương trình tính diện tích, chu vi hình tròn
Viết chương trình tính điểm trung bình của sinh viên, điểm trung
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

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

ClassName
Properties
Data

- Attributes

Fields
Variables

Object: Sinh viên

 Class

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

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

Instance Data

+ Behaviors

Methods

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

6


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

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

Object: Hình chữ nhật

 Class

Object: Hình tròn

 Class


Attributes: Chiều dài, chiều rộng

 Variables

Attributes: Bán kính

 Variables

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

 Methods

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

 Methods

Hình chữ
chữ nhậ
nhật

Hình tròn

- Chiều dài

- Bán kính

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

+ Tính diện tích


+ Tính chu vi

+ Tính chu vi

Trường Đại học Công nghệ Sài gòn
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

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

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





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
Thuận lợi:
 Tất cả thuộc tính và phương thức được yêu cầu thực hiện một
công việc có thể được khởi tạo.
 Chỉ những thuộc tính và/hoặc phương thức được truy xuất bởi
cái khác được hiện rõ.
Tất cả những gì thấy được của đối tượng đã được đóng gói là các

phương thức giao tiếp (interface) của đối tượng.

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

7


Tính thừa kế (tt)

Tính thừa kế (Inheritance)


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

Vehicle

Automobile

Sedan

Motorcycle

Sports Car

Luxury Bus

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


Bus

School Bus

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...)

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

Inheritance
 Cơ chế cho phép một lớp chia sẽ các thuộc tính và thao tác được
định nghĩa trong một hay nhiều lớp.
Subclass
 Là một class thừa kế từ một class khác.



Super class
 Là một class mà từ đó một class khác thừa kế những hành vi của
nó.




Multiple Inheritance
 Là một class con thừa kế từ một hay nhiều lớp.

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

8


Tính Đa Hình (Polymorphism)


Tính đa hình là một thao tác có thể được cài đặt
khác nhau trong cùng một lớp hay trong những
lớp khác nhau.
Operation
Display

Text

Line

Picture

Các bước thiết kế



Thiết kế và coding

Thiết kế
 Định nghĩa vấn đề.
 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

Làm thế nào?

Trường Đại học Công nghệ Sài gòn
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

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
và hành động quan hệ tới một thực thể cụ thể.
Class định nghĩa một thực thể, trong khi một object là một thực thể
thực sự.
Construction và Destruction
Persistence, Data encapsulation, Inheritance và Polymorphism

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

9



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à ___.

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

10


Mục Tiêu

Chương 2

 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

Giới Thiệu JAVA

Trường Đại học Công nghệ Sài gòn
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

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

Java?









OOP JAVA

Core Java / Session 3 / 2 of 19


Đơn giản
Hướng đối tượng.
Không phụ thuộc nền.
Vững bền.
Bảo mật.
Phân bố.
Đa luồng.
Động.

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

OOP JAVA

Core Java / Session 3 / 3 of 19

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

OOP JAVA

Core Java / Session 3 / 4 of 19

1


Compiling code

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

Khoa Công nghệ Thông tin

Các dạng Chương Trình Java


Applets



Command Line Applications



GUI Applications



Servlets



Database Applications



Web



EJB




Mobile App



JFX App

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

Java Virtual Machine

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


Ngôn ngữ Java



Bytecode



Các thư viện Class Java/Sun





OOP JAVA

Core Java / Session 3 / 6 of 19



Là một phần mềm khái niệm dựa trên ý tưởng của một
máy tính ảo.



Là một tập các lệnh luận lí định nghĩa các tác vụ của một
máy tính.

Java Virtual Machine



Có thể được xem như một hệ điều hành mini.

Cấu trúc tập tin * .class



Một lớp của sự trừu tượng cho:
 Nền phần cứng.

 Hệ điều hành.
 Mã được biên dịch.

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

OOP JAVA

Core Java / Session 3 / 7 of 19

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

OOP JAVA

Core Java / Session 3 / 8 of 19

2


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

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
thi mã bởi:
 Nạp các tập tin *.class.
 Quản lí bộ nhớ.
 Thực thi ứng dụng

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



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



Ba phần của file *.class :
bytecodes
Thông tin của class
 Thuộc tính của class và các tính chất.





OOP JAVA

Tập tin .class độc lập bao gồm:
 Các field bao gồm thuộc tính và tính chất.
 Bảng phương thức với thuộc tính và tính chất của nó.
 Bảng giao tiếp và hằng số với vác thành phần của nó.


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

Xác định các tập tin .class (tt…)


Java Development Kit

Tập tin .class mang ra ngòai ở 4 mức:
 Kiểm tra cú pháp.
 Tính nhất hóan của tập tin .class.
 Bytecode hòan chỉnh.
 runtime

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

OOP JAVA

Core Java / Session 3 / 10 of 19

OOP JAVA

Core Java / Session 3 / 11 of 19




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



………………

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

OOP JAVA


Core Java / Session 3 / 12 of 19

3


JDK Tools








JDK Tools (tt…)

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
Java Dissembler, 'javap'
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
Documentation tool, 'javadoc'
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

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





OOP JAVA

Java Debugger, 'jdb‘
Bộ gỡ lỗi
 jdb [options] sourcecodename.java
OR
 jdb -host -password [options] sourcecodename.java
Applet viewer, 'appletviewer‘
Thực thi các ứng dụng nhúng.
 appletviewer [options] sourcecodename.java / url

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

Core Java API












Java 2
Swing
 Drag and Drop
 Java 2D API
 Java Sound
 RMI

java.lang
java.applet
java.awt
java.io
java.util
java.net
java.awt.event
java.rmi
java.security
java.sql

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

OOP JAVA

Core Java / Session 3 / 14 of 19




OOP JAVA

Core Java / Session 3 / 15 of 19

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

OOP JAVA

Core Java / Session 3 / 16 of 19

4


Summary







Java là một ngôn ngữ chương trình thông dịch và biên dịch.
Các tình huống trong Java: Simple, Object-oriented,
Platform-independent,
Robust,
Secure,
Distributed,

Multithreaded, Dynamic
Java Virtual Machine
Java Development Kit
Tình huống mới trong Java 2

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

OOP JAVA

Core Java / Session 3 / 17 of 19

5


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

Chương 2

Ngôn Ngữ Java

Trường Đại học Công nghệ Sài gòn
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

VD Java program

OOP JAVA

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
received");
System.out.println(parameters[0]);
System.out.println(parameters[1]);
System.out.println(parameters[2]);
}
}

// This is a simple program called “First.java”
class First
{
public static void main(String args[])
{
System.out.println(“My first program in Java”);
}
}
C:\jdk1.4\bin>javac First.java

main


method

C:\jdk1.4\bin>java First
Kết quả:
My first program in 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

OOP JAVA

1


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

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

OOP JAVA




Classes & Methods



Data types



Variables



Operators



Control structures

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

Khai báo Class


OOP JAVA

VD class

Cú pháp khai báo Class


class Classname
{
var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}

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

OOP JAVA

2


Nested Classes

Các dạng Data

 Định nghĩa một class bên trong một class khác
gọi là ‘Nesting’.




class OuterClass {
... class NestedClass { ... }
}


Được chia vào các dạng:



Static: được gọi là “static nested classes “
Non-static: được gọi là “inner classes “

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



OOP JAVA

Chuyển kiểu




Array



Class




Interface

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

OOP JAVA

So Sánh 2 Dạng Dữ liệu

Một dạng dữ liệu được chuyển vào một dạng khác
 Ẩn: Thấp->Cao:

class
primitive data
 Đơn giản nhất.
 Phức tạp hơn.
 Không thể phân chia
 Nhóm của các dạng
 Chỉ có trị không method
khác(primitive hay class)
 VD:
 Bao gồm data và methods
int - integer
double – floating point (real)  VD:
SavitchIn
char - character

byte --> short --> int --> long --> float --> double

For example:

double x;
int n = 5;
x = n;
n = x;//không hợp lệ


Primitive Data Types
 Byte
 Char
 Boolean
 Short,int,long
 Float, double
Reference data types

String

Hiện:

float c = 34.89675f;
int b = (int)c + 10;

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


OOP JAVA

3


Biến (Variables)




Tên biến

Khai báo biến gồm 3 phần:
 Kiểu dữ liệu.
 tên
 Giá trị khởi tạo.
Cú pháp:
datatype identifier [=value][, identifier[=value]...];

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

Qui đị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)


OOP JAVA

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

OOP JAVA

Khai báo Array

Từ khóa


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

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

Có 3 cách:


datatype identifier [ ];




datatype identifier [ ] = new datatype[size];



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

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

OOP JAVA

4


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


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



Cú pháp:

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

public static void show( ) { // method
System.out.println(x);
}
public static void main(String args[ ]) {
Temp t = new Temp( );
// object 1
t.show( );
// method call
Temp t1 = new Temp( );
// object 2
t1.x = 20;
t1.show( );
}
}

access_specifier modifier datatype method_name(parameter_list)
{
//body of method
}

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

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



Arithmetic Operators

public



private



Protected



default















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

OOP JAVA

OOP JAVA

+
*
/
%
++
-+=
-=
*=
/=
%=

Addition
Subtraction
Multiplication
Division
Modulus
Increment
Decrement
Addition and assignment
Subtraction and assignment
Multiplication and assignment
Division and assignment
Modulus and assignment


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

OOP JAVA

5


Relational Operators

Bitwise Operators
~
&
|
^
>>
<<








Bitwise unary NOT
Bitwise AND
Bitwise OR
Bitwise exclusive OR

Shift right
Shift left

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








OOP JAVA

==
!=
<
>
<=
>=

Equal to
Not equal to
Less than
Greater than
Less than or equal to
Greater than or equal to

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

Khoa Công nghệ Thông tin

Logical Operators





&&
||
^
!

Conditional Operator

Logical AND
Logical OR
Logical XOR
Logical unary NOT








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


OOP JAVA

OOP JAVA

Cú pháp
expression1 ? expression2 : expression3;
expression1
Biểu thức luận lí
Expression2
Trị trả về nếu expression1 bằng True
expression3
Trị trả về nếu expression1 bằng False

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

OOP JAVA

6


Độ ưu tiên Operator

Assignment Operator




= phép gán
Các giá trị có thể gán tới nhiều biến

Example
a = b = c = d = 90; //nhập nhằng

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

Định Dạng Xuất

if-else statement


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

OOP JAVA

OOP JAVA

Cú pháp
if (condition)
{
action1 statements;
}
else
{

action2 statements;
}

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

OOP JAVA

7


switch-case statement


while loop

Cú pháp



switch (expression)
{
case 'value1': action1 statement(s);
break;
case 'value2': action2 statement(s);
break;
:
:
case 'valueN': actionN statement(s);
break;

default: default_action statement(s);
}

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

Cú pháp
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

do-while loop


for loop

Cú pháp



do
{

action statements;
:
:
} while(condition);

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

OOP JAVA

OOP JAVA

Cú pháp
for(initialization statements; condition; increment statements)
{
action statements;
:
:
}

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

OOP JAVA

8


Branch statement





Tổng kết

Break
Continue
Return







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

OOP JAVA

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.

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

OOP JAVA


Tổng kết




Operators:
 Arithmetic
 Bitwise
 Relational
 Logical
 Conditional
 Assignment
Flow Controls:
 if-else statement
 switch-case statement
 while loop
 do-while loop
 for loop

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

OOP JAVA

9


NỘI DUNG


Chương 2




Nhập dữ liệu từ Keyboard




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

Nhập dữ liệu từ Keyboard
Sử dụng class BufferedReader nhập dữ liệu từ bàn phím thông qua
console
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)

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

Sử dụng BufferedReader



Class BufferedReader trong Package java.io;
Các bước nhập dữ liệu:
 Thêm lệnh vào đầu chương trình:

 import java.io.*;
 Thêm lệnh:
 BufferedReader dataIn = new BufferedReader( new
InputStreamReader(System.in) );
 Khai báo biến kiểu String chứa tạm dữ liệu nhập:
 String temp = dataIn.readLine();

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

HƯỚNG ĐỐI TƯỢNG

HƯỚNG ĐỐI TƯỢNG

Ví dụ
import java.io.BufferedReader;
import java.io.InputStreamReader;
Import java.io.*
import java.io.IOException;
public class GetInputFromKeyboard {
public static void main( String[] args ){
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
String name = "";
System.out.print("Nhập tên:");
name = dataIn.readLine();
System.out.println("Xin chào " + name );
}

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


HƯỚNG ĐỐI TƯỢNG

1


×