Bài giảng Công nghệ Java - Chương 2: Các thành phần cơ bản - Trần Quang Diệu

Nội dung

• Chú thích

• Khối lệnh và câu lệnh

• Tập kí tự dùng trong Java

• Từ khóa và tên

• Kiểu dữ liệu

• Hằng

• Biến

• Chuyển đổi kiểu dữ liệu

• Định dạng nhập xuất

• Biểu thức và toán tử

• Các câu lệnh điều khiển

pdf 84 trang yennguyen 2100
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ Java - Chương 2: Các thành phần cơ bản - Trần Quang Diệu", để 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 Công nghệ Java - Chương 2: Các thành phần cơ bản - Trần Quang Diệu

Bài giảng Công nghệ Java - Chương 2: Các thành phần cơ bản - Trần Quang Diệu
4/7/2018  1
CÔNG NGHỆ JAVA
CH2. CÁC THÀNH PHẦN CƠ BẢN
Quang Dieu Tran PhD
4/7/2018  2
Nội dung
• Chú thích
• Khối lệnh và câu lệnh
• Tập kí tự dùng trong Java
• Từ khóa và tên
• Kiểu dữ liệu
• Hằng
• Biến
• Chuyển đổi kiểu dữ liệu
• Định dạng nhập xuất
• Biểu thức và toán tử
• Các câu lệnh điều khiển
4/7/2018  3
Chú thích (1)
• Chú thích 1 dòng: bắt đầu bằng dấu //
• Chú thích nhiều dòng: 
– bắt đầu bằng /*
– kết thúc bằng */
4/7/2018  4
Chú thích (2)
– Chú thích javadoc: 
• dùng để tài liệu hóa các lớp public hay protected
• Bắt đầu bằng /**
• Kết thúc bằng */
4/7/2018  5
Chú thích (3)
Bắt 
đầu
Kết 
thúc
Mục đích
/* */ Đoạn code bị giới hạn là phần 
ghi chú
// Ghi chú trên 1 dòng, trình biên 
dịch bỏ qua từ // đến cuối dòng
/** */ Ghi chú dành cho javadoc, 
trình biên dịch sẽ bỏ qua
4/7/2018  6
Câu lệnh & khối lệnh (1)
• Một câu lệnh trong java sẽ được kết thúc 
bằng dấu chấm phẩy (;)
– Ví dụ:
private void timgiatriXmax(Integer begin, Integer i, List list) {
double xmax = list.get(begin).getX();
int index = begin;
for (int j = begin + 1; j <= i; j++) {
if (list.get(j).getX() >= xmax) {
xmax = list.get(j).getX();
index = j;
}
}
this.listdiemchot.add(list.get(index));
}
4/7/2018  7
Câu lệnh & khối lệnh (2)
• Các câu lệnh đơn có thể nối lại với nhau 
tạo thành các khối lệnh thuộc 1 lớp.
• Bộ lệnh của Java không giới hạn trong 
cặp dấu ngoặc { và }
• Khối lệnh có thể được đặt trong khối lệnh 
khác.
public class Student {
private String name;
private GregorianCalendar bithDay;
private double mark;
}
4/7/2018  8
Tên
• Qui tắc đặt tên: 
– Tên có thể được bắt đầu bằng một kí tự, hoặc 
dấu: $, _
– Tên không thể bắt đầu bằng 1 số
– Không được trùng với từ khóa
– Tên không được chứa dấu cách
– Java phân biệt chữ hoa và chữ thường
4/7/2018  9
Tập kí tự dùng trong Java
• Java được xây dựng dựa trên bộ kí tự 
sau:
– 26 chữ cái hoa: AZ, 26 chữ cái thường: 
az
– 10 chữ số: 09
– Các kí hiệu toán học: +, -, *, /, %, =, ()
– Dấu nối: _
– Các kí hiệu đặc biệt khác: :, :, {}, [], ?, \, &, !, 
#, $, 
– Bên cạnh đó Java còn dùng bộ kí tự Unicode
4/7/2018  10
Từ khóa (1)
• là những từ có ý nghĩa xác định
• Thường dùng để khai báo các kiểu dữ 
liệu, viết các toán tử và câu lệnh
• Chú ý:
– Không được dùng từ khóa để đặt tên cho 
hằng, biến, mảng, hàm, 
– Từ khóa phải viết bằng chữ thường
4/7/2018  11
Từ khóa (2)
Từ khóa Ý nghĩa
abstract Dùng để khai báo lớp, hàm trừu tượng.
boolean Kiểu dữ liệu logic
break Được sử dụng để kết thúc vòng lặp hoặc cấu trúc switch. 
byte Kiểu dữ liệu số nguyên.
case Được sử dụng trong lệnh switch. 
char Kiểu dữ liệu kí tự. 
catch Được sử dụng trong xử lý ngoại lệ. 
class Dùng để khai báo lớp. 
const Khai báo biến theo sau là biến hằng
continue Được dùng trong vòng lặp để bắt đầu một vòng lặp mới. 
default Được sử dụng trong lệnh switch.
do Được sử dụng trong vòng lặp điều kiện sau.
4/7/2018  12
Từ khóa (3)
Từ khóa Ý nghĩa
double Kiểu dữ liệu số thực. 
else Khả năng lựa chọn thứ 2 trong câu lệnh If. 
extends Chỉ rằng một lớp được kế thừa từ một lớp khác. 
false Giá trị logic.
final Dùng để khai báo hằng số, phương thức không thể ghi đè, hoặc lớp không thể 
kế thừa.
finally Phần cuối của khối xử lý ngoại lệ. 
float Kiểu số thực. 
for Câu lệnh lặp. 
goto Nhảy tới dòng lệnh bất kì đã được đặt nhãn
if Câu lệnh lựa chọn. 
implements Chỉ rằng một lớp triển khai từ một giao diện. 
import Khai báo sử dụng thư viện. 
4/7/2018  13
Từ khóa (3)
Từ khóa Ý nghĩa
instanceof Kiểm tra một đối tượng có phải là một thể hiện của một lớp hay không. 
int Kiểu số nguyên.
interface sử dụng để khai báo giao diện.
long Kiểu số nguyên.
native Khai báo phương thức được viết bằng ngôn ngữ C++. 
new Tạo một đối tượng mới. 
null Một đối tượng không tồn tại. 
package Dùng để khai báo một gói. 
private Đặc tả truy xuất. 
public Đặc tả truy xuất. 
protected Đặc tả truy xuất. 
return Trả giá trị về 
short Kiểu số nguyên. 
4/7/2018  14
Từ khóa (4)
Từ khóa Ý nghĩa
static Dùng để khai báo biến, thuộc tính tĩnh. 
super Truy xuất đến lớp cha. 
switch Lệnh lựa chọn. 
synchronized Một phương thức độc quyền truy xuất trên một đối tượng. 
this Ám chỉ chính lớp đó. 
throw Ném ra ngoại lệ. 
throws Khai báo phương thức ném ra ngoại lệ. 
true Giá trị logic. 
try Sử dụng để bắt ngoại lệ. 
void Dùng để khai báo một phương thức không trả về giá trị. 
while Dùng trong cấu trúc lặp. 
4/7/2018  15
Kiểu dữ liệu
• Mỗi biến phải có 1 kiểu dữ liệu
• Kiểu dữ liệu xác định miền giá trị cho biến
4/7/2018  16
Kiểu dữ liệu nguyên thủy
• là các dữ liệu được xác định trong ngôn 
ngữ
4/7/2018  17
Kiểu dữ liệu dẫn xuất
• Tham chiếu tới một giá trị hay là tập hợp 
các giá trị mà biến khai báo.
• Các kiểu dữ liệu dẫn xuất:
4/7/2018  18
Giá trị mặc định
• Lỗi hay gặp phải khi 
lập trình là sử dụng 
biến chưa khởi tạo
• Java hỗ trợ khởi tạo 
các giá trị mặc định 
cho các biến.
4/7/2018  19
Hằng
• Từ khóa final chỉ dẫn đến 1 biến không thể 
thay đổi giá trị.
• Các hàm và lớp cũng có thể được khai 
báo final
– Hàm final không thể viết chồng
– Lớp final không thể là lớp con
final int MAX = 10;
4/7/2018  20
Biến (1)
• Biến là một vị trí trong bộ nhớ máy tính mà 
ở đó giá trị được lưu trữ và có thể được 
truy xuất sau đó.
• Sử dụng để lưu trữ dữ liệu có thể thay đổi 
trong quá trình thực thi
4/7/2018  21
Biến (2)
• Tên biến phải là duy nhất trong 1 phạm vi
• Các biến cần được khai báo trước khi sử 
dụng
• Khai báo biến bao gồm đặc tả tên biến, và 
đặc tả kiểu dữ liệu mà biến đại diện.
• Cú pháp: Type variable;
Hay
Type variable = value;
4/7/2018  22
Biến (3)
• Kiểu biến:
– Kiểu dữ liệu nguyên thủy
– Tên của 1 lớp
– Một mảng
• Để khai báo 1 biến mới ta phải khai báo 1 
lớp mới, sau đó kiểu biến mới được khai 
báo kiểu là lớp mới đó.
4/7/2018  23
Biến (4)
• Các loại biến trong Java:
– Biến đối tượng
– Biến lớp
– Biến cục bộ
4/7/2018  24
Biến đối tượng
• Dùng để định nghĩa thuộc tính, trạng thái 
cho 1 đối tượng
• Có thể là biến toàn cục của 1 đối tượng
• Khai báo
Type variable;
4/7/2018  25
Biến lớp
• Tương tự biến đối tượng nhưng giá trị 
nằm trong chính lớp đó
• Ảnh hưởng toàn cục đến 1 lớp và tất cả 
các đối tượng trong lớp đó
• Thích hợp dùng để trao đổi thông tin giữa 
các đối tượng khác nhau trong cùng một 
lớp hau theo dõi trạng thái toàn cục của 
đối tượng
• Cú pháp static Type variable;
4/7/2018  26
Biến cục bộ
• Được khai báo và sử dụng trong thân 
phương thức
• Bắt buộc phải gán giá trị trước khi sử 
dụng
• Java không có biến toàn cục, biến đối 
tượng hoặc biến lớp được dùng để truyền 
thông tin toàn cục
4/7/2018  27
Phạm vi của biến
• Biến toàn cục: có thể truy cập bất cứ đâu 
trong toàn bộ chương trình
• Biến cục bộ tồn tại giới hạn và quan hệ chỉ 
trong phần nhỏ của mã
public class MyClass {
int i; // member variable
int first() {
int j; // local variable
// i va j deu co the truy cap tu day
return 1;
}
int second() {
int j; // local variable
// i va j deu co the truy cap tu day
return 2;
}
}
4/7/2018  28
Chuyển đổi kiểu dữ liệu (1) 
• Dùng để chuyển từ một kiểu dữ liệu này 
sang kiểu dữ liệu khác
• Có 2 dạng ép kiểu:
– Ép kiểu ngầm định
– Ép kiểu tường minh
4/7/2018  29
Chuyển đổi kiểu dữ liệu (2)
4/7/2018  30
Ép kiểu ngầm định
• Khi một kiểu dữ liệu được gán cho 1 biến 
của 1 kiểu khác tự động chuyển kiểu
• Điều kiện:
– Hai kiểu phải tương thích
– Kiểu đích phải lớn hơn kiểu nguồn
4/7/2018  31
Ép kiểu tường minh
• Khi cần chuyển sang kiểu có độ chính xác 
cao hơn
4/7/2018  32
Chuyển đổi kiểu dữ liệu
• Có 3 dạng chuyển đổi kiểu dữ liệu
– Chuyển đổi cho các kiểu dữ liệu cơ bản
– Chuyển đổi kiểu cho các đối tượng: các lớp chuyển đổi 
phải kế thừa nhau
– Chuyển đổi cho các kiểu dữ liệu cơ bản sang đối tượng và 
ngược lại:
• Chỉ chuyển đổi giữa các đối tượng có sẵn trong gói 
java.lang tương ứng với các dữ liệu nguyên thủy
(New Type) value;
(New Class) object;
int intObject = new Integer(32);
4/7/2018  33
Khởi tạo biến
• Integers
byte largestByte = Byte.MAX_VALUE;
short largestShort = Short.MAX_VALUE;
int largestInteger = Integer.MAX_VALUE;
long largestLong = Long.MAX_VALUE;
• real numbers
float largestFloat = Float.MAX_VALUE;
double largestDouble = Double.MAX_VALUE;
• other primitive types
char aChar = 'S';
boolean aBoolean = true;
4/7/2018 34
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)
 System.err là đối tượng xuất lỗi (màn hình)
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,
4/7/2018 35
Xuất dữ liệu (tt)
4/7/2018  36
Định dạng nhập xuất (1)
• Mã định dạng: bất kì một đầu ra được hiển 
thị trên màn hình cần phải được định dạng
4/7/2018  37
Định dạng nhập xuất (2)
• Hàm printf() trong Java được sử dụng để 
định dạng kiểu dữ liệu ở console
• Ví dụ:
public static void main(String[] args) {
int i = 10;
System.out.printf("gia tri cua i la %d", i);
}
4/7/2018  38
Lớp Scanner
• Cho phép người dùng đọc giá trị của một 
vài kiểu
• Một số phương thức của Scanner với 
System.in là đối tượng dòng đầu vào:
public static void main(String[] args) {
Scanner scaner = new Scanner(System.in);
}
Đối tượng InputStream
4/7/2018  39
Dãy Escape
4/7/2018  40
Các phương thức hữu dụng trong Character.class
Useful Methods in the Character Class 
Method Description 
boolean isLetter(char ch) 
boolean isDigit(char ch) 
Determines whether the specified char value is a letter 
or a digit, respectively. 
boolean isWhiteSpace(char ch) 
Determines whether the specified char value is white 
space according to the Java platform. 
boolean isUpperCase(char ch) 
boolean isLowerCase(char ch) 
Determines whether the specified char value is upper- 
or lowercase, respectively. 
char toUpperCase(char ch) 
char toLowerCase(char ch) 
Returns the upper- or lowercase form of the specified 
char value. 
toString(char ch) 
Returns a String object representing the specified 
character value. 
int digit(char ch, int radix) 
Returns the numeric value of the character in the 
specified radix. 
4/7/2018  41
Các toán tử số học
4/7/2018  42
Phép toán 1 ngôi
4/7/2018  43
Toán tử quan hệ và bằng nhau
• kết quả trả về luôn là một giá trị boolean
4/7/2018  44
Các phép toán điều kiện
4/7/2018  45
Các toán tử làm việc với bit
4/7/2018  46
Toán tử luận lý
• Các biểu thức có kiểu trả về là boolean, có 
thể kết hợp lại với nhau bằng các toán tử 
luận lý như:
– AND (& hoặc &&)
– OR (| hoặc ||)
– XOR (^)
– NOT (!)
4/7/2018  47
Toán tử gán
• Cú pháp: 
– Ví dụ: 
a +=4;
tương đương với
a = a+4;
Variable operator = value;
Tương ứng với
Variable = Variable operator value;
4/7/2018  48
Một số toán tử khác (1)
4/7/2018  49
Một số toán tử khác (2)
4/7/2018  50
Biểu thức & toán tử
• Phép toán trên kiểu chuỗi String:
– Java dùng toán tử + để nối hai chuỗi lại với 
nhau
Độ ưu tiên của các toán tử
System.out.println(name + " is a " + color);
4/7/2018  51
Tính kết hợp của các phép toán
4/7/2018  52
Biểu thức
• Là sự kết nối các biến, các từ khóa hay 
các kí hiệu để trả về 1 giá trị của 1 kiểu 
nào đó.
• Giá trị của các biểu thức có thể là số, 
chuỗi hoặc kiểu dữ liệu khác
• Các loại biểu thức:
– Biểu thức logic
– Biểu thức số học
– Biểu thức gán
4/7/2018  53
Các câu lệnh điều khiển
Kiểu Từ khóa
Decision making if-else, switch-case
Looping for, while, do-while
Exception handling try-catch-finally, throw
Branching Break, continue, label:, return
4/7/2018  54
Các câu lệnh điều khiển quyết định
4/7/2018  55
Cấu trúc rẽ nhánh if (1)
condition
false
statement
true
Cú pháp:
if (expression) { 
statement(s)
} 
4/7/2018  56
Cấu trúc rẽ nhánh if (2)
4/7/2018  57
Cấu trúc rẽ nhánh if (3)
• Ví dụ: 
public static void main(String[] args) {
int testScore = 76;
char grade;
if (testScore >= 90) {
grade = 'A';
}
if (testScore >= 80) {
grade = 'B';
}
if (testScore >= 70) {
grade = 'C';
}
if (testScore >= 60) {
grade = 'D';
}
if (testScore >= 50) {
grade = 'E';
} else {
grade = 'F';
}
System.out.println("Grade = "+ grade);
}
???
4/7/2018  58
Cấu trúc rẽ nhánh phức: switch (1)
4/7/2018  59
Cấu trúc rẽ nhánh phức: switch (2)
• Ví dụ
public static void main(String[] args) {
int month = 2;
int numdays = 0;
switch (month) {
case 2:
numdays = 28;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numdays = 31;
break;
default:
numdays = 30;
}
System.out.println("num of day = "+ numdays);
}
4/7/2018  60
So sánh giữa if và switch
Demo
4/7/2018  61
Các câu lệnh điều khiển lặp
4/7/2018  62
Vòng lặp for (1)
4/7/2018  63
Vòng lặp for (2)
• Ví dụ:
public static void main(String[] args) {
for(int i=1; i<11; i++){ 
System.out.println("Count is: " + i); 
} 
}
for ( ; ; ) {
//vòng lặp vô tận 
}
4/7/2018  64
For each
Cú pháp:
for (iterable_type iterable_element : iterable) {
Statements
}
public static void main(String[] args) {
int[] aray = { 32, 45, 789, 0, 3 };
for (int element : aray) {
System.out.print(element+" ");
}
}
4/7/2018  65
Vòng lặp while (1)
4/7/2018  66
Vòng lặp while (2)
public static void main(String[] args){
int count = 1;
while (count < 11) {
System.out.println("Count is: " + count);
count++;
}
}
 Ví dụ:
while (true){
// vòng lặp vô tận
}
4/7/2018  67
Vòng lặp dowhile (1)
Thực thi ít nhất 
1 lần
4/7/2018  68
Vòng lặp dowhile (2)
• Ví dụ:
public static void main(String[] args) {
int count = 1;
do {
System.out.println("Count is: " + count);
count++;
} while (count <= 11);
}
4/7/2018  69
So sánh while và for
4/7/2018  70
Câu lệnh rẽ nhánh
• Các loại câu lệnh rẽ nhánh thường gặp:
– break
– continue
– return
• continue và break có thể dùng cùng với 
label hoặc không
– label: dùng để chỉ định chỗ cho các lệnh 
continue và break
4/7/2018  71
Lệnh break (1)
• Lệnh break có 2 dạng:
– unlabeled form: dùng để thoát ra khỏi vòng 
lặp như switch, for, while, or do-while
– labeled form: di chuyển tới vùng đặt label
public static void main(String[] args) {
int out, in = 0;
for (out = 0; out < 10; out++) {
for (in = 0; in < 20; in++) {
if (in > 10)
break;
}
System.out.println("inside the outer loop: out = " + out + ", in = " + in);
}
System.out.println("end of the outer loop: out = " + out + ", in = “ + in);
}
Unlabled form
4/7/2018  72
Lệnh break (2)
public static void main(String[] args) {
int out, in = 0;
outer: for (out = 0; out < 10; out++) {
for (in = 0; in < 20; in++) {
if (in > 10)
break outer;
}
System.out.println("inside the outer loop: out = " + out + ", in = " + in);
}
System.out.println("end of the outer loop: out = " + out + ", in = “ + in);
}
Labeled form
4/7/2018  73
Lệnh continue
• Dùng để nhảy qua(skip) vòng lặp (for, 
while, do-while,)
• Lệnh continue cũng có 2 dạng:
– Unlabeled form
– Labeled form
4/7/2018  74
Unlabeled form
public static void main(String[] args) {
StringBuffer searchMe = new StringBuffer("peter piper picked a peck of pickled peppers");
int max = searchMe.length();
int numPs = 0;
System.out.println(searchMe);
for (int i = 0; i < max; i++) {
// interested only in p's
if (searchMe.charAt(i) != 'p') 
continue;
// process p's
numPs++;
searchMe.setCharAt(i, 'P');
}
System.out.println("Found " + numPs + " p's in the string.");
System.out.println(searchMe);
}
Unlabeled form
4/7/2018  75
Labeled form
public static void main(String[] args) {
// finds a substring(substring) in given string(serchMe)
String searchMe = "Look for a substring in me";
String substring = "sub";
boolean foundIt = false;
int max = searchMe.length() - substring.length();
test: for (int i = 0; i <= max; i++) {
int n = substring.length(), j = i, k = 0;
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++))
continue test;
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didn't find it");
}
Labeled form
4/7/2018  76
Lệnh return (1)
• Lệnh return có 2 dạng:
– Trả về 1 giá trị: 
•return ++count;
• Giá trị trả về phải phù hợp với kiểu trả về của hàm
– Không trả vè giá trị nào cả:
•return;
• Kiểu trả về của hàm phải là void
4/7/2018  77
Lệnh return (2)
public boolean seachFirst() {
int[] array = { 10, 5, 9, 3, 8, 5, 8, 5 };
int matchValue = 8;
for (int i = 0; i < array.length; i++) {
if (matchValue == array[i])
return true;
}
return false;
}
public void displayDayOfWeek(int day) {
if (day == 1) {
System.out.println("Sunday");
return;
}
if (day == 2) {
System.out.println("Monday");
return;
}
if (day == 3) {
System.out.println("Tueday");
return;
}
}Trả về giá trị boolean
Không trả về giá trị
4/7/2018  78
Try-catch-finally (1)
• Sử dụng khối try, catch, finally để bắt giữ 
các ngoại lệ
Khối lệnh có thể ném ngoại lệ
Khối lệnh sẽ thực hiện
nếu ngoại lệ xảy ra
Khối lệnh sẽ thực hiện bất chấp 
ngoại lệ xảy ra hay không
4/7/2018  79
Try-catch-finally (2)
public static void method(String s) {
try {
System.out.println(Integer.parseInt(s));
} catch (NumberFormatException e) {
System.out.println("wrong fomat");
}
}
4/7/2018 80
Tóm tắt dạng câu hỏi
 Liệt kê 6 kiểu số cơ bản của Java và số bit bộ nhớ sẽ chiếm 
dụng của chúng khi lưu trữ trị.
 Kiểu luận lý (logic) trong java tên là gì?
 Kiểu ký tự tên là gì? chiếm mấy byte?
 Biến là gì? Hãy cho biết 3 tính chất của biến.
 Hãy liệt kê 4 loại toán tử trong java.
 Hãy cho biết kết qủa của biểu thức sau : 
 a) 4 && 7 b) 4&7 c) 0 || 8 d) 0 | 8 e) 8 ^ 3
 f) 4 >> 3 g) 9 >3) ? 5 : -3
 Trong java có phát biểu goto hay không ?
 Mảng là gì ? Mảng in-line là gì ? 
 int a[] = new int { 1,2,3,9,0}; đúng hay sai?
 System.out.println( 12 & 9); sẽ xuất trị bao nhiêu?
 Phân tích dòng code: if (5&7>0 && 5|3) System.out(“Hello”) ;
 int m= System.in.read(); nếu gõ vào phím ‘C’, trị biến m là bao 
nhiêu?
tures
4/7/2018 81
Bài tập
 Viết các chương trình sau:
 Xuất bảng cửu chương từ 2 đến 9.
 Xuất trị bình phương, lập phương từ 1 đến 
10.
 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.
 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.
 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ó.
tures
4/7/2018  82
Bài tập
• Mô phỏng các phương thức trong lớp 
String với mỗi String là một mảng các kí tự 
(char[]) (MyString)
• Mô phỏng StringTokenizer và các phép 
toán trong đó.
• Thực hiện lớp MyDate để lưu trữ ngày 
tháng năm với 1 số int duy nhất
4/7/2018  83
Bài tập
Class MyString{
private char[] content;
public MyString(char[] con);
public MyString(String s);
public int indexOf(char c);
public int lastIndexOf(char c);
public int indexOf(String sub);
public int lastIndexOf(String sub);
public void insert(int index, String sub);
public void replace(String old_s, String new_s);
public void replaceAll(String old_s, String 
new_s);
}
4/7/2018  84
Bài tập
public class StringAnalyzer {
private String origin;
private String delimiter;
public StringAnalyzer(String origin, String delimiter) {
. . . . . . 
}
public boolean hasMoreElement(){
. . . . . . 
} 
public String getNextElement(){
. . . . . .
}
}

File đính kèm:

  • pdfbai_giang_cong_nghe_java_chuong_2_cac_thanh_phan_co_ban_tran.pdf