lp trình java cơ bn - lnduy's blog · pdf file•nội dung một chương...

34
Lập trình Java cơ bản 1

Upload: truongnhan

Post on 05-Feb-2018

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Lập trình Java cơ bản

1

Page 2: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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ử

2

• 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

Page 3: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Giớ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

3

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

Page 4: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Giới thiệu ngôn ngữ Java

• ðặc điểm của Java• ðơn giản• Hướng đối tượng• ða nhiệm

4

• 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

Page 5: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Kiến trúc của Java

• Java Platform• Java Virtual Machine (Java VM)• Java Application Programming Interface (Java API)

myProgram.java

5

Hardware-Platform

Java VM

Java API

myProgram.java

Java Platform

Mã nguồn

Page 6: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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 số thư viện khác như

6

• 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• 2011: Version JDK 1.7

Page 7: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Phá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

7

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

Page 8: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Phát triển ứng dụng Java

• Các bước phát triển

`

public class Hello {

public static …

}

Hello.java

Thông dịch

java Hello

01001011

8

Biên dịch-----------------------

------------------

------------------------

Hello.class (bytecode)

javac Hello.java

Page 9: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Một chương trình Java cơ bản

1 // Tên file : Hello.java

2 /* Tác giả : Cao ðức Thông*/3

4 public class Hello

5 {

6 // Phương thức main, điểm bắt đầu của chương trình7 public static void main( String args[ ] )

8 {

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

9

8 {

9 System.out.println( “Hello World" );

10

11 } // Kết thúc phương thức main12

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

ð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

Page 10: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

10

sẽ được tạo ra

• Thực thi chương trình• Gõ câu lệnh java Hello (không cần .class)

Page 11: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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[ ])

{

11

System.out.print( “Chao\tmung\nban\nden\tvoi\nlap trinh Java\n" );

}

}Chao mung

ban

den voi

lap trinh Java

Page 12: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

12

• 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;

Page 13: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các kiểu dữ liệu cơ bản

• Kiểu số nguyênKiể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

13

• Kiểu số thực

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

Page 14: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

14

\uxxxx Ký tự Unicode

\t Tab ngang

\n Xuống hàng

\r Dấu enter

\’ Nháy đơn

Page 15: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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};

15

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];

Page 16: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

16

Chú ý: Chỉ số của mảng được tính từ 0

• Lấy số phần tử mảng: iarray.length

Page 17: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

17

• 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

Page 18: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các toán tử

= > < ! ~?: == <= >= !=&& || ++ -- +

• Bảng toán tử

18

&& || ++ -- +- * / & |^ % << >> >>>

+= -= *= /= &=|= ^= %= <<= >>=

>>>=

Page 19: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Lệnh if/elseimport java.util.Date;public class TestIf {

public static void main( String args[ ] ){

19

{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" );}

}

Page 20: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Lệnh switchimport javax.swing.JOptionPane;public class TestSwitch{

public static void main(String[] args){

20

{char c;String str=JOptionPane.showInputDialog(null,"Nhap vao ky tu?");c = str.charAt(0);

Page 21: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Lệnh switchswitch(c){

case 'a': case 'e': case 'i': case 'o': case 'u':System.out.println("Ky tu nay la nguyen am");break;

21

break;default:

System.out.println("Ky tu nay la phu am");}System.exit(0); // kết thúc chương trình

}}

Page 22: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Vòng lặp for• for(<khởi tạo>; <điều kiện lặp>; <bước nhảy>)

<khối lệnh>;// Chương trình tính tổng các số lẻ từ 1 đến 100public class TestFor

22

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

}}

Page 23: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Vòng lặp while• while (<biểu thức boolean>)

<khối lệnh>;

// Tính tổng các số lẻ từ 1 đến 100int tong = 0, i = 1;

23

int tong = 0, i = 1;while (i<=100){

tong+=i; i+=2;}System.out.println(tong);

Page 24: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Các cấu trúc điều khiển

• Vòng lặp do/while• do

{<khối lệnh>;

} while <biểu thức boolean>;

24

} while <biểu thức boolean>;

// Tính tổng các số lẻ từ 1 đến 100int tong = 0, i=1;do

{tong+=i; i+=2;

} while (i<=100);System.out.println(tong);

Page 25: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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{

25

{BufferedReader inStream =

new BufferedReader(new InputStreamReader(System.in));

System.out.print("Nhap mot so nguyen:");String siNumber = inStream.readLine();int iNumber = Integer.parseInt(siNumber);

Page 26: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

26

System.out.println("So thuc:“ + fNumber);}

}

Page 27: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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; }

27

• 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());• }• }

Page 28: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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());

28

• System.out.println("Circumference = " + c.getCircum());• }• }

• class Circle• {• ...• }

Page 29: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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)• {• ...• }

29

• }• }

• // file Circle.java• class Circle• {• ...• }

Page 30: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Công cụ soạn thảo

• Notepad• Jbuilder• Eclipse• EditPlus

30

• EditPlus• JCreator• …

Page 31: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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

31

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

Page 32: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

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á

32

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

Page 33: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Bài tập

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

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

33

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

4. Viết chương trình tính tổngE = 1 + 1/1 + 1/2 + 1/3 +… + 1/nvới n nhập vào từ bàn phím

Page 34: Lp trình Java cơ bn - Lnduy's Blog · PDF file•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 lệnh phải kt thúc

Bài tập

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

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

34

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.