-
LỚP VÀ ĐỐI TƯỢNG
Giảng viên: Đỗ Ngọc Như Loan
-
ĐỐI TƯỢNG
Là sự vật hiện tượng cụ thể trong đời sống thực
Ví dụ: sinh viên Nguyễn Văn Tèo, chó milu, mèomimi,…
Mỗi đối tượng bao gồm tập thuộc tính và tập phươngthức
Thuộc tính (property): mô tả đối tượng, thể hiệnđặc trưng của đối tượng
Phương thức (method): là hành vi của chính đốitượng
-
LỚP
Đại diện cho một tập hợp các đối tượng có chungmột số đặc điểm, tính chất (thuộc tính) và hànhđộng (phương thức)
Ví dụ :
Lớp sinh viên : đại diện cho 1 nhóm sinh viên với:
Tập thuộc tính: mã sinh viên, họ, tên.
Tập phương thức: nhập, xuất, hiệu chỉnh thôngtin sinh viên
Lớp hình chữ nhật,...
-
KHAI BÁO LỚP
Cú pháp:
class
{
//khai báo thuộc tính của đối tượng
(thành phần dữ liệu)
//khai báo phương thức
(thành phần hàm)
}
-
VÍ DỤclass HinhChuNhat
{
private float dai;
private float rong;
public void nhap()
{
Scanner sc = new Scanner(System.in);
System.out.println(“Nhap dai”);
dai= sc.nextFloat();
System.out.println(“Nhap rong”);
rong= sc.nextFloat();
}
public float dientich()
{
return dai*rong;
}
public void xuat()
{
System.out.println(“Dien tich HCN: “+ dientich());
}
}
Biếnthuộctính
Phươngthức
-
Tạo đối tượng: dùng new khai báo biến có kiểu làclass.
Instance chính là biến đối tượng của class.
Cú pháp:
Ví dụ:
Ta có class SinhVien, khi khai báo biến sv có kiểu làSinhVien thì sv là 1 instance của lớp SinhVien
SinhVien sv = new SinhVien();
= new ();
INSTANCE (THỂ HIỆN)
-
VÍ DỤ
class Program
{
public static void main(String args[])
{
HinhChuNhat hcn1=new HinhChuNhat();
hcn1.nhap();
hcn1.xuat();
}
}
Kết quả xuất ra màn hình là gìnếu nhập vào chiều dài là 5, chiều
rộng là 3?
-
THUỘC TÍNH TRUY XUẤT (ACCESS MODIFIER)
Private: chỉ được truy xuất bên trong lớp đó
Public: ở đâu cũng truy xuất được
Protected: chỉ được truy xuất ở trong lớp đó vàlớp con
Default: được truy xuất trong cùng package
-
VÍ DỤ
class Program
{
public static void main(String args[])
{
HinhChuNhat hcn1=new HinhChuNhat();
hcn1.nhap();
hcn1.xuat();
hcn1.dai=100; //Lỗi}
}
-
HÀM THIẾT LẬP (CONSTRUCTOR)
Là hàm thành phần của class, dùng để thiết lậpcác giá trị ban đầu cho các thuộc tính, hàm thiếtlập có các đặc điểm sau:
Trùng tên với class
Thuộc tính truy xuất: public
Không có kiểu trả về
Tự động chạy khi khai báo biến của lớp
Hàm thiết lập sao chép: là 1 hàm thiết lậpdùng để sao chép đối tượng
-
class DIEM {
int x; int y;
public DIEM() {
x = 0; y = 0;
}
public DIEM(int x, int yy) {
this.x = x;
y = yy;
}
public DIEM(DIEM mm) {
this.x = mm.x;
this.y = mm.y;
}
public void xuat() {
System.out.println(“Toa do: ”+x+” “+y);
}
}
Từ khóa this tham chiếu đến đốitượng hiện hành. Phân biệt thuộc tính
x của đối tượng với tham số x.
Hàm
thiết lập
Hàm thiết lập sao chép
-
public static void main(String args[])
{
DIEM d1=new DIEM();
d1.xuat();
DIEM d2=new DIEM(7,9);
d2.xuat();
DIEM d3=new DIEM(d2);
d3.xuat();
}
Kết quả xuất ra màn hình là gì?
-
PHƯƠNG THỨC GET/SET
Dùng để truy cập đến các biến của đối tượng
Phương thức get: lấy dữ liệu của thuộc tính
Phương thức set: gán dữ liệu cho thuộc tính
Ví dụ tạo phương thức get/set cho thuộc tính name:
public void setName(String newname)
{
name = newname;
}
public String getName()
{
return name;
}
-
VÍ DỤclass HinhChuNhat{
private float dai;private float rong;public void setDai(float newdai) {
dai = newdai;}public float getDai(){
return dai;}
public void setRong(float newrong) {
rong = newrong;}public float getRong(){
return rong;}
…}
-
VÍ DỤ
class Program
{
public static void main(String args[])
{
HinhChuNhat hcn1 = new HinhChuNhat();
hcn1.setDai(5);
hcn1.setRong(3);
hcn1.xuat();
}
}
-
STATIC
Thuộc tính static
Phương thức static
-
THUỘC TÍNH STATIC
Khi các đối tượng của lớp cần truy xuất chung 1 thuộc tính của chúng, thì hãy thiết kế thuộc tínhstatic.
Ví dụ:
Lớp SinhVien có cùng số lượng sinh viên, thìthuộc tính số lượng sinh viên là thuộc tính static
Thuộc tính static thường được gán giá trị mặcđịnh ban đầu
-
PHƯƠNG THỨC STATIC
Khi đối tượng gọi phương thức của nó thì theo quy tắc:
.;
Có một số phương thức thực hiện không cần có đốitượng thì khai báo chúng là phương thức static.
Quy tắc gọi phương thức static là: .;
Phương thức static chỉ truy xuất được các thuộc tính/ phương thức static
-
VÍ DỤ
public class Cat
{
private static int count = 0;
public Cat()
{
count++;
}
public static void HowManyCats()
{
System.out.println(count+” cats”);
}
}
-
public static void main(String[] args)
{
Cat.HowManyCats();
Cat mun = new Cat();
Cat.HowManyCats();
Cat muop = new Cat();
Cat miu = new Cat();
Cat.HowManyCats();
}
VÍ DỤ
Kết quả xuất ramàn hình?
-
BÀI TẬP
Thiết kế lớp Ngày, Tháng, Năm
Thiết kế lớp Giờ, Phút, Giây
-
CÂU HỎI
Thiết kế lớp PhanSo:
- Gồm 2 biến thuộc tính private là 2 số nguyên tươngứng với tử số và mẫu số
- Xây dựng phương thức get/set cho 2 biến thuộc tínhnày.
- Xây dựng 1 constructor với tham số là 2 số nguyên đểkhởi tạo giá trị cho tử số và mẫu số.
- Xây dựng các hàm thành viên sau:
+ void xuat(): xuất ra màn hình phân số theo dạng A/B
+ void nghichdao(): nghịch đảo phân số hiện tại
+ PhanSo tong(PhanSo p): tính tổng của phân số hiệntại với 1 phân số p (là tham số truyền vào), trả về kếtquả là 1 phân số (không cần tối giản).