SlideShare a Scribd company logo
1 of 62
Download to read offline
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Nội dung chính
Lập Trình Java căn bản
1
Lớp và đối tượng
2
Kế thừa
3
Interface
5
Đa hình
4
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Giới thiệu về Java
 Java là ngôn ngữ lập trình thuần hướng đối
tượng
 Khởi đầu vào năm 1991 bởi James Gosling và
đồng nghiệp ở Sun MicroSystem. Ban đầu
Java được tạo ra nhằm mục đích viết phần
mềm cho các sản phẩm gia dụng, và có tên là
Oak.
 Năm 1994: được phát hành
 Năm 1995: đổi tên thành Java
 2010 được Oracle mua lại từ Sun MicroSystem
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chương trình Java
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chương trình Java
// This is a simple program called “Ex1.java”
public class Ex1
{
public static void main(String args[])
{
System.out.println(“My first program in
Java”);
}
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Biến
 Biến là tên của một vùng nhớ được dùng để lưu dữ liệu
khi chương trình chạy.
 Tên biến:
 Không bắt đầu với _ và $
 Từ đầu tiên là in thường, các kí tự đầu của các từ sau in hoa
 Java yêu cầu biến trước khi dùng phải khai báo
 Các biến khai báo ở trong 1 hàm là biến địa phương
 Có thể vừa khai báo vừa khởi tạo
 Ví dụ:
int x; // Khai báo
x=10; // Sử dụng
char Diem= ‘A’;
// Vừa khai báo vừa khởi tạo giá trị
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Biến
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Kiểu dữ liệu
 Kiểu dữ liệu cơ sở (Primitive Data Types)
 Kiểu dữ liệu tham chiếu (Reference data types)
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Kiểu dữ liệu
 Kiểu dữ liệu cơ sở:
Kiểu dữ liệu Phạm vi
Giá trị
mặc định
byte 8 bit (-128-> 127) 0
char
16 bit (0 -> 216-1)
Hay ‘u0000’ đến ‘uffff’
0
boolean
1 bit (“True” hoặc
“False”)
False
short 16 bit (-215 -> 215-1) 0
int 32 bit (-231 -> 231-1) 0
long 64 bit (-263 -> 263-1) 0L
float 32 bit (-231 -> 231-1) 0.0F
double 64 bit (-263 -> 263-1) 0.0
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Kiểu dữ liệu
 Kiểu dữ liệu có cấu trúc:
 Có sẵn: là các đối tượng được Java xây dựng để sử
dụng: String, File, List, …
 Người dùng tự tạo: là các đối tượng không có sẵn
mà người dùng sẽ tự tạo ra các đối tượng tùy thuộc
bài toán. Ví dụ: Học sinh, Tứ giác, Hình Vuông, …
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Kiểu dữ liệu
 Kiểu dữ liệu tham chiếu
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Chuyển kiểu dữ liệu
 Cú pháp: (KDL đích)giá trị;
 Một số cách chuyển khác:
// thêm L đằng sau 1 số nguyên
long a=5L;
long a=(long)5;
int a=5;
long b=(long )a;
long b=2L*a;
long b=2*(long)a;
int a=5;
float b=8/a; // bị mất dữ liệu
float b=8F/a;
float b=8/(float)a;
float a=5F; char kyTu=(char)65; // kyTu=‘A’
int a=65;
char kyTu=(char)a;
int a=5;
double c = (double) a;
char kyTu=‘A’;
int a=(int)kyTu; //a=65
// nếu có HinhVuong extends TuGiac
HinhVuong hv;
TuGiac tg=(TuGiac)hv;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Chuyển kiểu dữ liệu
 Đổi 1 biến từ kiểu xâu sang số
 Ví dụ:
 String st=sc.nextLine();
 int a=Integer.parseInt(st);
 float b=Float.parseFloat(st);
 Đổi 1 số sang xâu:
Dùng Toán tử +:
Ví dụ:
double d = 100D;
String s = "" + d;
System.out.println(s);
• Sử dụng phương thức toString()
Ví dụ:
Short.toString(biến)
Integer.toString()
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
* Phép gán:
Ví dụ: a=5;
* Phép toán số học:
Các phép toán cơ bản
Phép toán Ý nghĩa
+ Tính tổng
- Tính hiệu
* Nhân
/ Chia nguyên
% Chia dư
++ Tăng lên 1
-- Giảm đi 1
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Các phép toán cơ bản
 Phép toán điều kiện:
(<Biểu thức so sánh>)?giá trị 1:giá trị 2;
 Ví dụ:
(x >= 0) ? x : -x;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm nhập xuất
 Xuất dữ liệu:
- Cú pháp:
 System.out.print(): xuất ra 1 chuỗi hay 1 giá trị (không
xuống dòng)
 System.out.println(): xuất ra 1 chuỗi hay 1 giá trị (xuống
dòng)
 Sytstem.out.printf(): xuất ra màn hình một chuỗi theo
định dạng tương tự như ngôn ngữ lập trình C++
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
 System.out.printf(“format-string”, [arg1, arg2, arg3, …]);
 Trong đó:
 %d, %f, %c, %s: số nguyên (byte, short, int, long), số thực (float,
double) , kí tự (C: kí tự in hoa), xâu kí tự (S: xâu in hoa).
 Dấu -: canh trái, mặc định canh phải.
 %0: fill số 0.
 Một số ký tự đặc biệt: a, b, n, r, t, v,  (alert, Backspace, dòng mới,
đầu dòng, tab ngang, tab dọc, )
 Độ chính xác của số thực: %5.3f: độ chính xác phần lẻ của số trong
format-string là 3
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm nhập dữ liệu
 Khai báo thư viện Scanner
import java.util.Scanner;
 Cú pháp khai báo đối tượng:
Scanner sc = new Scanner(System.in);
 Trong đó:
• Dữ liệu nhập vào là số nguyên:
int a=sc.nextInt();
• Dữ liệu nhập vào là số thực:
double b=sc.nextDouble();
• Dữ liệu nhập vào là chuỗi:
String b=sc.nextLine();
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Các cấu trúc điều khiển
 Lệnh if
Cú pháp Ví dụ
if (điều kiện)
{
<câu lệnh 1>;
}
[else
{
<câu lệnh 2>;
}]
int num=11;
if (num%5 == 0)
System.out.println (num + "chia het cho 5!");
else
System.out.println (num + "khong chia het cho 5!");
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Các cấu trúc điều khiển
 Lệnh Switch … Case
Cú pháp Ỹ nghĩa
switch (biểu thức) {
case ‘giá trị 1’: khối lệnh 1;
break;
case ‘giá trị 2’: khối lệnh 2;
break;
…………………
case ‘giá trị N’: khối lệnh N;
break;
default: khối lệnh mặc
định;
}
int day = 2;
switch(day) {
case 0 : System.out.println(“Sunday”); break;
case 1 : System.out.println(“Monday”); break;
case 2 : System.out.println(“Tuesday”); break;
case 3 : System.out.println(“Wednesday”); break;
case 4 : System.out.println(“Thursday”); break;
case 5: System.out.println(“Friday”); break;
case 6 : System.out.println(“Satuday”); break;
default: System.out.println(“Invalid day of week”);
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Vòng lặp while
Cú pháp Ví dụ
while(điều kiện)
{
<khối lệnh;>
}
count=1;
while(count<=number)
{
System.out.print(count + “, ”);
count++;
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Vòng lặp do…while
 Cú pháp:
do
{
<Câu lệnh>;
} while (điều_kiện);
 So sánh while và do…while
while do…while
count=1;
while(count<=number)
{
System.out.print(count+” ,”);
count++;
}
count=1;
do{
System.out.print(count+”, “);
count++;
}
while(count<=number);
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Vòng lặp For
 Cú pháp:
for(biểu thức 1; biểu thức 2; biểu thức 3)
{<câu lệnh>;}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Vòng lặp Foreach
Cú pháp:
for(data_type variable : array | collection){}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm – Phương thức
[Kiểu dữ liệu PT] <Tên PT>([danh sách tham số])
{
[Các khai báo của PT]
...
<Nội dung PT>
[return <giá trị trả lại cho PT>;]
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm – Ví dụ
 Viết hàm kiểm tra 1 số nguyên có phải số
nguyên tố hay không? Viết hàm main in ra các
số nguyên tố nhỏ hơn n, n nhập từ bàn phím.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm – Ví dụ
public class main {
public static boolean nguyento(int n){
if(n<2)return false;
for(int i=2;i<=n/2;i++)
if(n%i==0)return false;
return true;
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public static void main(String[] args) {
int n;
System.out.println("Moi nhap gia tri n:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("nCac so nguyen to nho hơn "+n);
for(int i=0;i<n;i++)
if(nguyento(i))System.out.print(" "+i);
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm chồng – Methods Overloading
 Java cho phép xây dựng hàm chồng
 Hàm chồng: các hàm trùng tên, nhưng khác
tham số truyền vào.
 Lúc gọi hàm, dựa vào các tham số truyền vào
Java nhận biết được hàm nào được gọi thực
thi.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Hàm chồng – Ví dụ
 SV tự lấy ví dụ minh họa
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
- Mảng là một tập các phần tử có cùng kiểu dữ
liệu.
- Khai báo mảng 1 chiều:
- Cách 1:
B1: <KDL> [] tên_Mảng; hoặc <KDL> ten_Mang[];
B2: tên_Mảng = new <KDL> [Số_PT];
Ví dụ: int [] mang1; hoặc int mang1[];
mang1=new int[5];
- Cách 2:
<KDL> tên_Mảng [] = new <KDL> [Số_PT];
Ví dụ: float mang2[]=new float [10];
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
- Khai báo mảng 1 chiều:
- Cách 3:
<KDL> tên_Mảng[]=new <KDL>[]{gt1, gt2,…gtn};
Ví dụ:
int mang1[]=new int [] {2,6,4,8,9};
 Mảng trên có 5 phần tử, giá trị các phần tử lần lượt là
các giá trị liệt kê ở trên.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
- Khai báo mảng 2 chiều:
/ Khai báo một mảng có 5 dòng, 10 cột
MyType[][] myArray1 = new MyType[5][10];
// Khai báo một mảng 2 chiều có 5 dòng.
// (Mảng của mảng)
MyType[][] myArray2 = new MyType[5][];
// Khai báo một mảng 2 chiều, chỉ định giá trị các phần tử.
MyType[][] myArray3 = new MyType[][] {
{ value00, value01, value02 , value03 },
{ value10, value11, value12 }
};
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng – Mảng hai chiều
Khai báo:
<KDL> tenmang[][]= new <KDL> [sl_PT][sl_thuộc_tính];
 Phương thức length: lấy số lượng phần tử mảng
 VD:
int x=arrSo[0].length; // số lượng thuộc tính của phần tử 0
Thuộc tính
Phần
tử
0 0
0 0
0 0
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
- Truy xuất phần tử mảng:
 Mảng 1 chiều: Tên_mảng[chỉ số]
 Mảng hai chiều:
 Tên_Mảng[chỉ_số_pt][chỉ_số_thuộc_tính]
- Ví dụ:
 arrNguyen[5];
 arrXY[2][1];
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
Duyệt mảng 1 chiều: “”
 Sử dụng for
 VD1: In ra các giá trị trong mảng số nguyên arrNguyen
for(int i=0; i<arrNguyen.length; i++)
System.out.printf(“ %3d “ ,arrNguyen[i]);
 Sử dụng Foreach
for(int x: arrNguyen)
System.out.printf( “ %3d”,x);
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng
 Duyệt mảng 2 chiều:
 VD1: In ra các giá trị trong mảng số nguyên
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[0].length;j++)
System.out.printf("%3d",arr[i][j]);
System.out.println("");
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng – Thư viện Arrays
- Gói thư viện: java.util.Arrays
- Phương thức Fill:
- Cú pháp:
Arrays.fill(<KDL> ten_mang[],<KDL> gia_trị);
- Ý nghĩa: khởi tạo các giá trị giống nhau cho tất cả các
phần tử mảng.
- Ví dụ:
- Arrays.fill(arraySoNguyen,5);
- Gán tất cả các phần tử của mảng arraySoNguyen bằng 5
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng – Thư viện Arrays
- Phương thức toString
- Cú pháp: Arrays.toString(<KDL> ten_mang[])
- Ý nghĩa: trả về giá trị dạng chuỗi của các phần tử
mảng.
- Ví dụ:
String content=Arrays.toString(arraySonguyen);
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc mảng – Thư viện Arrays
 Phương thức sort:
 Dùng để sắp xếp vị trí các phần tử mảng theo 1 tiêu
chí nào đó: sắp xếp tang dần, giảm dần, …
 Cú pháp:
Arrays.sort(<KDL> tên_mảng[])
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Mảng – Ví dụ
 Viết chương trình nhập và in mảng 1 chiều gồm
n phần tử các số nguyên. In ra tổng các phần
tử có giá trị chẵn của mảng.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public class Mang {
public static void NhapMang(int n, int a[]){
for(int i=0;i<n;i++ ){
System.out.printf("mang[%d]=",i);
Scanner sc=new Scanner(System.in);
a[i]=sc.nextInt();
}
}
public static void XuatMang(int n, int a[]){
for(int i=0;i<n;i++){
System.out.printf("%3d",a[i]);
}
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public static void Chan(int n, int a[]){
int tongChan=0;
System.out.println("nCac phan tu chan cua mang la:");
for(int i=0;i<n;i++){
if(a[i]%2==0) {
System.out.printf("%3d",a[i]);
tongChan +=a[i];
}
}
System.out.printf("ntong chan cua mang la %3d",tongChan);
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public static void main(String[] args) {
int n, a[];
System.out.println("nhap n=");
Scanner sc1=new Scanner(System.in);
n=sc1.nextInt();
a=new int[n];
NhapMang(n, a);
XuatMang(n, a);
Chan(n, a);
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Mảng – Bài tập
 Viết chương trình nhập số tự nhiên N, nhập N
phần tử của mảng a, xuất kết quả :
 Các phần tử của mảng a và tổng của chúng
 Các phần tử chẵn của mảng a và tổng của chúng
 Các phần tử lẻ của mảng a và tổng của chúng
 Các phần tử là số nguyên tố của mảng a và tổng của
chúng
 Thêm 1 phần tử mới vào mảng
 Xoá phần tử thứ k của mảng a
 nhập 1 số x, kiểm tra x có trong mảng a không, nếu
có thì trả về vị trí của x trong mảng a
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Mảng – Bài tập
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList
 Là một đối tượng được Java định nghĩa để
biểu diễn một danh sách các phần tử mà số
lượng phần tử có thể thay đổi được.
 ArrayList quản lý các phần tử của danh sách
giống như mảng 1 chiều.
 ArrayList thường được sử dụng để biểu diễn
danh sách các phần tử có kiểu dữ liệu cấu trúc.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList
 Khai báo:
ArrayList <KDL> ten_danh_sach=new ArrayList<KDL>()
 Ví dụ:
ArrayList <Integer> listInt=new ArrayList<Integer>();
ArrayList <Student> studentList=new ArrayList<Student>();
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList- Một số phương thức
 Lấy số lượng phần tử của danh sách:
 Cú pháp: size()
 Ví dụ: int size=listInt.size();
 Thêm phần tử vào danh sách:
 Cú pháp: add(giá trị); hoặc add(int index, Giá trị);
 Ví dụ:
 listInt.add(2);
 listInt.add(0,3); // listInt gồm {3,2}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList- Một số phương thức
 Thay thế phần tử trong danh sách:
 Cú pháp: set(index, giá_trị);
 Ví dụ: listInt.set(1,5);// listInt={3,5}
 Xóa phần tử khỏi danh sách:
 Cú pháp: remove(int index)
 Ví dụ: listInt.remove(0);// listInt={5}
 Lấy giá trị phần tử trong danh sách:
 Cú pháp: get(int index)
 Ví dụ: int so=listInt.get(0);// so=5;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList- Một số phương thức
 Kiểm tra danh sách rỗng:
 Cú pháp: isEmpty()
 Ví dụ: boolean kt=listInt.isEmpty(); // kt=false;
 Xóa tất cả các phần tử khỏi danh sách:
 Cú pháp: clear()
 Ví dụ: listInt.clear();
 Tìm vị trí xuất hiện của phần tử trong danh sách:
 Cú pháp: indexOf(KDL giatri)
 Ví dụ:
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
ArrayList- Một số phương thức
 Kiểm tra phần tử có tồn tại trong danh sách
 Cú pháp: contains(KDL giátrị)
 Ví dụ: boolean kt=studentList.contains(“Hoa”);
 Duyệt danh sách ArrayList
 Sử dụng For
for(int i=0;i<listInt.size();i++) {
System.out.printf(“%3d”,listInt.get(i));
}
 Sử dụng foreach
for(KDL tên_biến: tên_danh_sách)
{ <lệnh>;}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi
 Khởi tạo đối tượng String:
- Khởi tạo tại vùng nhớ StringPool
- Cú pháp: String ten_thuoc_tinh=“chuỗi_văn_bản”;
- Ví dụ: String ten=“Nam”;
- Ý nghĩa: đối tượng ten_thuoc_tinh sẽ được lưu trữ tại vùng
nhớ StringPool nằm trong trong vùng nhớ heap, dừng để lưu
trứ các giá trị chuỗi hằng, giúp tiết kiệm tài nguyên.
Nam
Lan
Java
Heap
StringPool
String ten1=“Nam”
String ten2=“Nam”
String ten3=“Lan”
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi
 Khởi tạo đối tượng String:
- Khởi tạo tại vùng nhớ Heap
- Cú pháp: String ten_thuoc_tinh=new String (“chuỗi_văn_bản”);
- Ví dụ: String ten=new String(“Nam”);
- Ý nghĩa: Đối tượng ten_thuoc_tinh sẽ được tạo mới và được
lưu trữ tại vùng nhớ Heap.
Nam
Nam
Java
Heap
String ten1=new String(“Nam”);
String ten2=new String(“Nam”);
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi
 So sánh hai đối tượng String
Kiểu đối tượng Phương thức
sử dụng
Ví dụ
StringPool-StringPool ==, equals String ten1=“Nam”;
String ten2=“Nam”;
boolean kt=ten==ten2; kt=true;
boolean kt=ten1.equals(ten2);
kt=true;
Heap-Heap equals String ten1=new String(“Nam”);
String ten2= new String(“Nam”);
boolean kt=ten1.equals(ten2);
kt=true;
StringPool-Heap equals String ten1=“Nam”;
String ten2=new String(“Nam”);
boolean kt=ten1.equals(ten2);
kt=true;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi – Một số phương thức
String text=“Hello Java”;// chuỗi ví dụ
 length(): trả về số lượng kí tự của chuỗi
 Ví dụ: int do_dai=text.length();  do_dai=10
 charAt(int i): trả về kí tự thứ i trong chuỗi
 Ví dụ: char kyTu=text.charAt(4); kyTu=‘o’
 equals(string st): trả về giá trị boolean khi so sánh 2
chuỗi. True: nếu 2 chuỗi giống hệt nhau.
 Ví dụ: Boolean kt=text.equals(“hello Java”);  kt=false;
 equalsIgnoreCase(string st): trả về giá trị boolean khi
so sánh 2 chuỗi, không phân biệt hoa thường. True: nếu
2 chuỗi giống nhau
 Ví dụ: boolean kt=text.equalsIgnoreCase(“hello Java”);
 kt=true;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi – Một số phương thức
 compareTo(string st): thực hiện so sánh từng kí tự 2 chuỗi bằng
mã ASCII.
 0 nếu 2 chuỗi giống hệt nhau.
 <0 nếu chuỗi 1< chuỗi 2
 >0 nếu chuồi 1 > chuỗi 2
 Ví dụ: int kt=text.compareTo(“Gello”);  kt=1; // H-G=1;
 indexOf(string st): trả về vị trí xuất hiện đầu tiên của chuỗi st trong
chuỗi gốc tính từ vị trí 0. Nếu không tìm thấy trả về giá trị -1.
 Ví dụ: int pos=text.indexOf(“Ja”);  pos= 6;
 indexOf(string st, int start): trả về vị trí xuất hiện đầu tiên
của chuỗi st trong chuỗi gốc, tính từ vị trí start. Nếu không tìm
thấy trả về giá trị -1.
 Ví dụ: int pos=text.indexOf(“Ja”,3);  pos= 6.
int pos1= pos=text.indexOf(“Ja”,7);  pos1=-1;
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi – Một số phương thức
 contains(string st): trả về giá trị true nếu chuỗi gốc chứa chuỗi st,
ngược lại cho giá trị false.
 Ví dụ: boolean kt=text.contains(“Hell”); kt=true;
 replace(string old, string st): thay thế các chuỗi old trong chuỗi gốc
bằng chuỗi st.
 Ví dụ: String result=text.replace(“a”,”A”);
 result=“Hello JAvA”
 isEmpty(): trả về giá trị true nếu nếu chuỗi gốc là chuỗi rỗng
(length=0)
 Ví dụ: Boolean kt=text.isEmpty();  kt=false;
 split(string st): trả về mảng chuỗi con được cắt rời thành từng đoạn
tại các chuỗi con st trong chuỗi gốc.
 Ví dụ: string [] result=text.split(“ “);
 result = {“Hello”, “Java”};
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Cấu trúc chuỗi – Ví dụ
 VD 1: Viết chương trình nhập vào một chuỗi
text và in ra các kí tự viết hoa có trong chuỗi.
Tính tổng các kí tự là số có trong chuỗi.
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public class Vidu1 {
static String text;
public static void printUpper() {
System.out.println("Cac chu cai in hoa trong chuoi");
for(int i=0;i<text.length();i++){
char c=text.charAt(i);
if(c>='A'&& c<='Z')
System.out.printf("%2c",c);
}
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public static void tongSo(){
int tong=0, so;
char c;
for(int i=0;i<text.length();i++){
c=text.charAt(i);
if(c>='0'&& c<='9') {
so=Integer.parseInt(c+"");
tong+=so;
}
}
System.out.println("nTong cua cac ki tu so trong chuoi"+tong);
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
public static void main(String[] args) {
System.out.println("Moi nhap xau:");
Scanner sc=new Scanner(System.in);
text=sc.nextLine();
printUpper();
tongSo();
}
Lập trình hướng đối tượng
Chương 1. Lập trình Java căn bản
Chuỗi – Bài tập
1. Viết chương trình nhập chuỗi s, xuất kết quả:
 Độ dài của s
 Xoá bỏ khoảng trắng thừa của s
 Đếm số từ của s và xuất mỗi từ nằm trên 1 dòng
 nhập số tự nhiên k, xuất k ký tự bên trái của s, k kí tự
bên phải của s
 nhập số tự nhiên k, n, xuất n kí tự của s kể từ vị trí k


More Related Content

Similar to 1. Java cơ bản.pdf

DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfTamDo58
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfHiNht6
 
Python moi
Python moiPython moi
Python moiDÉp LÊ
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfssuserd01a5c
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
Session 4
Session 4Session 4
Session 4pnanhvn
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhCodeGym Đà Nẵng
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdfSonNguyen642431
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trìnhLê Định
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trìnhLê Định
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Dũng Đinh
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Thanh Giảng Lê
 

Similar to 1. Java cơ bản.pdf (20)

DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdf
 
temp.pdf
temp.pdftemp.pdf
temp.pdf
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdf
 
344444
344444344444
344444
 
Python moi
Python moiPython moi
Python moi
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdf
 
Lap trinhvba
Lap trinhvbaLap trinhvba
Lap trinhvba
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
Session 4
Session 4Session 4
Session 4
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
 
Bai08 lap trinhtongquat
Bai08 lap trinhtongquatBai08 lap trinhtongquat
Bai08 lap trinhtongquat
 
Linq net
Linq net Linq net
Linq net
 
Mang1 chieu
Mang1 chieuMang1 chieu
Mang1 chieu
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trình
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trình
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 

Recently uploaded

Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 

Recently uploaded (20)

Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 

1. Java cơ bản.pdf

  • 1. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Nội dung chính Lập Trình Java căn bản 1 Lớp và đối tượng 2 Kế thừa 3 Interface 5 Đa hình 4
  • 2. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Giới thiệu về Java  Java là ngôn ngữ lập trình thuần hướng đối tượng  Khởi đầu vào năm 1991 bởi James Gosling và đồng nghiệp ở Sun MicroSystem. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak.  Năm 1994: được phát hành  Năm 1995: đổi tên thành Java  2010 được Oracle mua lại từ Sun MicroSystem
  • 3. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chương trình Java
  • 4. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chương trình Java // This is a simple program called “Ex1.java” public class Ex1 { public static void main(String args[]) { System.out.println(“My first program in Java”); } }
  • 5. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Biến  Biến là tên của một vùng nhớ được dùng để lưu dữ liệu khi chương trình chạy.  Tên biến:  Không bắt đầu với _ và $  Từ đầu tiên là in thường, các kí tự đầu của các từ sau in hoa  Java yêu cầu biến trước khi dùng phải khai báo  Các biến khai báo ở trong 1 hàm là biến địa phương  Có thể vừa khai báo vừa khởi tạo  Ví dụ: int x; // Khai báo x=10; // Sử dụng char Diem= ‘A’; // Vừa khai báo vừa khởi tạo giá trị
  • 6. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Biến
  • 7. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Kiểu dữ liệu  Kiểu dữ liệu cơ sở (Primitive Data Types)  Kiểu dữ liệu tham chiếu (Reference data types)
  • 8. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Kiểu dữ liệu  Kiểu dữ liệu cơ sở: Kiểu dữ liệu Phạm vi Giá trị mặc định byte 8 bit (-128-> 127) 0 char 16 bit (0 -> 216-1) Hay ‘u0000’ đến ‘uffff’ 0 boolean 1 bit (“True” hoặc “False”) False short 16 bit (-215 -> 215-1) 0 int 32 bit (-231 -> 231-1) 0 long 64 bit (-263 -> 263-1) 0L float 32 bit (-231 -> 231-1) 0.0F double 64 bit (-263 -> 263-1) 0.0
  • 9. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Kiểu dữ liệu  Kiểu dữ liệu có cấu trúc:  Có sẵn: là các đối tượng được Java xây dựng để sử dụng: String, File, List, …  Người dùng tự tạo: là các đối tượng không có sẵn mà người dùng sẽ tự tạo ra các đối tượng tùy thuộc bài toán. Ví dụ: Học sinh, Tứ giác, Hình Vuông, …
  • 10. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Kiểu dữ liệu  Kiểu dữ liệu tham chiếu
  • 11. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Chuyển kiểu dữ liệu  Cú pháp: (KDL đích)giá trị;  Một số cách chuyển khác: // thêm L đằng sau 1 số nguyên long a=5L; long a=(long)5; int a=5; long b=(long )a; long b=2L*a; long b=2*(long)a; int a=5; float b=8/a; // bị mất dữ liệu float b=8F/a; float b=8/(float)a; float a=5F; char kyTu=(char)65; // kyTu=‘A’ int a=65; char kyTu=(char)a; int a=5; double c = (double) a; char kyTu=‘A’; int a=(int)kyTu; //a=65 // nếu có HinhVuong extends TuGiac HinhVuong hv; TuGiac tg=(TuGiac)hv;
  • 12. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Chuyển kiểu dữ liệu  Đổi 1 biến từ kiểu xâu sang số  Ví dụ:  String st=sc.nextLine();  int a=Integer.parseInt(st);  float b=Float.parseFloat(st);  Đổi 1 số sang xâu: Dùng Toán tử +: Ví dụ: double d = 100D; String s = "" + d; System.out.println(s); • Sử dụng phương thức toString() Ví dụ: Short.toString(biến) Integer.toString()
  • 13. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản * Phép gán: Ví dụ: a=5; * Phép toán số học: Các phép toán cơ bản Phép toán Ý nghĩa + Tính tổng - Tính hiệu * Nhân / Chia nguyên % Chia dư ++ Tăng lên 1 -- Giảm đi 1
  • 14. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Các phép toán cơ bản  Phép toán điều kiện: (<Biểu thức so sánh>)?giá trị 1:giá trị 2;  Ví dụ: (x >= 0) ? x : -x;
  • 15. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm nhập xuất  Xuất dữ liệu: - Cú pháp:  System.out.print(): xuất ra 1 chuỗi hay 1 giá trị (không xuống dòng)  System.out.println(): xuất ra 1 chuỗi hay 1 giá trị (xuống dòng)  Sytstem.out.printf(): xuất ra màn hình một chuỗi theo định dạng tương tự như ngôn ngữ lập trình C++
  • 16. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản  System.out.printf(“format-string”, [arg1, arg2, arg3, …]);  Trong đó:  %d, %f, %c, %s: số nguyên (byte, short, int, long), số thực (float, double) , kí tự (C: kí tự in hoa), xâu kí tự (S: xâu in hoa).  Dấu -: canh trái, mặc định canh phải.  %0: fill số 0.  Một số ký tự đặc biệt: a, b, n, r, t, v, (alert, Backspace, dòng mới, đầu dòng, tab ngang, tab dọc, )  Độ chính xác của số thực: %5.3f: độ chính xác phần lẻ của số trong format-string là 3
  • 17. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm nhập dữ liệu  Khai báo thư viện Scanner import java.util.Scanner;  Cú pháp khai báo đối tượng: Scanner sc = new Scanner(System.in);  Trong đó: • Dữ liệu nhập vào là số nguyên: int a=sc.nextInt(); • Dữ liệu nhập vào là số thực: double b=sc.nextDouble(); • Dữ liệu nhập vào là chuỗi: String b=sc.nextLine();
  • 18. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Các cấu trúc điều khiển  Lệnh if Cú pháp Ví dụ if (điều kiện) { <câu lệnh 1>; } [else { <câu lệnh 2>; }] int num=11; if (num%5 == 0) System.out.println (num + "chia het cho 5!"); else System.out.println (num + "khong chia het cho 5!");
  • 19. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Các cấu trúc điều khiển  Lệnh Switch … Case Cú pháp Ỹ nghĩa switch (biểu thức) { case ‘giá trị 1’: khối lệnh 1; break; case ‘giá trị 2’: khối lệnh 2; break; ………………… case ‘giá trị N’: khối lệnh N; break; default: khối lệnh mặc định; } int day = 2; switch(day) { case 0 : System.out.println(“Sunday”); break; case 1 : System.out.println(“Monday”); break; case 2 : System.out.println(“Tuesday”); break; case 3 : System.out.println(“Wednesday”); break; case 4 : System.out.println(“Thursday”); break; case 5: System.out.println(“Friday”); break; case 6 : System.out.println(“Satuday”); break; default: System.out.println(“Invalid day of week”); }
  • 20. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Vòng lặp while Cú pháp Ví dụ while(điều kiện) { <khối lệnh;> } count=1; while(count<=number) { System.out.print(count + “, ”); count++; }
  • 21. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Vòng lặp do…while  Cú pháp: do { <Câu lệnh>; } while (điều_kiện);  So sánh while và do…while while do…while count=1; while(count<=number) { System.out.print(count+” ,”); count++; } count=1; do{ System.out.print(count+”, “); count++; } while(count<=number);
  • 22. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Vòng lặp For  Cú pháp: for(biểu thức 1; biểu thức 2; biểu thức 3) {<câu lệnh>;}
  • 23. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Vòng lặp Foreach Cú pháp: for(data_type variable : array | collection){}
  • 24. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm – Phương thức [Kiểu dữ liệu PT] <Tên PT>([danh sách tham số]) { [Các khai báo của PT] ... <Nội dung PT> [return <giá trị trả lại cho PT>;] }
  • 25. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm – Ví dụ  Viết hàm kiểm tra 1 số nguyên có phải số nguyên tố hay không? Viết hàm main in ra các số nguyên tố nhỏ hơn n, n nhập từ bàn phím.
  • 26. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm – Ví dụ public class main { public static boolean nguyento(int n){ if(n<2)return false; for(int i=2;i<=n/2;i++) if(n%i==0)return false; return true; }
  • 27. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public static void main(String[] args) { int n; System.out.println("Moi nhap gia tri n:"); Scanner sc=new Scanner(System.in); n=sc.nextInt(); System.out.println("nCac so nguyen to nho hơn "+n); for(int i=0;i<n;i++) if(nguyento(i))System.out.print(" "+i); }
  • 28. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm chồng – Methods Overloading  Java cho phép xây dựng hàm chồng  Hàm chồng: các hàm trùng tên, nhưng khác tham số truyền vào.  Lúc gọi hàm, dựa vào các tham số truyền vào Java nhận biết được hàm nào được gọi thực thi.
  • 29. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Hàm chồng – Ví dụ  SV tự lấy ví dụ minh họa
  • 30. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng - Mảng là một tập các phần tử có cùng kiểu dữ liệu. - Khai báo mảng 1 chiều: - Cách 1: B1: <KDL> [] tên_Mảng; hoặc <KDL> ten_Mang[]; B2: tên_Mảng = new <KDL> [Số_PT]; Ví dụ: int [] mang1; hoặc int mang1[]; mang1=new int[5]; - Cách 2: <KDL> tên_Mảng [] = new <KDL> [Số_PT]; Ví dụ: float mang2[]=new float [10];
  • 31. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng - Khai báo mảng 1 chiều: - Cách 3: <KDL> tên_Mảng[]=new <KDL>[]{gt1, gt2,…gtn}; Ví dụ: int mang1[]=new int [] {2,6,4,8,9};  Mảng trên có 5 phần tử, giá trị các phần tử lần lượt là các giá trị liệt kê ở trên.
  • 32. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng - Khai báo mảng 2 chiều: / Khai báo một mảng có 5 dòng, 10 cột MyType[][] myArray1 = new MyType[5][10]; // Khai báo một mảng 2 chiều có 5 dòng. // (Mảng của mảng) MyType[][] myArray2 = new MyType[5][]; // Khai báo một mảng 2 chiều, chỉ định giá trị các phần tử. MyType[][] myArray3 = new MyType[][] { { value00, value01, value02 , value03 }, { value10, value11, value12 } };
  • 33. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng – Mảng hai chiều Khai báo: <KDL> tenmang[][]= new <KDL> [sl_PT][sl_thuộc_tính];  Phương thức length: lấy số lượng phần tử mảng  VD: int x=arrSo[0].length; // số lượng thuộc tính của phần tử 0 Thuộc tính Phần tử 0 0 0 0 0 0
  • 34. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng - Truy xuất phần tử mảng:  Mảng 1 chiều: Tên_mảng[chỉ số]  Mảng hai chiều:  Tên_Mảng[chỉ_số_pt][chỉ_số_thuộc_tính] - Ví dụ:  arrNguyen[5];  arrXY[2][1];
  • 35. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng Duyệt mảng 1 chiều: “”  Sử dụng for  VD1: In ra các giá trị trong mảng số nguyên arrNguyen for(int i=0; i<arrNguyen.length; i++) System.out.printf(“ %3d “ ,arrNguyen[i]);  Sử dụng Foreach for(int x: arrNguyen) System.out.printf( “ %3d”,x);
  • 36. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng  Duyệt mảng 2 chiều:  VD1: In ra các giá trị trong mảng số nguyên for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[0].length;j++) System.out.printf("%3d",arr[i][j]); System.out.println(""); }
  • 37. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng – Thư viện Arrays - Gói thư viện: java.util.Arrays - Phương thức Fill: - Cú pháp: Arrays.fill(<KDL> ten_mang[],<KDL> gia_trị); - Ý nghĩa: khởi tạo các giá trị giống nhau cho tất cả các phần tử mảng. - Ví dụ: - Arrays.fill(arraySoNguyen,5); - Gán tất cả các phần tử của mảng arraySoNguyen bằng 5
  • 38. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng – Thư viện Arrays - Phương thức toString - Cú pháp: Arrays.toString(<KDL> ten_mang[]) - Ý nghĩa: trả về giá trị dạng chuỗi của các phần tử mảng. - Ví dụ: String content=Arrays.toString(arraySonguyen);
  • 39. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc mảng – Thư viện Arrays  Phương thức sort:  Dùng để sắp xếp vị trí các phần tử mảng theo 1 tiêu chí nào đó: sắp xếp tang dần, giảm dần, …  Cú pháp: Arrays.sort(<KDL> tên_mảng[])
  • 40. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Mảng – Ví dụ  Viết chương trình nhập và in mảng 1 chiều gồm n phần tử các số nguyên. In ra tổng các phần tử có giá trị chẵn của mảng.
  • 41. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public class Mang { public static void NhapMang(int n, int a[]){ for(int i=0;i<n;i++ ){ System.out.printf("mang[%d]=",i); Scanner sc=new Scanner(System.in); a[i]=sc.nextInt(); } } public static void XuatMang(int n, int a[]){ for(int i=0;i<n;i++){ System.out.printf("%3d",a[i]); } }
  • 42. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public static void Chan(int n, int a[]){ int tongChan=0; System.out.println("nCac phan tu chan cua mang la:"); for(int i=0;i<n;i++){ if(a[i]%2==0) { System.out.printf("%3d",a[i]); tongChan +=a[i]; } } System.out.printf("ntong chan cua mang la %3d",tongChan); }
  • 43. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public static void main(String[] args) { int n, a[]; System.out.println("nhap n="); Scanner sc1=new Scanner(System.in); n=sc1.nextInt(); a=new int[n]; NhapMang(n, a); XuatMang(n, a); Chan(n, a); }
  • 44. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Mảng – Bài tập  Viết chương trình nhập số tự nhiên N, nhập N phần tử của mảng a, xuất kết quả :  Các phần tử của mảng a và tổng của chúng  Các phần tử chẵn của mảng a và tổng của chúng  Các phần tử lẻ của mảng a và tổng của chúng  Các phần tử là số nguyên tố của mảng a và tổng của chúng  Thêm 1 phần tử mới vào mảng  Xoá phần tử thứ k của mảng a  nhập 1 số x, kiểm tra x có trong mảng a không, nếu có thì trả về vị trí của x trong mảng a
  • 45. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Mảng – Bài tập
  • 46. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList  Là một đối tượng được Java định nghĩa để biểu diễn một danh sách các phần tử mà số lượng phần tử có thể thay đổi được.  ArrayList quản lý các phần tử của danh sách giống như mảng 1 chiều.  ArrayList thường được sử dụng để biểu diễn danh sách các phần tử có kiểu dữ liệu cấu trúc.
  • 47. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList  Khai báo: ArrayList <KDL> ten_danh_sach=new ArrayList<KDL>()  Ví dụ: ArrayList <Integer> listInt=new ArrayList<Integer>(); ArrayList <Student> studentList=new ArrayList<Student>();
  • 48. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList- Một số phương thức  Lấy số lượng phần tử của danh sách:  Cú pháp: size()  Ví dụ: int size=listInt.size();  Thêm phần tử vào danh sách:  Cú pháp: add(giá trị); hoặc add(int index, Giá trị);  Ví dụ:  listInt.add(2);  listInt.add(0,3); // listInt gồm {3,2}
  • 49. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList- Một số phương thức  Thay thế phần tử trong danh sách:  Cú pháp: set(index, giá_trị);  Ví dụ: listInt.set(1,5);// listInt={3,5}  Xóa phần tử khỏi danh sách:  Cú pháp: remove(int index)  Ví dụ: listInt.remove(0);// listInt={5}  Lấy giá trị phần tử trong danh sách:  Cú pháp: get(int index)  Ví dụ: int so=listInt.get(0);// so=5;
  • 50. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList- Một số phương thức  Kiểm tra danh sách rỗng:  Cú pháp: isEmpty()  Ví dụ: boolean kt=listInt.isEmpty(); // kt=false;  Xóa tất cả các phần tử khỏi danh sách:  Cú pháp: clear()  Ví dụ: listInt.clear();  Tìm vị trí xuất hiện của phần tử trong danh sách:  Cú pháp: indexOf(KDL giatri)  Ví dụ:
  • 51. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản ArrayList- Một số phương thức  Kiểm tra phần tử có tồn tại trong danh sách  Cú pháp: contains(KDL giátrị)  Ví dụ: boolean kt=studentList.contains(“Hoa”);  Duyệt danh sách ArrayList  Sử dụng For for(int i=0;i<listInt.size();i++) { System.out.printf(“%3d”,listInt.get(i)); }  Sử dụng foreach for(KDL tên_biến: tên_danh_sách) { <lệnh>;}
  • 52. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi  Khởi tạo đối tượng String: - Khởi tạo tại vùng nhớ StringPool - Cú pháp: String ten_thuoc_tinh=“chuỗi_văn_bản”; - Ví dụ: String ten=“Nam”; - Ý nghĩa: đối tượng ten_thuoc_tinh sẽ được lưu trữ tại vùng nhớ StringPool nằm trong trong vùng nhớ heap, dừng để lưu trứ các giá trị chuỗi hằng, giúp tiết kiệm tài nguyên. Nam Lan Java Heap StringPool String ten1=“Nam” String ten2=“Nam” String ten3=“Lan”
  • 53. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi  Khởi tạo đối tượng String: - Khởi tạo tại vùng nhớ Heap - Cú pháp: String ten_thuoc_tinh=new String (“chuỗi_văn_bản”); - Ví dụ: String ten=new String(“Nam”); - Ý nghĩa: Đối tượng ten_thuoc_tinh sẽ được tạo mới và được lưu trữ tại vùng nhớ Heap. Nam Nam Java Heap String ten1=new String(“Nam”); String ten2=new String(“Nam”);
  • 54. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi  So sánh hai đối tượng String Kiểu đối tượng Phương thức sử dụng Ví dụ StringPool-StringPool ==, equals String ten1=“Nam”; String ten2=“Nam”; boolean kt=ten==ten2; kt=true; boolean kt=ten1.equals(ten2); kt=true; Heap-Heap equals String ten1=new String(“Nam”); String ten2= new String(“Nam”); boolean kt=ten1.equals(ten2); kt=true; StringPool-Heap equals String ten1=“Nam”; String ten2=new String(“Nam”); boolean kt=ten1.equals(ten2); kt=true;
  • 55. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi – Một số phương thức String text=“Hello Java”;// chuỗi ví dụ  length(): trả về số lượng kí tự của chuỗi  Ví dụ: int do_dai=text.length();  do_dai=10  charAt(int i): trả về kí tự thứ i trong chuỗi  Ví dụ: char kyTu=text.charAt(4); kyTu=‘o’  equals(string st): trả về giá trị boolean khi so sánh 2 chuỗi. True: nếu 2 chuỗi giống hệt nhau.  Ví dụ: Boolean kt=text.equals(“hello Java”);  kt=false;  equalsIgnoreCase(string st): trả về giá trị boolean khi so sánh 2 chuỗi, không phân biệt hoa thường. True: nếu 2 chuỗi giống nhau  Ví dụ: boolean kt=text.equalsIgnoreCase(“hello Java”);  kt=true;
  • 56. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi – Một số phương thức  compareTo(string st): thực hiện so sánh từng kí tự 2 chuỗi bằng mã ASCII.  0 nếu 2 chuỗi giống hệt nhau.  <0 nếu chuỗi 1< chuỗi 2  >0 nếu chuồi 1 > chuỗi 2  Ví dụ: int kt=text.compareTo(“Gello”);  kt=1; // H-G=1;  indexOf(string st): trả về vị trí xuất hiện đầu tiên của chuỗi st trong chuỗi gốc tính từ vị trí 0. Nếu không tìm thấy trả về giá trị -1.  Ví dụ: int pos=text.indexOf(“Ja”);  pos= 6;  indexOf(string st, int start): trả về vị trí xuất hiện đầu tiên của chuỗi st trong chuỗi gốc, tính từ vị trí start. Nếu không tìm thấy trả về giá trị -1.  Ví dụ: int pos=text.indexOf(“Ja”,3);  pos= 6. int pos1= pos=text.indexOf(“Ja”,7);  pos1=-1;
  • 57. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi – Một số phương thức  contains(string st): trả về giá trị true nếu chuỗi gốc chứa chuỗi st, ngược lại cho giá trị false.  Ví dụ: boolean kt=text.contains(“Hell”); kt=true;  replace(string old, string st): thay thế các chuỗi old trong chuỗi gốc bằng chuỗi st.  Ví dụ: String result=text.replace(“a”,”A”);  result=“Hello JAvA”  isEmpty(): trả về giá trị true nếu nếu chuỗi gốc là chuỗi rỗng (length=0)  Ví dụ: Boolean kt=text.isEmpty();  kt=false;  split(string st): trả về mảng chuỗi con được cắt rời thành từng đoạn tại các chuỗi con st trong chuỗi gốc.  Ví dụ: string [] result=text.split(“ “);  result = {“Hello”, “Java”};
  • 58. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Cấu trúc chuỗi – Ví dụ  VD 1: Viết chương trình nhập vào một chuỗi text và in ra các kí tự viết hoa có trong chuỗi. Tính tổng các kí tự là số có trong chuỗi.
  • 59. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public class Vidu1 { static String text; public static void printUpper() { System.out.println("Cac chu cai in hoa trong chuoi"); for(int i=0;i<text.length();i++){ char c=text.charAt(i); if(c>='A'&& c<='Z') System.out.printf("%2c",c); } }
  • 60. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public static void tongSo(){ int tong=0, so; char c; for(int i=0;i<text.length();i++){ c=text.charAt(i); if(c>='0'&& c<='9') { so=Integer.parseInt(c+""); tong+=so; } } System.out.println("nTong cua cac ki tu so trong chuoi"+tong); }
  • 61. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản public static void main(String[] args) { System.out.println("Moi nhap xau:"); Scanner sc=new Scanner(System.in); text=sc.nextLine(); printUpper(); tongSo(); }
  • 62. Lập trình hướng đối tượng Chương 1. Lập trình Java căn bản Chuỗi – Bài tập 1. Viết chương trình nhập chuỗi s, xuất kết quả:  Độ dài của s  Xoá bỏ khoảng trắng thừa của s  Đếm số từ của s và xuất mỗi từ nằm trên 1 dòng  nhập số tự nhiên k, xuất k ký tự bên trái của s, k kí tự bên phải của s  nhập số tự nhiên k, n, xuất n kí tự của s kể từ vị trí k 