1. Trang chủ
  2. » Công Nghệ Thông Tin

Cú pháp cơ bản của ngôn ngữ java

58 559 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 734,5 KB

Nội dung

Kết thúc bài học bạn có thể: Biết cách định nghĩa 1 tên trong java Biết các từ khóa của java. Hiểu các kiểu dữ liệu cơ bản của java. Nhận biết được cú pháp java gần hoàn toàn giống C. Giải thích được cơ chế điều khiển chương trình Biết các đặc tính về mảng với java Sử dụng được các hàm toán trong gói java.lang Sử dụng được các hàm nhập xuất dữ liệu cơ bản.

Trang 1

LẬP TRÌNH JAVA

ngôn ngữ Java

Trang 2

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 2

Mục tiêu

 Kết thúc bài học bạn có thể:

 Biết cách định nghĩa 1 tên trong java

 Biết các từ khóa của java.

 Hiểu các kiểu dữ liệu cơ bản của java.

 Nhận biết được cú pháp java gần hoàn toàn giống C.

 Giải thích được cơ chế điều khiển chương trình

 Biết các đặc tính về mảng với java

 Sử dụng được các hàm toán trong gói java.lang

 Sử dụng được các hàm nhập xuất dữ liệu cơ bản.

Trang 3

Nội dung

 2.1- Chú thích trong java

 2.2- Từ khóa của java- Cách đặt tên

 2.3- Kiểu cơ bản trong java

 2.4- Biến: Gán trị và khởi tạo

Trang 4

 Cách viết chú thích giống C++

 Chú thích là công cụ:

 Giải thích chương trình

 Lập tài liệu cho chương trình: Tác gỉa,

version, những đặc điểm của chương trình

Trang 5

 Từ khóa đặc tả đặc tính một method: private, public,

protected, final, static, abstract, synchronized, volatile, strictfp

 Hằng (literal): true, false, null

 Từ khóa liên quan đến method: return, void

Trang 6

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 6

2.2- Từ khóa- Cách đặt tên

 Từ khóa cho việc quản lý lỗi: try, catch finally, throw,

throws

 Từ khóa liên quan đến đối tượng: new, extends,

implements, class, instanceof, this, super

Cách đặt tên (identifier):

 Bắt đầu bằng ký tự, ký tự gạch dưới (underscore ‘_’ ) hay ký tự

‘$’

 Sau đó là các ký tự ký số hay ‘_’, ‘$’ , không dùng các ký tự

khác như: khoảng trống, ký hiệu phép toán

 Một tên không thể là true, false, hoặc null.

 Một tên không thể là một từ khóa.

 Một tên có thể có độ dài bất kỳ.

 Từ khóa và tên có tính chất case-sensitive

Nhận xét: Gần như y hệt C++

Trang 7

2.3- Kiểu dữ liệu cơ bản trong java

Type Default Size

số thực

char \u0000 2 \u0000 \uFFFF ký tự Unicode

Trang 8

 nhưng L thường dùng thay cho l vì sợ nhầm với 1.

 178  int (default) 45.62  double (default)

 178L  long 44.21f  float

 11.19e8  double (default)

 ‘z’  char , hằng klý tự để trong cặp nhát đơn (single quote character)

Trang 9

2.4- Biến- Định nghĩa, khởi tạo

 Biến = Trị có thay đổi theo thời gian

 3 đặc điểm của biến:

Tên biến, Trị khởi tạo, tầm vực (scope)

Scope của biến: khối chương trình mà biến có

ý nghĩa (tham khảo được)

 Cú pháp định nghĩa biến:

DataType [[identifier [ = InitValue]],…] ;

DataType variableName;

 int count , age1= 21, age2= 2*age1;

 char ch1=‘z’, ch2;

 Giống C

Trang 10

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 10

2.4- Biến- Định nghĩa, khởi tạo

 Ví dụ:

int x; // Khai báo x là một

// biến nguyên (integer);

System.out.println("Dien tich bang " +

dientich + " voi ban kinh la " + bankinh);

Trang 11

2.4- Biến- Định nghĩa, khởi tạo

 Lệnh gán và biểu thức gán

 Dạng thức: variable = expression;

 Ví dụ:

x = 1; // Gán 1 cho x;

bankinh = 1.0; // Gán 1.0 cho bankinh;

a = 'A'; // Gán 'A' cho a;

x = x + 1;

dttg = Math.sqrt(p*(p-a)*(p-b)*(p-c)) ;

Trang 13

2.5- Toán tử- Operators

 Ký hiệu mô tả phép toán

 Arithmetic ops: +, -, *, /, %, ++,

 Relational ops : <, <=, == >=, >, !=

 Logical ops: && ||

 Bitwise ops: ~, &, |, ^ (xor), >>, <<, &=, |=,

Trang 14

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 14

2.5- Toán tử- Operators

 + - * / %

 int i1 = 5/2 ; ⇒ kết quả là số nguyên i1 = 2

 float i2 = 5.0/2 ; ⇒ kết quả là số thực i2 = 2.5

 byte i3 = 5 % 2; ⇒ i3 = 1 (số dư của phép chia)

Trang 15

2.5- Toán tử- Operators

 CHÚ Ý

 Các phép tính với số dấu chấm động được lấy xấp xỉ

vì chúng được lưu trữ không hoàn toàn chính xác Ví dụ:

System.out.println (1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);

hiển thị 0.5000000000000001, không phải 0.5

System.out.println (1.0 - 0.9);

hiển thị 0.09999999999999998, không phải 0.1

 Các số nguyên được lưu trữ chính xác nên các phép tính với chúng cho kết quả chính xác

Trang 16

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 16

2.5- Toán tử- Operators

 Biểu thức toán học

 Được chuyển thành công thức Java như sau:

(3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)

Trang 19

int newNum = 10*(++i); i = i + 1;

int newNum = 10*i;

Equivalent to

Trang 20

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 20

2.5- Toán tử- Operators

 Các toán tử tăng và giảm

 Sử dụng các toán tử tăng và giảm giúp các biểu thức ngắn gọn hơn, nhưng cũng làm

cho chúng phức tạp và khó đọc hơn

 Nên tránh sử dụng các toán tử này trong

những biểu thức làm thay đổi nhiều biến

hoặc sử dụng cùng một biến nhiều lần như sau: int k = ++i + i

Trang 21

2.5- Toán tử- Operators

 Biểu thức gán và Câu lệnh gán

 Trước Java 2, tất cả các biểu thức có thể

được sử dụng như câu lệnh Kể từ Java 2, chỉ những loại biểu thức sau có thể là câu lệnh:

 variable op= expression; // Với op là +, -, *, /, %

 ++variable;

 variable++;

 variable;

 variable ;

Trang 22

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 22

2.5- Toán tử- Operators

 instanceof : toán tử kiểm tra 1 đối tượng có

thuộc 1 lớp ?  true | false

 Ví dụ:

class InstanceOfDemo

{ public static void main (String args[])

{ InstanceOfDemo t = new InstanceofDemo();

Trang 23

2.5- Toán tử- Operators

 Chuyển đổi dữ liệu kiểu số (Ép kiểu)

 Khi thực hiện một phép tính nhị phân chứa 2 toán hạng khác kiểu, Java tự động chuyển kiểu toán hạng theo luật sau:

 Nếu một toán hạng kiểu double, toán hạng khác được chuyển đổi thành kiểu double.

 Nếu không thì, nếu một toán hạng kiểu float, toán hạng khác được chuyển đổi thành kiểu float.

 Nếu không thì, nếu một toán hạng kiểu long, toán hạng khác được chuyển đổi thành kiểu long.

 Nếu không thì, cả hai toán hạng được chuyển đổi thành kiểu int.

Trang 26

Single Quote \' \u0027

Double Quote \" \u0022

Trang 27

2.5- Toán tử- Operators

 Ép kiểu giữa kiểu ký tự và kiểu số

 int i = 'a'; // tương tự int i = (int)'a';

 char c = 97; // tương tự char c = (char)97;

Trang 28

 Kết quả của phép so sánh là một giá trị

logic Boolean : true hoặc false

Trang 31

2.5- Toán tử- Operators

 Bảng chân lý của toán tử !

true false !(1 > 2) là true, vì (1 > 2) là false.

false true !(1 > 0) là false, vì (1 > 0) là true.

Trang 32

(3 > 2) && (5 >= 5) là true, vì cả (3 > 2) và (5 >= 5) đều là true.

(3 > 2) && (5 > 5) là false, vì (5 > 5) là false.

Trang 34

(2 > 3) ^ (5 > 1) là true, vì (2 > 3) là false và (5 > 1) là true.

(3 > 2) ^ (5 > 1) là false, vì cả (3 > 2) và (5 > 1) đều là true.

Trang 35

2.5- Toán tử- Operators

 Xác định năm nhuận?

 Một năm là năm nhuận nếu nó chia hết cho

4, nhưng không chia hết cho 100 hoặc nó

chia hết cho 400

 Source code xác định năm nhuận như sau:

Trang 36

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 36

2.5- Toán tử- Operators

 Thứ tự ưu tiên các toán hạng

 Biểu thức sau được tính như thế nào?

3 + 4 * 4 > 5 * (4 + 3) - ++i

 Tất nhiên phải ưu tiên trong ngoặc trước,

ngoài ngoặc sau

 Chỉ dùng ngoặc tròn

 Nhiều tầng ngoặc thì thứ tự ưu tiên ngoặc từ trong ra ngoài

Trang 37

2.5- Toán tử- Operators

 Thứ tự ưu tiên các toán hạng

1 var++,

var 2 +, - (dấu dương, âm), ++var, var

3 (type) Casting (ép kiểu)

11 | (OR không có điều kiện)

12 && (AND có điều kiện)

|| (OR có điều kiện)

Trang 38

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 38

2.5- Toán tử- Operators

 Sự kết hợp toán tử

 Khi tính toán với 2 toán hạng có cùng mức

ưu tiên, sự kết hợp toán tử sẽ xác định thứ

tự các phép tính Tất cả các toán tử nhị

phân, ngoại trừ toán tử gán, là kết hợp trái (left-associative)

 a – b + c – d là tương đương với ((a – b) + c) – d

 Các toán tử gán là kết hợp phải Do đó biểu thức

 a = b += c = 5 tương đương với a = (b += (c = 5))

Trang 39

 Luật 3: Luật kết hợp áp dụng cho 2 toán

hạng cạnh nhau có cùng mức ưu tiên

Trang 41

 Khi các toán hạng có hiệu ứng lề ( side effects ), thứ tự tính toán của các toán hạng rất cần quan tâm

 Ví dụ, x sẽ bằng 1 trong đoạn lệnh sau, vì a được tính bằng 0 trước khi ++a tăng nó lên thành 1

int a = 0;

int x = a + (++a); // 0 + 1

 Nhưng x sẽ bằng 2 trong đoạn lệnh sau, vì ++a tăng

nó lên thành 1, rồi cộng với chính nó.

int a = 0;

int x = ++a + a; // 1 + 1

2.5- Toán tử- Operators

Trang 42

(1) Biểu thức con đầu tiên có

thể được tính từ bên trái

(2) Cộng (3) Cộng trong ngoặc (4) Nhân

(5) Trừ (6) Lớn hơn

2.5- Toán tử- Operators

Trang 43

 Kiểu char chỉ biểu diễn 1 ký tự Để biểu diễn một chuỗi ký tự, sử

dụng kiểu dữ liệu String Ví dụ:

String message = "Welcome to Java";

 String là một lớp được định nghĩa trước trong thư viện Java giống như System class và JOptionPane class

 Kiểu String không phải là kiểu cơ sở mà là một kiểu tham chiếu

( reference type ) Bất kỳ lớp Java nào cũng có thể được sử dụng như một kiểu tham chiếu thay cho một biến

 Hiện tại, bạn chỉ cần hiểu cách khai báo một biến String, cách gán một chuỗi ký tự cho một biến, và cách ghép các chuỗi.

2.6- Kiểu chuỗi ký tư ̣

2.6- Kiểu chuỗi ký tư ̣

Trang 44

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 44

 Ghép chuỗi:

 String message = "Welcome " + "to " + "Java";

// ⇒ message = "Welcome to Java"

 String s = "Chuong" + 2;

// ⇒ s trở thành Chuong2

 String s1 = "Hello" + 'B';

// s1 trở thành HelloB

2.6- Kiểu chuỗi ký tư ̣

2.6- Kiểu chuỗi ký tư ̣

Trang 45

 Chuyển ký tự thành số nguyên:

 Dữ liệu trả về từ input dialog box là một chuỗi ký tự Nếu bạn nhập vào một giá trị số 123, nó trả về chuỗi “123” Để nhận được

dữ liệu là một số, bạn phải chuyển đổi

 Để chuyển đổi một chuỗi ký tự thành một giá trị int, bạn có thể sử dụng phương thức tĩnh parseInt trong lớp Integer như sau:

int intValue = Integer.parseInt(intString);

trong đó intString là một chuỗi số nguyên như “123”

2.6- Kiểu chuỗi ký tư ̣

2.6- Kiểu chuỗi ký tư ̣

Trang 46

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 46

 Chuyển đổi ký tự thành số thực:

 Để chuyển đổi một chuỗi ký tự thành một giá trị double, bạn có thể sử dụng phương thức tĩnh parseDouble trong lớp Double như sau:

double doubleValue = Double.parseDouble(doubleString);

trong đó doubleString là một chuỗi số thực như “123.45”

2.6- Kiểu chuỗi ký tư ̣

2.6- Kiểu chuỗi ký tư ̣

Trang 47

2.7 Nhập dữ liệu từ Command Prompt

 Sử dụng MyInput.java

 hoặc sử dụng lớp Scanner (JDK 1.5)

import java.util.*;

public class readint{

static Scanner s=new Scanner(System.in);

public static void main(String[] abc){

System.out.print("Doc vao mot so nguyen: "); int a=readInt();

System.out.println("So nguyen la: " + a);

}

public static int readInt(){

return s.nextInt();

Trang 49

Chú thích

 Đặt một chú thích đầu chương trình để giải thích chương trình làm việc gì, các đặc điểm của CT, các cấu trúc dữ liệu mà CT hỗ trợ

và các kỹ thuật đặc biệt mà CT sử dụng

 Đặt trong chú thích tên và mô tả rõ ràng về bạn ở đầu chương trình.

 Đặt chú thích thích hợp giải thích các lớp,

Trang 50

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 50

Quy ước đặt tên

 Chọn các tên mô tả và có ý nghĩa.

 Tên biến và phương thức:

 Sử dụng chữ thường Nếu tên có chứa

một vài từ, hãy viết liền nhau, sử dụng

chữ thường ở từ thứ nhất và viết hoa ký

tự đầu tiên của các từ tiếp theo

 Ví dụ, các biến radius và area, phương

thức computeArea

Trang 53

public class Test { public static void main(String[] args) { System.out.println("Block Styles");

}

End-of-line style

Next-line

style

Trang 54

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 54

2.9- Nhập xuất dữ liệu

 Nhập xuất dữ liệu là tác vụ mức hệ thống

 Gói java.io chứa các lớp cho việc xuất nhập.

 Cần tham khảo gói này.

 Java cung cấp class System mô tả hệ thống

 System.out là đối tượng xuất mặc định (màn hình)

 System.in là đối tượng nhập mặc định ( bàn phím)

Methods xuất dữ liệu ra màn hình:

System.out.print( Dữ liệu xuất );

System.out.println( Dữ liệu xuất );

Dữ liệu xuất có thể là : ký tự, số, chuỗi,…

Trang 55

2.9- Nhập xuất dữ liệu

Trang 56

 số nguyên, số thực có thể nhập với nhiều phím nên

các phím gõ cần giữ lại (đệm, buffer),

 có thể cần kiểm tra phím gõ (nhập số mà gõ phím

chữ  sai).

 Tham khảo tài liệu về gói java.io

 Nếu viết ứng dụng hướng giao diện của sổ,

không xuất nhập trực tiếp mà thông qua các đối

tượng trong giao diện người sử dụng

Trang 57

Minh họa xuất nhập

import java.io.*; // file InOutDemo.java

System.out.println(" character read :" + c);

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

Trang 58

20/08/13 Bộ Môn CNPM - ĐHBK Hà Nội 58

2.11- Bài tập

Viết các chương trình sau:

(1) Xuất bảng cửu chương từ 2 đến 9.

(2) Xuất trị bình phương , lập phương từ 1 đến 10.

(3) Tạo 1 mảng số int dạng in-line 10 phần tử, xuất

mảng này tăng dần.

(4) Nhập 1 mảng int các số mang trị là mã của các ký

tự nhập từ bàn phím Xuất mảng này dạng chữ rồi

xuất mã của chúng.

(5) Xuất 100 số Fibonacci đầu tiên Dãy Fibonacci :

1,1,2,3,5,8,… 2 số đầu là 1, các số sau bằng tổng 2

số trước nó.

Ngày đăng: 20/08/2013, 16:48

HÌNH ẢNH LIÊN QUAN

 Bảng chân lý của toán tử ! - Cú pháp cơ bản của ngôn ngữ java
Bảng ch ân lý của toán tử ! (Trang 31)
 Bảng chân lý của toán tử ! - Cú pháp cơ bản của ngôn ngữ java
Bảng ch ân lý của toán tử ! (Trang 32)
 Bảng chân lý của toán tử ! - Cú pháp cơ bản của ngôn ngữ java
Bảng ch ân lý của toán tử ! (Trang 33)
 Bảng chân lý của toán tử ! - Cú pháp cơ bản của ngôn ngữ java
Bảng ch ân lý của toán tử ! (Trang 34)
 System.out là đối tượng xuất mặc định (màn hình) - Cú pháp cơ bản của ngôn ngữ java
ystem.out là đối tượng xuất mặc định (màn hình) (Trang 54)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w