... );
postorder( node.rightNode );
System.out.print( node.data + " " );
}
}
1
Lập trình Java cơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
19
Sử dụng Stack
public ... theo kiểu LIFO (Last
In First Out), phần tử vào sau cùng sẽ
được lấy ra trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack
(push)
•
Lấy ra phần tử: Luôn lấy ra ... System.out.println(names);
}
}
43
Giao tiếp Map
•
Giao tiếp Map cung cấp các thao tác xử lý
trên các bảng ánh xạ (Bảng ánh xạ lưu các
phần tử theo khoá và không được có 2 khoá
trùng nhau).
•
Một số phương...
... tich=%0.2f,s);
getch();
}
U/$0&&9"P#(&#M"*O
VOWX"1X"$*!*
VOWX&X"$*!*
.&/&=O
>Y(C&ZZ
>/[@*#OK$\8]!K$\8]
§2. LẬPTRÌNH CẤU TRÚC VÀ LẬPTRÌNH HƯỚNG ĐỐI TƯỢNG
2.1)Phương pháp lậptrình cấu trúc
>9?&N^:&#&89&*"*-
[@.&-)F!89&-_'&
-8
`2&2$&.;C2=!C-O
"C ... break;
getch();
}
t•
Chương trình sau gồm các hàm:
Nhập 1 ma trận thực cấp mxn
In 1 ma trận thực dưới dạnh bảng
Tìm phần tử lớn nhất và nhỏ nhất của dãy số thực
Chương trình sẽ nhập 1 ma trận, in ... bang:%0.2f,dmax);
printf(\n\n di qua 2 diem co chi so la %d va %d ,imax,jmax);
getch();
}
2.2)Phưong pháp lậptrình hướng đối tượngO
>p#C&)*L&&LR*""T8-.<L
";@&4*#=$4C!#8q&-.<L";?
2&5&R"T6&#*/!#&:R$T
*Q&#!/RrT8h2L0&A*
"*O
*""9k
s
tt@*##=$4C
tt@*##&:
uj
>#&:-.!R<$;&T/&Y/&RN*$LT
=0&A*L85R#!T&:&;&'o
1G"*Op<$;&2&5/&0&A*L&$Q&
=/=$&/L![$OYL/&:.vw&:
2LR<!N$F/$LT8
>bE$F&#=$4C&&:OD&:!#
=$4C2%&_L!!&:/x<EN#
=$4C...
... 11
firstNode lastNode
(a)
5
new ListNode
12 11
firstNode lastNode
(b)
5
new ListNode
7
1
Lập trình Java cơ bản
Cao Đức Thông Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
50
Ví dụ 1: TreeSet
// This program sorts a set of names
import java.util.*;
public class TreeSetTest1
{
public static void main(String[] args)
{
SortedSet names = new TreeSet();
names.add(new String("Minh Tuan"));
names.add(new String("Hai Nam"));
names.add(new String("Anh Ngoc"));
names.add(new String("Trung Kien"));
names.add(new String("Quynh Chi"));
names.add(new String("Thu Hang"));
System.out.println(names);
}
}
31
Bài tập tại lớp
•
Bài 1: Dùng Stack để viết chương trình in ra
dạng nhị phân của một số nguyên dương cho
trước.
•
Bài 2: Cài đặt phương thức search trong lớp
Tree để tìm một phần tử có giá trị cho trước.
7
Cài đặt Linked List
// Dinh nghia mot node trong linked list ... nó có thể tung ra ngoại lệ
UnsupportedOperationException.
49
Mô tả các cài đặt
•
HashMap: Bảng băm (cài đặt của Map).
•
LinkedHashMap: Bảng băm kết hợp với linked list
nhằm đảm bảo thứ tự các phần tử (cài đặt của
Map).
•
TreeMap: Cây đỏ đen (cài đặt của Map).
17
Stack
•
Stack là một cấu trúc theo kiểu LIFO (Last In
First Out), phần tử vào sau cùng sẽ được lấy ra
trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack (push)
•
Lấy ra phần tử: Luôn lấy ra từ đỉnh Stack (pop)
11
Cài đặt Linked List
public boolean isEmpty()
{
return (firstNode == null);
}
public void print()
{
ListNode node = firstNode;
while (node != null)
{
... nó có thể tung ra ngoại lệ
UnsupportedOperationException.
49
Mô tả các cài đặt
•
HashMap: Bảng băm (cài đặt của Map).
•
LinkedHashMap: Bảng băm kết hợp với linked list
nhằm đảm bảo thứ tự các phần tử (cài đặt của
Map).
•
TreeMap: Cây đỏ đen (cài đặt của Map).
17
Stack
•
Stack là một cấu trúc theo kiểu LIFO (Last In
First Out), phần tử vào sau cùng sẽ được lấy ra
trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack (push)
•
Lấy ra phần tử: Luôn lấy ra từ đỉnh Stack (pop)
11
Cài đặt Linked List
public boolean isEmpty()
{
return (firstNode == null);
}
public void print()
{
ListNode node = firstNode;
while (node != null)
{
...
... ra. Chương trình
dừng lại ngay lập tức, toàn bộ phần
mã phía sau sẽ không được thực thi.
•
Java hỗ trợ cách thức để xử lý ngoại lệ
(exception handling) tuỳ theo nhu cầu
của chương trình.
30
Ném ... nên sử dụng ngoại lệ thay cho các
luồng điều khiển trong chương trình.
• Ví dụ: Kiểm tra delta trong chương trình giải
phương trình bậc 2.
•
Nên thiết kế và sử dụng ngoại lệ một
cách thống ... gặp lỗi. Sau đó chương trình kết
thúc.
18
Một số lớp ngoại lệ
•
Lớp Throwable
•
Có một biến String để lưu thông tin chi tiết
về ngoại lệ đã xảy ra
•
Một số phương thức cơ bản
•
Throwable(String...
... các thực thể
• Dễ phát triển, mở rộng
chương trình
Object A
Object C
Object B
Object D
3
Các phương pháp lập trình
•
Step-by-Step Programming
• Lậptrình từng bước
•
Machine Language, Assembly ... (implements) một hay
nhiều giao tiếp nhưng chỉ có thể thừa kế
(extends) từ một lớp.
1
Lập trình Java cơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
23
Ví dụ về kế ... thức
fly(). Cài đặt giao diện này trong lớp
Sparrow.
5
Các phương pháp lập trình
•
Object-Oriented
Programming
•
Chương trình bao gồm
các đối tượng. Các đối
tượng tương tác với
nhau thông...
... Java được sử dụng để phát triển nhiều
loại ứng dụng khác nhau: cơ sở dữ liệu, mạng,
Internet, viễn thông
1
Lập trình Java cơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn ... dụng Java
•
Application: Ứng dụng độc lập
•
Applet: Ứng dụng chạy trên Web
•
Thư viện lớp Java
•
Bộ JDK bao gồm rất nhiều lớp chuẩn đã
được xây dựng sẵn.
•
Lập trình viên thường sử dụng các lớp ... tmtuan@ifi.edu.vn
6
Kiến trúc của Java
•
Java Development Kit – JDK
•
Bộ công cụ phát triển Java (jdk) gồm
trình biên dịch, thông dịch, trợ giúp, soạn
tài liệu… và các thư viện chuẩn
•
Ngoài ra còn một...
... Ket thuc ham main
} // Ket thuc lop TimeTest
Lớp TimeTest
3
Các phương pháp lập trình
•
Step-by-Step Programming
•
Lập trình từng bước
•
Machine Language, Assembly Language
1101011100111101
1010000111011101
0110111011001010
1000100100101011
... (overloading)
•
Mỗi phương thức phải có một phạm vi
nhất định
35
Java vs C++
1. Một chương trình Java chạy chậm hơn so với một
chương trình C tương ứng khoảng 20 lần.
2. Java không có kiểu liệt kê (enum), kiểu ... >= 0 && s < 60 ) ? s : 0 );
}
Lớp Time
2
Bài 2. OOP trong Java
•
Các phương pháp lập trình
•
Giới thiệu về OOP
•
Kế thừa (Inheritance)
•
Đa hình (Polymorphism)
•
Giao tiếp (Interface)
•
Lớp...
... ra. Chương trình dừng lại ngay lập tức,
toàn bộ phần mã phía sau sẽ không được
thực thi.
•
Java hỗ trợ cách thức để xử lý ngoại lệ
(exception handling) tuỳ theo nhu cầu của
chương trình.
21
Hai ... tập
4
Xử lý lỗi và ngoại lệ
⇒
Mã lệnh và mã xử lý lỗi nằm xen kẽ khiến
lập trình viên khó theo dõi được thuật toán
chính của chương trình.
⇒
Khi một lỗi xảy ra tại hàm A, tất cả các lời
gọi hàm lồng ...
ArithmeticException. Sau đó chương trình kết thúc.
18
Một số lớp ngoại lệ
•
Lớp Throwable
•
Có một biến String để lưu thông tin chi tiết
về ngoại lệ đã xảy ra
•
Một số phương thức cơ bản
•
Throwable(String...
... c.getCircum());
• }
•
}
2
Bài 1. Tổng quan lậptrình Java
•
Giới thiệu ngôn ngữ Java
•
Kiến trúc của Java
•
Nội dung một chương trình Java cơ bản
•
Các kiểu dữ liệu cơbản & toán tử
•
Các cấu trúc ... chương trình Java cơ bản
•
Biên dịch chương trình
• Vào chế độ Console của Windows
•
Gõ câu lệnh javac Hello.java
•
Nếu không có thông báo lỗi, file Hello.class
sẽ được tạo ra
•
Thực thi chương trình
•
Gõ ... dụng Java
• Application: Ứng dụng độc lập
• Applet: Ứng dụng chạy trên Web
•
Thư viện lớp Java
• Bộ JDK bao gồm rất nhiều lớp chuẩn đã
được xây dựng sẵn.
•
Lập trình viên thường sử dụng các lớp...
... nguyên thuỷ đều
phải tạo ra bằng từ khoá new.
7. Java không có tiền xử lý (preprocessor)
1
Lập trình Java cơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
37
Bài tập
1. ... sinh
In ra thông tin về các thí sinh có tổng điểm lớn
hơn 15
3
Các phương pháp lập trình
•
Step-by-Step Programming
•
Lập trình từng bước
•
Machine Language, Assembly Language
1101011100111101
1010000111011101
0110111011001010
1000100100101011
... cao,
công thức Heron, độ dài 2 cạnh và góc.
4
Các phương pháp lập trình
•
Procedural Programming
•
Thiết kế top-down.
Chương trình được chia
thành các hàm, thủ tục.
•
Pascal, C
•
Hạn chế:...
... xây dựng một Class để điều khiển các tập tin định dạng theo MPEG. Bạncó thể thao các tác
vụ cơbản và các thuộc tính của tập tin MPEG bằng Class này.
Private Declare Function mciGetErrorString ... ''tê liệt'' không? Bạn hoàn toàn có thể vì Desktop cũng là một cửa sổ như bao
chương trình khác, điều bạn cần biết là class name của nó ''Progman''.
Bạn thêm ... Id,LastName +', '+ FirstName AS Name ''; //(các trường dữ liệu trên đây là
giả lập)
selectCmd += ''FROM aRepresentative WHERE Id=SLS ORDER BY LastName '';...