Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản

Định danh

n Định danh:

n Xâu ký tự thể hiện tên các biến, các

phương thức, các lớp và nhãn

n Quy định với định danh:

n Các ký tự có thể là chữ số, chữ cái, '$'

hoặc ‘_’

n Tên không được phép:

n Bắt đầu bởi một chữ số

n Trùng với từ khóa

n Chứa dấu cách

n Phân biệt chữ hoa chữ thường

n Yourname, yourname, YourName và

yourName là 4 định danh khác nhau

1. Định danh (2)

n Quy ước với định danh (naming convention):

n Bắt đầu bằng chữ cái

n Gói (package): tất cả sử dụng chữ thường

n theexample

n Lớp (Class): viết hoa chữ cái đầu tiên trong các từ ghép

lại

n TheExample

n Phương thức/thuộc tính (method/field): Bắt đầu bằng

chữ thường, viết hoa chữ cái đầu tiên trong các từ còn lại

n theExample

n Hằng (constants): Tất cả viết hoa

n THE_EXAMPLE

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 1

Trang 1

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 2

Trang 2

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 3

Trang 3

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 4

Trang 4

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 5

Trang 5

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 6

Trang 6

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 7

Trang 7

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 8

Trang 8

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 9

Trang 9

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 15 trang duykhanh 5380
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản

Bài giảng Lập trình hướng đối tượng - Chương 2: Cú pháp Java cơ bản
ều khiển
5. Mảng 5. Mảng
 3 4
 1
 8/31/17
 1. Định danh 1. Định danh (2)
n Định danh: n Quy ước với định danh (naming convention):
 n
 Xâu ký tự thể hiện tên các biến, các n Bắt đầu bằng chữ cái
 phương thức, các lớp và nhãn
 n Gói (package): tất cả sử dụng chữ thường
n Quy định với định danh:
 n theexample
 n Các ký tự có thể là chữ số, chữ cái, '$' 
 hoặc ‘_’ n Lớp (Class): viết hoa chữ cái đầu tiên trong các từ ghép 
 lại
 n Tên không được phép:
 n TheExample
 n Bắt đầu bởi một chữ số
 n Trùng với từ khóa n Phương thức/thuộc tính (method/field): Bắt đầu bằng 
 n Chứa dấu cách chữ thường, viết hoa chữ cái đầu tiên trong các từ còn lại
 n Phân biệt chữ hoa chữ thường n theExample
 n Yourname, yourname, YourName và n Hằng (constants): Tất cả viết hoa
 yourName là 4 định danh khác nhau
 n THE_EXAMPLE
 5 6
 1. Định danh (3) Nội dung
n Literals 1. Định danh
 null true false
n Từ khóa (keyword) 2. Các kiểu dữ liệu
 abstract assert boolean break byte case catch char 
 class continue default do double else extends final 3. Toán tử
 finally float for if implements import instanceof 
 int interface long native new package private 4. Cấu trúc điều khiển
 protected public return short static strictfp super 
 switch synchronized this throw throws transient try 5. Mảng
 void volatile while 
n Từ dành riêng (reserved for future use)
 byvalue cast const future generic goto inner operator 
 outer rest var volatile
 7 8
 2
 8/31/17
 2. Các kiểu dữ liệu 2.1. Kiểu dữ liệu nguyên thủy
n Trong Java kiểu dữ liệu được chia thành hai n Mọi biến đều phải khai báo 
 loại: một kiểu dữ liệu
 n Kiểu dữ liệu nguyên thủy (primitive)
 n Các kiểu dữ liệu cơ bản chứa 
 n Số nguyên (integer)
 một giá trị đơn
 n Số thực (float)
 n
 n Ký tự (char) Kích thước và định dạng phải 
 n Giá trị logic (boolean) phù hợp với kiểu của nó
 n Kiểu dữ liệu tham chiếu (reference) n Java phân loại thành 4 kiểu 
 n Mảng (array) dữ liệu nguyên thủy
 n Đối tượng (object)
 9 10
 a. Số nguyên b. Số thực
n Số nguyên có dấu n Khởi tạo với giá trị 0.0
n Khởi tạo với giá trị 0
 11 12
 3
 8/31/17
 c. Ký tự d. Giá trị logic
n Ký tự Unicode không dấu, được đặt giữa hai dấu n Giá trị boolean được xác định rõ ràng trong Java
 nháy đơn n Một giá trị int không thể sử dụng thay cho giá trị boolean
n 2 cách gán giá trị: n Có thể lưu trữ giá trị hoặc true hoặc false
 n Sử dụng các chữ số trong hệ 16: char uni ='\u05D0'; n Biến boolean được khởi tạo là false
 n Sử dụng ký tự: char a = ‘A’;
n Giá trị mặc định là giá trị zero (\u0000)
 13 14
 2.2. Giá trị hằng (literal) a. Số nguyên
n Literal là một giá trị của các kiểu dữ liệu n Hệ cơ số 8 (Octals) bắt đầu với chữ số 0
 nguyên thủy và xâu ký tự. n 032 = 011 010(2) = 16 + 8 + 2 = 26(10)
 n Hệ cơ số 16 (Hexadecimals) bắt đầu với 0 và ký 
n Gồm 5 loại:
 tự x
 n integer
 Literals n 0x1A = 0001 1010(2) = 16 + 8 + 2 = 26(10)
 n floating point
 integer..7 n Kết thúc bởi ký tự “L” thể hiện kiểu dữ liệu long
 n boolean floating point7.0f
 n 26L
 n character boolean.true
 n Ký tự hoa, thường cho giá trị bằng nhau
 n string character.'A'
 n 0x1a , 0x1A , 0X1a , 0X1A đều có giá trị 26 trong hệ 
 string.."A" decimal
 15 16
 4
 8/31/17
 b. Số thực c. boolean, ký tự và xâu ký tự
n float kết thúc bằng ký tự f (hoặc F) n boolean:
 n 7.1f n true
n double kết thúc bằng ký tự d (hoặc D) n false
 n 7.1D n Ký tự:
n e (hoặc E) được sử dụng trong dạng biểu n Được đặt giữa 2 dấu nháy đơn
 diễn khoa học: n Ví dụ: ‘a’, ‘A’ hoặc '\uffff‘
 n 7.1e2 n Xâu ký tự:
n Một giá trị thực mà không có ký tự kết thúc n Được đặt giữa hai dấu nháy kép
 đi kèm sẽ có kiểu là double n Ví dụ: “Hello world”, “Xin chao ban”,
 n 7.1 giống như 7.1d
 17 18
 d. Escape sequence 2.3. Chuyển đổi kiểu dữ liệu (Casting)
n Các ký tự điều khiển nhấn phím n Java là ngôn ngữ định kiểu chặt
 n \b backspace
 n Gán sai kiểu giá trị cho một biến có thể dẫn đến 
 n \f form feed
 các lỗi biên dịch hoặc các ngoại lệ của JVM
 n \n newline
 n \r return (về đầu dòng) n JVM có thể ngầm định chuyển từ một kiểu 
 n \t tab dữ liệu hẹp sang một kiểu rộng hơn
n Hiển thị các ký tự đặc biệt trong xâu
 n
 n \" quotation mark Để chuyển sang một kiểu dữ liệu hẹp hơn, 
 n \’ apostrophe cần phải định kiểu rõ ràng.
 n \\ backslash double f;
 int a, b; int d; long g;
 short c; short e; f = g;
 a = b + c; e = (short)d; g = f; //error
 19 20
 5
 8/31/17
 2.3. Chuyển đổi kiểu dữ liệu (2) Ví dụ - chuyển đổi kiểu
n Chuyển đổi kiểu sẽ long p = (long) 12345.56; // p == 12345
 được thực hiện tự int g = p; // không hợp lệ dù kiểu int 
 động nếu không xảy ra //có thể lưu giá trị 12345
 char c = ‘t’;
 mất mát thông tin
 int j = c; 
 n byte à short à int à short k = c; 
 long à float à double short k = (short) c; 
n Ép kiểu trực tiếp float f = 12.35; 
 (explicit cast) được yêu float f = 0.0; 
 cầu nếu có “nguy cơ” float f = 0;
 giảm độ chính xác long l = 999999999999;
 21 short k = 99999999; 22
 Ví dụ - chuyển đổi kiểu (2) Ví dụ - chuyển đổi kiểu (3)
n long l = 9999999999999L; n int i = 99999999;
n int i = (int) l; n short j = (short) i;
n System.out.println(i); //1316134911 n System.out.println(j); //-7937
n long l = 99999999999999L; n int i = 9999999;
n int i = (int) l; n short j = (short) i;
n System.out.println(i); //276447231 n System.out.println(j); //-27009
 23 24
 6
 8/31/17
 2.4. Khai báo và khởi tạo biến Chú thích
n Các biến đơn (biến không phải là mảng) cần n Java hỗ trợ ba kiểu chú thích như sau:
 phải được khởi tạo trước khi sử dụng trong các 
 n // Chú thích trên một dòng
 biểu thức
 // Không xuống dòng
 n Có thể kết hợp khai báo và khởi tạo cùng một lúc.
 n Sử dụng = để gán (bao gồm cả khởi tạo) n /* Chú thích một đoạn */
 n Ví dụ: n /** Javadoc * chú thích dạng Javadoc */
 n int i, j; // Khai báo biến
 n i = 0;
 n int k =i+1;
 n float x=1.0f, y=2.0f;
 n System.out.println(i); // In ra 0
 n System.out.println(k); // In ra 1
 n System.out.println(j); // Lỗi biên dịch
 27 28
 Câu lệnh Nội dung
n Các câu lệnh kết thúc bởi dấu; 1. Định danh
n Nhiều lệnh có thể viết trên một dòng 2. Các kiểu dữ liệu
n Một câu lệnh có thể viết trên nhều dòng
 3. Toán tử
 n Ví dụ:
 4. Cấu trúc điều khiển
 System.out.println( 5. Mảng
 “This is part of the same line”);
 a=0; b=1; c=2;
 29 30
 7
 8/31/17
 3. Toán tử (Operators) 3. Toán tử (2)
n Kết hợp các giá trị đơn hoặc các n Toán tử số học
 biểu thức con thành những biểu 
 thức mới, phức tạp hơn và có n +, -, *, /, %
 thể trả về giá trị. n Toán tử bit
n Java cung cấp nhiều dạng toán 
 n AND: &, OR: |, XOR: ^, NOT: ~
 tử sau:
 n
 n Toán tử số học Dịch bit: >
 n Toán tử bit, toán tử quan hệ n Toán tử quan hệ
 n Toán tử logic
 n ==, !=, >, =, <=
 n Toán tử gán
 n Toán tử một ngôi n Toán tử logic
 n &&, ||, !
 31 32
 Lưu ý 3. Toán tử (3)
int i = 10/3; n Toán tử một ngôi
float f0 = 10; n Đảo dấu: +, -
float f1 = (float) 10/3; n Tăng giảm 1 đơn vị: ++, --
float f2 = 10/3;
 n Phủ định một biểu thức logic: !
float f3 = f0/3;
 n Toán tử gán
System.out.println(i); //3
 n =, +=, -=, %= tương tự với >>, <<, &, |, ^
System.out.println(f1); //3.3333333
System.out.println(f2); //3.0
System.out.println(f3); //3.3333333
 33 34
 8
 8/31/17
 Ví dụ Thứ tự ưu tiên của toán tử
 n Cho biết toán tử nào thực hiện trước – được xác định bởi các dấu 
n int i; ngoặc đơn hoặc theo ngầm định như sau:
 n Postfix operators [] . (params) x++ x--
n System.out.println(i=5);
 //5 n Unary operators ++x --x +x -x ~ !
 n Creation or cast new (type)x
n System.out.println(i+=4);
 //9 n Multiplicative * / %
 n Additive + -
n System.out.println(i++);
 //9 n Shift > >>> (unsigned shift)
 n Relational = instanceof
n System.out.println(--i); //9
 n Equality == !=
 n Bitwise AND &
 n Bitwise exclusive OR ^
 n Bitwise inclusive OR |
 n Logical AND &&
 n Logical OR ||
 n Conditional (ternary) ?:
 35 n Assignment = *= /= %= += -= >>= >>= &= ^= |= 36
 Nội dung 4.1. Lệnh if - else
 1. Định danh n Cú pháp
 if (dieu_kien){ 
 2. Các kiểu dữ liệu
 cac_cau_lenh; 
 3. Toán tử }
 else { 
 4. Cấu trúc điều khiển
 cac_cau_lenh; 
 5. Mảng }
 n Biểu thức điều kiện nhận giá trị boolean
 n Mệnh đề else là tùy chọn
 37 38
 9
 8/31/17
 Ví dụ - Kiểm tra số chẵn – lẽ 4.2. Lệnh switch - case
 class CheckNumber
 n Kiểm tra một biến đơn 
 { với nhiều giá trị khác 
 public static void main(String args[])
 [true]
 { nhau và thực hiện case a case a break
 [false] action(s)
 int num =10; trường hợp tương ứng
 [true]
 if (num %2 == 0) case b case b break
 n break: Thoát khỏi lệnh [false] action(s)
 System.out.println (num+ “la so chan”);
 switch-case .
 .
 else .
 n default kiểm soát các [true]
 System.out.println (num + “la so le”); case z case z break
 giá trị nằm ngoài các giá [false] action(s)
 } default
 } trị case: action(s)
 39 40
 Ví dụ - Lệnh switch - case (1) Ví dụ - Lệnh switch - case (2)
public class Test {
 public static void main(String args[]) { switch (day) {
 case 0:
 int i = 2; case 1:
 rule = “weekend”;
 switch (i) { break;
 case 1: case 2:
 System.out.println("1"); case 3:
 case 4:
 case 2:
 case 5: if (day == 0 || day == 1) {
 System.out.println("2");
 case 6: rule = “weekend”;
 case 3: rule = “weekday”; } else if (day > 1 && day <7) {
 System.out.println("3"); break; rule = “weekday”;
 } default: } else {
 rule = “error”;
 } rule = error;
 } }
}
 41 42
 10
 8/31/17
 Bài tập: Tính số ngày trong tháng 4.3. Vòng lặp while và do while
n Input: Năm, tháng
 n Thực hiện một câu lệnh hoặc một khối lệnh 
n Output: số ngày trong tháng của năm đó
 khi điều kiện vẫn nhận giá trị true
n Yêu cầu: sử dụng lệnh switch-case n while() thực hiện 0 hoặc nhiều lần
 n do...while() thực hiện ít nhất một lần action state
n
 Gợi ý: int x = 2; [true]
 condition
 n Tháng 1, 3, 5, 7, 8, 10, 12: 31 ngày while (x < 2) {
 x++; [false]
 n Tháng 4, 6, 9, 11: 30 ngày System.out.println(x);
 n Riêng tháng 2: }
 n Năm thường: 28 ngày
 int x = 2;
 n Năm nhuận: 29 ngày (năm nhuận là “năm chia hết cho 4 và do {
 không chia hết cho 100”, hoặc là “năm chia hết cho 400”) x++;
 System.out.println(x);
 } while (x < 2);
 43 45
 Ví dụ - Vòng lặp while 4.4. Vòng lặp for
class WhileDemo{ n Cú pháp:
 public static void main(String args[]){ n for (start_expr; test_expr; increment_expr){
 n // code to execute repeatedly
 int a = 5,fact = 1;
 n }
 while (a >= 1){
 n 3 biểu thức đều có thể vằng mặt
 fact *=a; n Có thể khai báo biến trong câu lệnh for
 a--; n Thường sử dụng để khai báo một biến đếm
 n Thường khai báo trong biểu thức “start”
 }
 n Phạm vi của biến giới hạn trong vòng lặp
 System.out.println(“The Factorial of 5 n Ví dụ:
 is “+fact); n for (int index = 0; index < 10; index++) {
 } n System.out.println(index);
} n }
 46 47
 11
 8/31/17
 Ví dụ - vòng lặp for 4.5. Các lệnh thay đổi cấu trúc điều khiển
class ForDemo
 n break
{
 public static void main(String args[]) n Có thể được sử dụng để thoát ra ngoài câu lệnh 
 { switch
 int i=1, sum=0;
 n Kết thúc vòng lặp for, while hoặc do...while
 for (i=1;i<=10;i+=2)
 sum+=i; n Có hai dạng:
 System.out.println (“Sum of first five n Gắn nhãn: Tiếp tục thực hiện câu lệnh tiếp theo sau 
 old numbers is “ + sum); vòng lặp được gắn nhãn
 }
 n Không gắn nhãn: Thực hiện câu lệnh tiếp theo bên 
}
 ngoài vòng lặp
 48 50
 4.5. Các lệnh thay đổi cấu trúc điều khiển (2) Ví dụ - break và continue
n continue public int myMethod(int x) {
 int sum = 0;
 n Có thể được sử dụng cho vòng lặp for, while outer: for (int i=0; i<x; i++) {
 hoặc do...while inner: for (int j=i; j<x; j++){
 n Bỏ qua các câu lệnh còn lại của vòng lặp hiện sum++;
 thời và chuyển sang thực hiện vòng lặp tiếp if (j==1) continue;
 if (j==2) continue outer;
 theo.
 if (i==3) break;
 if (j==4) break outer;
 }
 }
 return sum;
 }
 51 52
 12
 8/31/17
 4.6. Phạm vi biến Nội dung
n Phạm vi của biến là vùng chương trình mà trong đó biến có 
 1. Định danh
 thể được tham chiếu đến
 n Các biến được khai báo trong một phương thức thì chỉ có 2. Các kiểu dữ liệu
 thể truy cập trong phương thức đó
 3. Toán tử
 n Các biến được khai báo trong vòng lặp hoặc khối lệnh thì 
 chỉ có thể truy cập trong vòng lặp hoặc khối lệnh đó
 4. Cấu trúc điều khiển
 5. Mảng
 53 54
 5. Mảng (array) 5.1. Khai báo và khởi tạo mảng
n Tập hợp hữu hạn các phần tử cùng kiểu n Khai báo, khởi tạo giá trị ban đầu:
n Phải được khai báo trước khi sử dụng n Cú pháp:
n Khai báo: n kieu_dl[] ten_mang = {ds_gia_tri_cac_ptu};
 n Cú pháp: n Ví dụ:
 n kieu_dlieu[] ten_mang = new kieu_dlieu[KT_MANG];
 n int[] number = {10, 9, 8, 7, 6};
 n kieu_dlieu ten_mang[] = new kieu_dlieu[KT_MANG];
 n
 n Ví dụ: variableName Nếu không khởi tạo à nhận giá trị mặc định 
 n char c[] = new char[12]; tùy thuộc vào kiểu dữ liệu.
 reference
 n Luôn bắt đầu từ phần tử có chỉ số 0
 Array or Object
 55 56
 13
 8/31/17
 Ví dụ - mảng 5.1. Khai báo và khởi tạo mảng (2)
 c[ 0 ] -45
 Tên của mảng (tất n Ví dụ:
 cả các thành phần c[ 1 ] 6
 trong mảng có int MAX = 5;
 cùng tên, c) c[ 2 ] 0
 c[ 3 ] 72 boolean bit[] = new boolean[MAX];
 c[ 4 ] 1543 float[] value = new float[2*3];
 c.length: cho biết int[] number = {10, 9, 8, 7, 6};
 độ dài của mảng c c[ 5 ] -89
 c[ 6 ] 0 System.out.println(bit[0]); // prints “false”
 c[ 7 ] 62 System.out.println(value[3]); // prints “0.0”
 c[ 8 ] -3 System.out.println(number[1]); // prints “9”
 c[ 9 ] 1
 Chỉ số (truy nhập đến 
 các thành phần của c[ 10 ] 6453
 mảng thông qua chỉ 
 số) c[ 11 ] 78
 57 58
 5.2. Mảng nhiều chiều 5.2. Mảng nhiều chiều (2)
 Column 0 Column 1 Column 2 Column 3
n Bảng với các dòng và cột
 Row 0
 b[ 0 ][ 0 ] b[ 0 ][ 1 ] b[ 0 ][ 2 ] b[ 0 ][ 3 ]
 n Thường sử dụng mảng hai chiều
 Row 1
 n Ví dụ khai báo mảng hai chiều b[2][2] b[ 1 ][ 0 ] b[ 1 ][ 1 ] b[ 1 ][ 2 ] b[ 1 ][ 3 ]
 n
 int b[][] = { { 1, 2 }, { 3, 4 } }; Row 2
 b[ 2 ][ 0 ] b[ 2 ][ 1 ] b[ 2 ][ 2 ] b[ 2 ][ 3 ]
 n 1 và 2 được khởi tạo cho b[0][0] và b[0][1]
 n 3 và 4 được khởi tạo cho b[1][0] và b[1][1]
 n int b[3][4];
 Chỉ số cột
 Chỉ số hàng
 Tên mảng
 60 61
 14
 8/31/17
 Bài tập Bài tập
n 1. Viết chương trình nhập chiều cao h từ bàn phím, sau n 2. Nhập vào kích thước ô vuông n*n. Hiển thị 
 đó hiển thị các tam giác hình sao có chiều cao h như dưới ra màn hình kết quả như ví dụ sau. Kiểm tra 
 đây. Chú ý có kiểm tra điều kiện của h: 2<=h<=10. Nếu
 h nằm ngoài đoạn trên, yêu cầu người dùng nhập lại. 3<=n<= 8
 1 2 3 4
 * 12 13 14 5
 * * *
 h
 * * * * * 11 16 15 6
 * * * * * * * 10 9 8 7
 * * * * * * * * *
 62 63
 Bài tập
n 3. Viết chương trình nhập n số thực từ bàn 
 phím. Sau đó hỏi người sử dụng muốn sắp 
 xếp theo chiều tăng dần hay giảm dần rồi 
 đưa ra danh sách số thực của mảng đã sắp 
 xếp theo yêu cầu của người sử dụng
 64
 15

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_2_cu_phap_java_co.pdf