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 điều khiển
• Nhập dữ liệu từ bàn phím
• Công cụ soạn thảo
• Bài tập
34 trang |
Chia sẻ: vietpd | Lượt xem: 1618 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Lập trình Java cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Lập trình Java cơ bản
Cao Đức Thông Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
2Bà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 Java cơ bản
• Các kiểu dữ liệu cơ bản & toán tử
• Các cấu trúc điều khiển
• Nhập dữ liệu từ bàn phím
• Công cụ soạn thảo
• Bài tập
3Giới thiệu ngôn ngữ Java
• Lịch sử phát triển của Java
• Ra đời tại Sun Microsystems bởi James Gosling
• 1991: Version đầu tiên với tên “Oak”
• 1995: Tên chính thức là Java
• Mục đích của Java
• Dùng để phát triển ứng dụng cho các thiết bị điện tử
“thông minh”
• Tạo các trang web có nộ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...
4Giới thiệu ngôn ngữ Java
• Đặc điểm của Java
• Đơn giản
• Hướng đối tượng
• Đa nhiệm
• An toàn
• Garbage Collection
• Máy ảo (biên dịch và thông dịch)
• Khả chuyển (Portability)
• Phân tán
5Kiế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ồ
6Kiế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 số thư viện khác như JSP,
JavaMail, Java TAPI…
• 1995: Version JDK 1.0
• 1998: Version JDK 1.2 (Java 2nd Platform)
• 2004: Version JDK 1.5
7Phát triển ứng dụng Java
• Hai loại ứng 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 chuẩn để
phát triển ứng dụng.
8Phát triển ứng dụng Java
• Các bước phát triển
`
public class Hello {
public static …
}
Hello.java
Biên d chị
Thông d chị
-----------------------
------------------
------------------------
Hello.class
(bytecode)
javac Hello.java
java Hello
01001011
9Một chương trình Java cơ bản
1 // Tên file : Hello.java
2 /* Tác giả : Cao Đức Thông*/
3
1 public class Hello
5 {
6 // Phương thức main, điểm bắt đầu của chương trình
7 public static void main( String args[ ] )
8 {
9 System.out.println( “Hello World" );
10
11 } // Kết thúc phương thức main
12
13 } // Kết thúc lớp Hello
D u hi u chú thíchấ ệ =>
Làm cho ch ng trình d ươ ễ
hi u h n. Trình biên d ch ể ơ ị
s b qua nh ng dòng có ẽ ỏ ữ
d u chú thíchấ
Khai báo l pớ
M i CT ph i có ít nh t ỗ ả ấ
m t khai báo l pộ ớ
Tên l p ch a hàm main ph i ớ ứ ả
gi ng tên fileố
Đi m b t đ u và k t thúc c a l pể ắ ầ ế ủ ớ
Ph ng th c main() s đ c g i đ u ươ ứ ẽ ượ ọ ầ
tiên. M i CT th c thi ph i có m t ỗ ự ả ộ
ph ng th c main()ươ ứHi n th dãy ký t ra màn hìnhể ị ự
Các câu l nh ph i k t thúc b ng d u ch m ph yệ ả ế ằ ấ ấ ẩ
10
Một 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õ câu lệnh java Hello (không cần .class)
11
Một chương trình Java cơ bản
• Thay đổi cách hiển thị
public class Hello
{
public static void main(String args[])
{
System.out.print( “Chao\tmung\nban\nden\tvoi\nlap trinh Java\n" );
}
}
Chao mung
ban
den voi
lap trinh Java
12
Các kiểu dữ liệu cơ bản
• Java có hai kiểu dữ liệu
• Dữ liệu gốc chuẩn: Là các kiểu dữ liệu đã được
định nghĩa trong ngôn ngữ như số nguyên, số
thực, ký tự, logic
• Dữ liệu dẫn xuất: Do người dùng tự định nghĩa
như mảng, lớp, giao tiếp
• Ví dụ khai báo biến
• int x;
• Person ps;
13
Các kiểu dữ liệu cơ bản
• Kiểu số nguyên
• Kiểu số thực
Kiểu Kích thước Khoảng giá trị
byte 8 bits 256…255
short 16 bits 32768…32767
int 32 bits 232…232 – 1
long 64 bits 264…264 – 1
Kiểu Kích thước Khoảng giá trị
float 32 bits 3.4e38…3.4e38
double 64 bits 1.7e308…1.7e308
14
Các kiểu dữ liệu cơ bản
• Kiểu boolean: Nhận giá trị true hoặc false
• Kiểu char: Kiểu ký tự theo chuẩn Unicode
• Một số hằng ký tự
Hằng Ý nghĩa
\uxxxx Ký tự Unicode
\t Tab ngang
\n Xuống hàng
\r Dấu enter
\’ Nháy đơn
15
Các kiểu dữ liệu cơ bản
• Kiểu mảng
• Khai báo: int[] iarray; hoặc int iarray[];
• Cấp phát: iarray = new int[100];
• Khởi tạo:
int[] iarray = {1, 2, 3, 5, 6};
char[] carray = {‘a’, ‘b’, ‘c’};
Chú ý: Luôn khởi tạo hoặc cấp phát mảng trước khi sử
dụng
• Một số khai báo không hợp lệ:
int[5] iarray;
int iarray[5];
16
Các kiểu dữ liệu cơ bản
• Kiểu mảng
• Truy cập mảng
iarray[3] = 0;
carray[1] = ‘z’;
Chú ý: Chỉ số của mảng được tính từ 0
• Lấy số phần tử mảng: iarray.length
17
Các kiểu dữ liệu cơ bản
• Quy tắc đặt tên biến
• Bắt đầu bằng một chữ cái, một dấu gạch dưới
(_) hoặc một dấu dollard ($)
• Không có khoảng trắng giữa tên
• Sau ký tự đầu có thể dùng ký tự, số, dấu
dollard, dấu gạch dưới
• Không trùng với các từ khoá
• Ví dụ: a_1234_d, 1awas, _asdc, a sas, $erd,
%ats…
• Chú ý: Java phân biệt chữ hoa chữ thường
18
Các toán tử
= > < ! ~
?: == = !=
&& || ++ +
* / & |
^ % > >>>
+= = *= /= &=
|= ^= %= >=
>>>=
• Bảng toán tử
19
Các cấu trúc điều khiển
• Lệnh if/else
import java.util.Date;
public class TestIf
{
public static void main( String args[ ] )
{
Date today = new Date();
if( today.getDay() == 0 )
System.out.println(“Hom nay la chu nhat\n”);
else
System.out.println(“Hom nay khong la chu nhat\n" );
}
}
20
Các cấu trúc điều khiển
• Lệnh switch
import javax.swing.JOptionPane;
public class TestSwitch
{
public static void main(String[] args)
{
char c;
String str=JOptionPane.showInputDialog(null,"Nhap vao ky tu?");
c = str.charAt(0);
21
Các cấu trúc điều khiển
• Lệnh switch
switch(c)
{
case 'a': case 'e': case 'i': case 'o': case 'u':
System.out.println("Ky tu nay la nguyen am");
break;
default:
System.out.println("Ky tu nay la phu am");
}
System.exit(0); // kết thúc chương trình
}
}
22
Các cấu trúc điều khiển
• Vòng lặp for
• for(; ; )
;
// Chương trình tính tổng các số lẻ từ 1 đến 100
public class TestFor
{
public static void main(String[] args)
{
int tong = 0;
for(int i=1; i<=100; i+=2)
tong+=i;
System.out.println(tong);
}
}
23
Các cấu trúc điều khiển
• Vòng lặp while
• while ()
;
// Tính tổng các số lẻ từ 1 đến 100
int tong = 0, i = 1;
while (i<=100)
{
tong+=i; i+=2;
}
System.out.println(tong);
24
Các cấu trúc điều khiển
• Vòng lặp do/while
• do
{
;
} while ;
// Tính tổng các số lẻ từ 1 đến 100
int tong = 0, i=1;
do
{
tong+=i; i+=2;
} while (i<=100);
System.out.println(tong);
25
Nhập dữ liệu từ bàn phím
• Ví dụ nhập một số nguyên và một số thực
import java.io.*;
public class TestInput
{
public static void main(String[] args) throws Exception
{
BufferedReader inStream =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap mot so nguyen:");
String siNumber = inStream.readLine();
int iNumber = Integer.parseInt(siNumber);
26
Nhập dữ liệu từ bàn phím
System.out.print("Nhap mot so thuc:");
String sfNumber = inStream.readLine();
float fNumber = Float.parseFloat(sfNumber);
System.out.println("So nguyen:“ + iNumber);
System.out.println("So thuc:“ + fNumber);
}
}
27
Ví dụ: Xây dựng đối tượng Circle
• Cách 1: Sử dụng một file Circle.java duy nhất
• public class Circle
• {
• private int radius;
• public Circle(int r) { radius = r; }
• public double getArea() { return Math.PI*radius*radius; }
• public double getCircum() { return 2*Math.PI*radius; }
• public static void main(String[] args)
• {
• Circle c = new Circle(5);
• System.out.println("Area = " + c.getArea());
• System.out.println("Circumference = " + c.getCircum());
• }
• }
28
Ví dụ về đối tượng Circle
• Cách 2: Sử dụng một file với 2 lớp riêng biệt
• public class TestCircle
• {
• public static void main(String[] args)
• {
• Circle c = new Circle(5);
• System.out.println("Area = " + c.getArea());
• System.out.println("Circumference = " + c.getCircum());
• }
• }
• class Circle
• {
• ...
• }
29
Ví dụ về đối tượng Circle
• Cách 3: Sử dụng hai file riêng biệt
• // file TestCircle.java
• public class TestCircle
• {
• public static void main(String[] args)
• {
• ...
• }
• }
• // file Circle.java
• class Circle
• {
• ...
• }
30
Công cụ soạn thảo
• Notepad
• Jbuilder
• Eclipse
• EditPlus
• JCreator
• …
31
Chỉ dẫn thực hành
• Đặt biến môi trường PATH:
• Trong Windows: Nháy phải trên My Computer,
chọn Properties, chọn Advanced, chọn
Enviroment Variables, chọn biến PATH và edit,
thêm vào đường dẫn tới thư mục bin của bộ
JDK.
• Trong chế độ Console: Gõ lệnh
set Path=%Path%;đường dẫn tới bin
• Nên tham khảo java/docs khi làm việc
32
Bài tập
1. Viết chương trình tính tiền điện thoại:
— Tiền thuê bao hàng tháng là 27000 đ.
— Từ phút gọi thứ nhất đến phút thứ 200 giá cước
là 120 đ/phút.
— Từ phút gọi thứ 201 đến phút thứ 400 giá cước là
80 đ/phút.
— Từ phút gọi 401 đến phút cuối giá cước là 40
đ/phút.
33
Bài tập
1. Viết chương trình giải phương trình bậc hai ax2 + bx
+ c = 0 với a,b,c nhập từ bàn phím.
2. Viết chương trình nhập vào một dãy các số nguyên
khác 0, kết thúc nhập khi gặp số 0. Sau đó tính
trung bình cộng của dãy số đó. Tìm số lớn nhất, số
nhỏ nhất của dãy số.
3. Viết chương trình tính tổng
E = 1 + 1/1 + 1/2 + 1/3 +… + 1/n
với n nhập vào từ bàn phím
34
Bài tập
1. Mở rộng lớp Circle : thêm dữ liệu toạ độ tâm hình
tròn và phương thức kiểm tra một điểm cho trước
có nằm trong hình tròn hay không.
2. Viết chương trình nhập vào một hình tròn, sau đó
phát sinh 100 điểm ngẫu nhiên và cho biết có bao
nhiêu điểm nằm trong hình tròn vừa nhập.