... postorder( node.rightNode );
System.out.print( node.data + " " );
}
}
1
Lập trình Javacơ 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...
... chương trình trên?
Bài tập 10
class WhileStruct
{
{
int n=10;
while(true){
if(n>0){
JAVA CƠ BẢN
Mã sinh viên:
Họ và tên:
Lớp học phần:
Ngày nộp bài:
Bài tập 1
Những từ khóa hoặc tên dưới ...
B[0]=34.6;
B[1]=4.29;
B[2]=54.1;
B[3]=12.46;
B[4]=42.14;
(B[i]);
}
}
}
Hãy cho biết kết quả của chương trình trên?
Bài tập 14
import java. util.*;
class Thu
{
public static void main(String[] args)
{
Calendar today = Calendar.getInstance();
int...
... trình Java
12
Ví dụ
Khai báo biến:
int primitive = 5;
String reference = “Hello”;
Sự biểu diễn bộ nhớ:
Nguyễn Đức Hiển – Bài giảng Lập trình Java
25
Tóm tắt
Các thành phần cơbản của Java
Các ... giảng Lập trình Java
7
Chuyển kiểu
Thứ tự chuyển kiểu:
byte short int long float double
Các ví dụ:
Nguyễn Đức Hiển – Bài giảng Lập trình Java
13
Nhập/xuất cơ bản
Tạo đối tượng ... Hiển – Bài giảng Lập trình Java
3
Nội dung
Kiểu dữ liệu Java
Toán tử
Cấu trúc điều khiển
Mảng
Kiểu chuổi (String)
Nguyễn Đức Hiển – Bài giảng Lập trình Java
21
Các toán tử chuổi
Toán...
... ListNode
7
1
Lập trình Javacơ 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)
{
...
... methodeX()
Exception in thread "main" java. lang.NullPointerException
at MyArray.methodeX(MyArray .java: 14)
at MyArray.main(MyArray .java: 7)
Giải thích: Hệ thống đã tung ra một exception ... 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 s); // Tạo một ngoại lệ có
tên là s.
•
String getMessage(); // Lấy thông ...
mã thí sinh bị lỗi.
25
Ngoại lệ do người dùng tạo
•
Định nghĩa lớp ngoại lệ
// file MyException .java
public class MyException extends Exception
{
public MyException(String msg)
{
super(msg);
}
}
3
Xử...
...
(extends) từ một lớp.
1
Lập trình Javacơ 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ừa trong Java
// File InheritanceTest .java
public class InheritanceTest
{
... nhật.
36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương
thức finalize() được gọi bởi Garbage Collector.
10. Java không hỗ trợ đối số mặc định.
11. Java ... Time .java. Nó chứa
các định nghĩa về thời gian.
•
Lớp TimeTest nằm trong file TimeTest .java.
Nó dùng để kiểm tra lớp Time. Lớp TimeTest
chứa hàm main.
• Khi chạy chỉ cần gõ:
•
javac TimeTest .java
•
java...
... dụng.
5
Kiến trúc của Java
•
Java Platform
•
Java Virtual Machine (Java VM)
•
Java Application Programming Interface (Java API)
Hardware-Platform
Java VM
Java API
myProgram .java
Java Platform
Mã nguồn
3
Giới ... dung động (web applet)
•
Hiện nay, 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 Javacơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, ... viện khác như
JSP, JavaMail, Java TAPI…
•
1995: Version JDK 1.0
•
1998: Version JDK 1.2 (Java 2
nd
Platform)
•
2004: Version JDK 1.5
4
Giới thiệu ngôn ngữ Java
•
Đặc điểm của Java
•
Đơn giản
•
Hướng...
... nó.
36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương
thức finalize() được gọi bởi Garbage Collector.
10. Java không hỗ trợ đối số mặc định.
11. Java ... class. Mọi biến
hay hàm của Java đều nằm trong một class nào đó.
3. Java không có toán tử phạm vi (scope) ::
4. Cỡ của các kiểu dữ liệu nguyên thuỷ (primitive) trong
Java không phụ thuộc vào máy. ... (Unicode).
5. Biểu thức logic trong Java chỉ nhận giá trị boolean.
6. Trong Java, mọi biến không thuộc kiểu nguyên thuỷ
đều phải tạo ra bằng từ khoá new.
7. Java không có tiền xử lý (preprocessor)
33
Gói...
... "main" java. lang.ArithmeticException: / by zero
at MyDivision.C(MyDivision .java: 14)
at MyDivision.B(MyDivision .java: 11)
at MyDivision.A(MyDivision .java: 8)
at MyDivision.main(MyDivision .java: 4)
Giải ... 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 s); // Tạo một ngoại lệ có
tên là s.
•
String getMessage(); // Lấy thông ... System.out.println("Copy completed");
}
Khai báo khả năng tung ngoại lệ
Tung ngoại lệ
6
Ví dụ 1
import java. awt.Point;
public class MyArray
{
public static void main(String[ ] args) {
System.out.println("Goi...
...
5
Kiến trúc của Java
•
Java Platform
•
Java Virtual Machine (Java VM)
•
Java Application Programming Interface (Java API)
Hardware-Platform
Java VM
Java API
myProgram .java
Java Platform
Mã nguồn
27
Ví ... c.getCircum());
• }
•
}
2
Bài 1. Tổng quan lập trì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 Javacơ bản
•
Các kiểu dữ liệu cơbản & toán tử
•
Các cấu trúc điều ... static …
}
Hello .java
Biên dịch
Thông dịch
Hello.class
(bytecode)
javac Hello .java
java Hello
01001011
6
Kiến trúc của Java
•
Java Development Kit – JDK
• Bộ công cụ phát triển Java (jdk) gồm...
... trong Java chỉ nhận giá trị boolean.
6. Trong Java, mọi biến không thuộc kiểu 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 Javacơ bản
Cao ... file TimeTest .java.
Nó dùng để kiểm tra lớp Time. Lớp TimeTest
chứa hàm main.
•
Khi chạy chỉ cần gõ:
•
javac TimeTest .java
•
java TimeTest
•
Java sẽ tự động tìm và dịch file Time .java
26
Đa hình ... && second < 60 ) ? second : 0 );
}
13
•
javac TimeTest .java
•
java TimeTest
Chạy TimeTest
36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương...
... trình JAVA đầu tiên
Để có thể biên dịch và chạy các chương trình java ta phải cài
• JRE (Java Runtime Enviroment) môi trường thực thi của java, nó bao gồm:
JVM (Java Virtual Machine) máy ảo java ... trình java sang mã byte code ta dùng lệnh
C:\JDK1.4\BIN\javac TênTệp .java
- Để thông dịch và chạy chương trình ta sử dụng lệnh
C:\JDK1.4\BIN \java TênTệp
Để biên dịch và chạy chương trình Java ... dụng Java
Với Java ta có thể xây dựng các kiểu ứng dụng sau:
1. Ứng dụng Applets
Applet là chương trình Java được tạo ra để sử dụng trên Internet thông qua
các trình duyệt hỗ trợ Java...
... (Java
Development Kit)
Sun Microsystem ñưa ra ngôn ngữ lập trình Java qua sản phẩm có tên là Java
Development Kit (JDK). Ba phiên bản chính là:
Java 1.0 - Sử dụng lần ñầu vào năm 1995
Java ...
2.6.10 java. sql
Package này chứa Java DataBase Connectivity (JDBC), dùng ñể truy xuất cơ
sở dữ liệu quan hệ như Oracle, SQL Server.
2.7 Các ñặc trưng mới của Java 2
Các phiên bản trước của Java ...
23
Chương 2
NHẬP MÔN JAVA
Mục tiêu
Nắm ñược các ñặc trưng của Java
Các kiểu chương trình Java
Ðịnh nghĩa về máy ảo Java
Các nội dung của JDK (Java Development Kit)
Sơ...