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