Post on 03-Feb-2016
description
Java SE – Java cơ bản Giáo trình
JAVA CORE CƠ BẢN
Lập trình hƣớng đối tƣợng 2
Mô tả và quyền truy cập đối tƣợng 3
4
5
Các toán tử và phép gán
Điều khiển luồng, ngoại lệ
4 Các lớp cơ bản của Java API
7 Objects , danh sách và Nested Class
6
Các thành phần cơ bản của java 1
CHƢƠNG 1
CÁC THÀNH PHẦN CƠ BẢN
CỦA JAVA
BỘ TỪ KHÓA JAVA
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
BỘ TỪ KHÓA JAVA
Các từ khóa khái báo quyền truy cập.
Các từ khóa khai báo cho class, method,
variable
Từ khóa điều khiển luồng dữ liệu
Từ khóa bắt lỗi
Từ khóa đóng gói, sử dụng thƣ viện
Từ khóa kiểu dữ liệu nguyên thủy
Từ khóa tham chiếu đến đối tƣợng
Các từ khóa khác
BỘ TỪ KHÓA JAVA
Các từ khóa khái báo quyền truy cập.
BỘ TỪ KHÓA JAVA
Các từ khóa khai báo cho class, method,
variable
abstract class extends final implements
native new interface static synchronized
strictfp transient
BỘ TỪ KHÓA JAVA
Từ khóa điều khiển luồng dữ liệu
break continue case default do
else for if switch instance of
return while
BỘ TỪ KHÓA JAVA
Từ khóa bắt lỗi
try catch finally throws assert
BỘ TỪ KHÓA JAVA
Từ khóa đóng gói, sử dụng thƣ viện
package import
BỘ TỪ KHÓA JAVA
Từ khóa kiểu dữ liệu nguyên thủy
boolean byte char short int
long float double
BỘ TỪ KHÓA JAVA
Từ khóa tham chiếu đến đối tƣợng
super this
BỘ TỪ KHÓA JAVA
Các từ khóa khác
void enum const goto
KIỂU DỮ LIỆU NGUYÊN THỦY
Các kiểu dữ liệu số nguyên
Các kiểu dữ liệu dấu chấm động
Kiểu dữ liệu đúng sai
Kiểu dữ liệu ký tự
KIỂU DỮ LIỆU NGUYÊN THỦY
Các kiểu dữ liệu số
Kiểu dữ
liệu
Độ dài
(bit) Phạm vi biểu diễn giá trị
byte 8 -128 đến 127
short 16 -32768 đến 32767
Int 32 -2,147,483,648 đến +2,147,483,647
long 64 -9,223,372,036,854,775,808 đến
+9,223,372,036,854,775,807
float 32 -3.40292347E+38 đến
+3.40292347E+38
double 64 -1,79769313486231570E+308 đến
+1,79769313486231570E+308
Cách tính phạm vi kiểu dữ liệu số nguyên:
- Byte
- Short
- Int
- Long
KIỂU DỮ LIỆU NGUYÊN THỦY
kiểu dữ liệu số nguyên
float f1 = (float) 23.456;//ép kiểu
float f2 = 23.456F;//sử dụng hậu tố F
double d1 = 1234.456; //mặc định
double d2 = 1234.456D;//tùy chọn để chỉ kiểu dữ liệu
kiểu dữ liệu dấu chấm động
int a = 017; // thêm ký tự 0 ở đầu để biểu diễn kiểu octal
int b = 0xA; // thêm ký tự 0x ở đầu để biểu diễn kiểu hexa
byte b = 127; // int tự động chuyển sang kiểu byte short s = 23; //kiểu int tự động chuyển sang kiểu short int i = 34; long l = 5000000000L;//thêm ký tự L để xác định kiểu long
System.out.println("017: " + 017); // kết quả là 15
System.out.println("0xA: " + 0xA); // kết quả là 10
KIỂU DỮ LIỆU NGUYÊN THỦY
kiểu dữ liệu đúng sai
kiểu dữ liệu ký tự
boolean t = true;
boolean f = false;
boolean s = 0;//không đúng, không nhận giá trị number như C
char c = 'a';//tương ứng với giá trị 97 trong ascii char a = '@';//tương ứng với giá trị 64 trong ascii int i = a + 1;//char có thể tham gia phép tính kiểu int
char c = '\u01ff';//ký tự ǿ, giá trị 511
Unicode 16 bit
Biểu diễn ký tự đặc biệt dùng ký tự ‘\’ char c = '\n';// biểu diễn: \', \t, \"...
CHƢƠNG 2
LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG
BẬC NGÔN NGỮ
Ngôn ngữ bậc cao - Hƣớng tới vấn đề
- Độc lập với hệ thống
Ngôn ngữ bậc thấp - Hƣớng tới hệ thống
- Không phản ánh vấn đề
Java , C#
Fortran, Cobol,
C++
C/C++
Asembler Machine
MỤC TIÊU PHÁT TRIỂN
HƢỚNG THỦ TỤC
Tập trung vào giải thuật, chia vấn đề thành các thủ
tục, chƣơng trình con
Bao gồm phƣơng thức và dữ liệu
2 loại dữ liệu
Dữ liệu địa phƣơng
Dữ liệu toàn cục
Là cầu nối giữa các thủ tục
=> dễ gây ra ngoại lệ không mong đợi,
làm chƣơng trình trở lên mong manh dễ
đổ vỡ.
HƢỚNG DỮ LIỆU
Một nỗ lực sớm, đƣa ra để cải thiện lập trình hƣớng thủ tục
Bao gồm phƣơng thức và dữ liệu
Luồng dữ liệu
Ghép đầu vào dữ liệu tới đầu ra dữ liệu
Thiết kế cấu trúc dữ liệu trƣớc tiên
Thiết kế quy trình và chức năng sau
Ẩn dữ liệu
Đóng gói dữ liệu và thủ tục
Dữ liệu vẫn có phạm vi toàn cục nhƣng chỉ
đƣợc phép truy cập thông qua phƣơng thức.
HƢỚNG ĐỐI TƢỢNG
Cách suy nghĩ mới phản ánh thế giới thực
Bao gồm phƣơng thức và dữ liệu đóng gói
trong đối tƣợng
Điểm khác nổi bật
Mọi thành phần đƣợc bản địa hóa
Liên kết phƣơng thức trong 1 đối tƣợng,
tách biệt với phƣơng thức của đối tƣợng
khác.
Hạn chế sử dụng dữ liệu toàn cục
Kiểu đối tƣợng trừu tƣợng.
Ẩn dữ liệu
Đóng gói dữ liệu và thủ tục
Dữ liệu vẫn có phạm vi toàn cục nhƣng
giới hạn phạm vi truy cập bằng từ khóa.
HƢỚNG ĐỐI TƢỢNG
Kế thừa (inheritance)
Lớp con có tất cả thuộc tính
và phƣơng thức của lớp cha
Tính kế thừa là đặc tính thứ
2 của mô hình hƣớng đối
tƣợng.
HƢỚNG ĐỐI TƢỢNG
Đa hình (polymorphism)
Nạp chồng (overload):
Phƣơng thức trùng tên nhƣng
khác tham số.
HƢỚNG ĐỐI TƢỢNG
Đa hình (polymorphism)
Ghi đè (override):
Lớp kế thừa viết đè phƣơng
thức của lớp cha.
CHƢƠNG 3
MÔ TẢ VÀ QUYỀN TRUY CẬP
ĐỐI TƢỢNG
MÔ TẢ CLASS
File .java có thể chứa nhiều class
Thứ tự khai báo trong: package => import =>
tên class => nội dung class
QUYỀN TRUY CẬP CLASS
Một class đƣợc khai báo với từ khóa public cho phép
tất các các class khác truy cập đƣợc đến nó
Truy cập mặc định: chỉ cho phép truy cập bởi các
class trong cùng package hoặc cùng source file với
nó.
Truy cập public: Một class đƣợc khai báo với từ
khóa public cho phép tất các các class khác truy
cập đƣợc đến nó.
Không áp dụng quyền truy cập protected, private với
class.
KHAI BÁO KHÁC CỦA CLASS
Final class
Khi class đƣợc khai báo là final thì nó sẽ không
cho phép các class khác thừa kế từ nó nữa. Khai
báo final thƣờng dùng đề ngăn các method của
class gốc không bị overrid bởi các class khác
Abstract class
Một class abstract thì không thể dùng để tạo đối
tƣợng đƣợc, chỉ sử dụng để làm mẫu, và đƣợc
khai báo chi tiết tại các lớp con.
CHƢƠNG 4
CÁC TOÁN TỬ VÀ PHÉP GÁN
Các phép toán trong java
CHƢƠNG 5
ĐIỀU KHIỂN LUỒNG, NGOẠI LỆ
Các lệnh điều khiển
Điều khiển rẻ nhánh:
Mệnh đề if-else
Mệnh đề switch-case
Vòng lặp (Loops):
Vòng lặp while
Vòng lặp do-while
Vòng lặp for
Lệnh if-else
if (condition)
{
action1 statements;
}
else
{
action2 statements;
}
switch-case
switch (expression)
{
case 'value1': action1 statement(s);
break;
case 'value2': action2 statement(s);
break;
……
case 'valueN': actionN statement(s);
break;
default:default_action statement(s);
}
While và do-while
while(condition)
{
action statements;
} ;
do
{
action statements;
} while(condition);
Vòng lặp for
for(initialization statements;
condition; increment statements)
{
action statements;
:
:
}
Điều khiển ngoại lệ
try { …. }
catch(Exception e1) { …. }
catch(Exception eN) { …. }
finally { …. }
CHƢƠNG 6
CÁC LỚP CƠ BẢN CỦA JAVA
java.util.String
Mỗi 1 ký tự string là 16 bit
String là bất biến, tức là khi sử dụng các
method cho string thi nó sẽ tạo ra đối tƣợng
và bộ nhớ mới
String đƣợc thiết kế là kiểu final, do đó không
ai có thẻ vi phạm câu trúc trên
java.util.String
StringBuffer: Tính bất biến của String làm cho
đối tƣợng của string tăng nên khá nhanh, để tối
ƣu java cung cấp 2 lớp string khả biển là
StringBuffer, và StringBuilder //tinh bat bien
String x = "abc";
x.concat("def");
System.out.println("x = " + x);//output
is "x = abc"
//tinh kha bien
StringBuffer sb = new
StringBuffer("abc");
sb.append("def");
System.out.println("sb="+sb);//output is
"sb = abcdef"
Lớp java.util.Math
abs()
ceil()
floor()
max(), min()
random()
round()
sin(), cos(), tan()
toDegrees()
sqrt()
toRadians()
Lớp Wapper
CHƢƠNG 7
KIỂU OBJECTS, KIỂU DANH
SÁCH, NESTED CLASS
Các phƣơng thức của kiểu Object
Kiểu danh sách
Nested Class
Class nằm bên trong class khác gọi là Nested
Class
Inner classes: Là Nested classes không đƣợc
khai báo static
Inner class có thể coi nhƣ một thuộc tính của
class: có thể truy cập tất cả các thuộc tính hay
phƣơng thức của OuterClass
InnerClass có thể đƣợc khai báo public, private,
protected
Nested Class
Static nested classes: Là Nested classes đƣợc
khai báo static
Không đƣợc phép truy cập đến các thành phần khác
của OuterClass
Local Class: là class đƣợc định nghĩa trong
khối lệnh. Thông thƣơng local class đƣợc định
nghĩa bên trong một phƣơng thức
Local Class có quyền truy cập đến các thành phần
của OuterClass
Local Class còn có quyền truy cập đến các biến
đƣợc khai báo trong khối lệnh (phƣơng thức) chứa
nó, tuy nhiên biến này phải đƣợc khai báo final