Nội dung Khai báo lớp đối tượng Khai báo thuộc tính Định nghĩa các phương thức khởi tạo Định nghĩa các phương thức get/set Định nghĩa các phương thức nhập xuất console Đ
Trang 1LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Trang 2Nội dung
Khai báo lớp đối tượng
Khai báo thuộc tính
Định nghĩa các phương thức khởi tạo
Định nghĩa các phương thức get/set
Định nghĩa các phương thức nhập xuất console
Định nghĩa các phương thức xử lý nghiệp vụ
Định nghĩa các phương thức overload
Định nghĩa các phương thức mức lớp (static)
Trang 3KHAI BÁO LỚP
Trang 4public class PhanSo{
//Khai báo các thuộc tính
//Khai báo các phương thức
}
Trang 5KHAI BÁO THUỘC TÍNH
Trang 6Khai báo thuộc tính
Trang 7Khai báo thuộc tính
public class PhanSo{
//Khai báo các thuộc tính
private int tuSo;
private int mauSo ;
//Khai báo các phương thức
}
Trang 8Khai báo thuộc tính
public class MangSoNguyen{
//Khai báo các thuộc tính
private int [] arr;
//Khai báo các phương thức
public class MangPhanSo{
//Khai báo các thuộc tính
private PhanSo [] arr;
//Khai báo các phương thức
}
Trang 9HỎI VÀ ĐÁP
Trang 10PHƯƠNG THỨC KHỞI TẠO ĐỐI TƯỢNG
Trang 11Định nghĩa phương thức khởi tạo đối tượng
public class TenLop{
//Khai báo các thuộc tính
private KieuDuLieu thuocTinh1;
private KieuDuLieu thuocTinhN ;
//Phương thức khởi tạo mặc định
public TenLop(){
this.thuocTinh1= Giá trị mặc định ; this.thuocTinhN= Giá trị mặc định ;
} //Phương thức khởi tạo đầy đủ tham số
public TenLop(KieuDuLieu thuocTinh1, , KieuDuLieu thuocTinhN){ this.thuocTinh1=thuocTinh1;
this.thuocTinhN=thuocTinhN;
} //Phương thức khởi tạo sao chép
public TenLop(TenLop tl){
this.thuocTinh1=tl.thuocTinh1; this.thuocTinhN=tl.thuocTinhN;
} }
Trang 12Định nghĩa phương thức khởi tạo đối tượng
public class PhanSo{
//Khai báo các thuộc tính
private int tuSo;
private int mauSo ;
//Phương thức khởi tạo mặc định
public PhanSo(){
this.tuSo= 1 ; this.mauSo= 2 ; }
//Phương thức khởi tạo đầy đủ tham số
public PhanSo(int tuSo, int mauSo){
this.tuSo=tuSo;
this.mauSo=mauSo;
} //Phương thức khởi tạo sao chép
public PhanSo(PhanSo ps){
this.tuSo=ps.tuSo;
this.mauSo=ps.mauSo;
} }
Trang 13Định nghĩa phương thức khởi tạo đối tượng
public class Main {
public static void main(String[] args) { PhanSo ps1=new PhanSo();
PhanSo ps2=new PhanSo(2,3);
PhanSo ps3=new PhanSo(ps2);
}
}
Trang 14Định nghĩa phương thức khởi tạo đối tượng
public class MangPhanSo {
//Khai báo thuộc tính
private PhanSo[] arr;
//Phương thức khởi tạo mặc định
public MangPhanSo() {
this.arr = null;
}
//Phương thức khởi tạo có tham số
public MangPhanSo(PhanSo arr) {
this.arr = new PhanSo[arr.length];
for (int i = 0; i < arr.length; i++) {
this.arr[i] = new PhanSo(arr[i]);
}
}
//Phương thức khởi tạo sao chép
public MangPhanSo(MangPhanSo mps) {
this.arr = new PhanSo[mps.arr.length];
for (int i = 0; i < mps.arr.length; i++) {
this.arr[i] = new PhanSo(mps.arr[i]);
}
}
}
Trang 15Định nghĩa phương thức khởi tạo đối tượng
MangPhanSo mps1=new MangPhanSo();
//Sử dụng phương thức khởi tạo có tham số
MangPhanSo mps2=new MangPhanSo(new PhanSo( 2 , 3 )); MangPhanSo mps3=new MangPhanSo(new PhanSo( 1 , 3 ), new PhanSo( 4 , 3 ), new PhanSo( 5 , 9 )); PhanSo [] arr = new PhanSo[ 2 ];
arr[ 0 ]=new PhanSo( 2 , 4 );
arr[ 1 ]=new PhanSo( 3 , 7 );
MangPhanSo mps4=new MangPhanSo(arr);
//Sử dụng phương thức khởi tạo sao chép
MangPhanSo mps5=new MangPhanSo(mps3);
}
}
Trang 16Định nghĩa phương thức khởi tạo đối tượng
public class MangSoNguyen {
//Khai báo thuộc tính
private int [] arr;
//Phương thức khởi tạo mặc định
public MangSoNguyen() {
this.arr = null;
}
//Phương thức khởi tạo có tham số
public MangSoNguyen( int arr) {
this.arr = new int [arr.length];
for (int i = 0; i < arr.length; i++) {
this.arr[i] = arr[i];
}
}
//Phương thức khởi tạo sao chép
public MangSoNguyen(MangSoNguyen msn) {
this.arr = new int [msn.arr.length];
for (int i = 0; i < msn.arr.length; i++) {
this.arr[i] = msn.arr[i];
}
}
}
Trang 17Định nghĩa phương thức khởi tạo đối tượng
public class Main {
public static void main(String[] args) { //Sử dụng phương thức khởi tạo mặc định
MangSoNguyen msn1=new MangSoNguyen();
//Sử dụng phương thức khởi tạo có tham số
MangSoNguyen msn2=new MangSoNguyen(3));
MangSoNguyen msn3=new MangSoNguyen(3, 2, 8); MangSoNguyen msn4=new MangSoNguyen(4, 9, 1, 5); int [] arr = new int{3,4,7};
MangSoNguyen msn5=new MangSoNguyen(arr);
//Sử dụng phương thức khởi tạo sao chép
MangSoNguyen msn6=new MangSoNguyen(mps3);
}
}
Trang 18HỎI VÀ ĐÁP
Trang 19GETTER / SETTER
Trang 20Định nghĩa các phương thức get/set
public class TenLop{
//Khai báo các thuộc tính
private KieuDuLieu thuocTinh1;
private KieuDuLieu thuocTinhN ;
//Các phương thức khởi tạo đối tượng
} public KieuDuLieu getThuocTinhN() { return thuocTinhN;
} public void setThuocTinhN(KieuDuLieu thuocTinhN) { this.thuocTinhN = thuocTinhN;
} }
Trang 21Định nghĩa các phương thức get/set
public class PhanSo{
//Khai báo các thuộc tính
private int tuSo; private int mauSo ;
//Phương thức khởi tạo đối tượng
//Các phương thức get/set public int getTuSo() { return tuSo;
}
public void setTuSo(int tuSo) { this.tuSo = tuSo;
} public int getMauSo() { return mauSo;
}
public void setMauSo(int mauSo) {
if (mauSo != 0 ) { this.mauSo = mauSo;
} }
}
Trang 22Định nghĩa các phương thức get/set
public class Main {
public static void main(String[] args) {
PhanSo ps1=new PhanSo();
System.out.println(ps1.getTuSo() + "/" + ps1.getMauSo()); ps1.setTuSo(3);
ps1.setMauSo(4);
System.out.println(ps1.getTuSo() + "/" + ps1.getMauSo()); }
}
Trang 23Định nghĩa các phương thức get/set
public class MangPhanSo {
//Khai báo thuộc tính
private PhanSo[] arr;
//Phương thức khởi tạo mặc định
public PhanSo[] getArr() {
return arr;
}
public void setArr(PhanSo arr) {
this.arr = new PhanSo[arr.length];
for (int i = 0; i < arr.length; i++) { this.arr[i] = new PhanSo(arr[i]); }
}
}
Trang 24Định nghĩa các phương thức get/set
public void set(int index, PhanSo value) {
if (index >= 0 && index < this.arr.length) { //this.arr[index] = new PhanSo(value);
Trang 25Định nghĩa các phương thức get/set
public static void main(String[] args) {
MangPhanSo mps = new MangPhanSo( new PhanSo(1, 3),
new PhanSo(4, 3), new PhanSo(5, 9));
//Sử dụng get
PhanSo[] arr = mps.getArr();
int index = 1; PhanSo ps = mps.get(index);
Trang 26Định nghĩa các phương thức get/set
public class MangSoNguyen {
//Khai báo thuộc tính
private int[] arr;
//Phương thức khởi tạo mặc định
public int[] getArr() {
return arr;
}
public void setArr(int arr) {
this.arr = new int[arr.length];
for (int i = 0; i < arr.length; i++) { this.arr[i] = rr[i];
}
}
}
Trang 27Định nghĩa các phương thức get/set
public void set(int index, int value) {
if (index >= 0 && index < this.arr.length) { this.arr[index]=value;
}
}
public Integer get(int index) {
Integer value = null;
if (index >= 0 && index < this.arr.length) { value = this.arr[index];
}
return value;
}
}
Trang 28Định nghĩa các phương thức get/set
public static void main(String[] args) {
MangSoNguyen mps = new MangSoNguyen( 3, 9, 5); //Sử dụng get
int[] arr = mps.getArr();
}
Trang 29HỎI VÀ ĐÁP
Trang 30NHẬP XUẤT CONSOLE
Trang 31Định nghĩa các phương thức nhập xuất console
public class PhanSo{
//Khai báo các thuộc tính
private int tuSo;
private int mauSo ;
public void nhap(String tieuDe) { System.out.println(tieuDe);
Scanner scan = new Scanner(System.in);
Trang 32Định nghĩa các phương thức nhập xuất console
public class Main {
public static void main(String[] args) {
PhanSo ps1=new PhanSo();
ps1.nhap(“Nhập phân số 1”);
ps1.xuat(“Xuất phân số 1”);
PhanSo ps2=new PhanSo();
ps2.nhap(“Nhập phân số 2”);
ps2.xuat(“Xuất phân số 2”);
}
}
Trang 33Định nghĩa các phương thức nhập xuất console
public class MangPhanSo {
//Khai báo thuộc tính
private PhanSo[] arr;
public void nhap(String tieuDe){
Scanner scan=new Scanner(System.in);
System.out.println(tieuDe);
System.out.print("Số lượng phần tử:");
int n=Integer.parseInt(scan.nextLine());
this.arr=new PhanSo[n];
for(int i=0; i<this.arr.length; i++){
this.arr[i] = new PhanSo();
this.arr[i].nhap("Phân số thứ "+i);
}
}
}
Trang 34Định nghĩa các phương thức nhập xuất console
this.arr[i].xuat("Phân số thứ "+i);
}
}
}
Trang 35Định nghĩa các phương thức nhập xuất console
public static void main(String[] args) {
MangPhanSo mps=new MangPhanSo();
mps.nhap("Nhập mảng phân số");
mps.xuat("Xuất mảng phân số");
}
Trang 36Định nghĩa các phương thức nhập xuất console
public class MangSoNguyen {
//Khai báo thuộc tính
private int [] arr;
public void nhap(String tieuDe){
Scanner scan=new Scanner(System.in);
}
}
Trang 37Định nghĩa các phương thức nhập xuất console
System.out.print("Phân số thứ "+i+ ":"); System.out.println(this.arr[i]);
}
}
}
Trang 38Định nghĩa các phương thức nhập xuất console
public static void main(String[] args) {
MangSoNguyen msn=new MangSoNguyen();
msn.nhap("Nhập mảng số nguyên");
msn.xuat("Xuất mảng số nguyên");
}
Trang 39HỎI VÀ ĐÁP
Trang 40XỬ LÝ NGHIỆP VỤ
Trang 41Định nghĩa các phương thức xử lý nghiệp vụ
public class PhanSo{
//Khai báo các thuộc tính
private int tuSo;
private int mauSo ;
public PhanSo cong(PhanSo ps){
PhanSo kq=new PhanSo();
kq.tuSo=this.tuSo*ps.mauSo+this.mauSo*ps.tuSo; kq.mauSo=this.mauSo*ps.mauSo;
return kq;
}
}
Trang 42Định nghĩa các phương thức xử lý nghiệp vụ
public class Main {
public static void main(String[] args) {
PhanSo ps1=new PhanSo();
ps1.nhap(“Nhập phân số 1”);
ps1.xuat(“Xuất phân số 1”);
PhanSo ps2=new PhanSo();
Trang 43Định nghĩa các phương thức xử lý nghiệp vụ
public class MangPhanSo {
//Khai báo thuộc tính
private PhanSo[] arr;
Trang 44Định nghĩa các phương thức xử lý nghiệp vụ
public static void main(String[] args) {
MangPhanSo mps=new MangPhanSo();
Trang 45Định nghĩa các phương thức xử lý nghiệp vụ
public class MangSoNguyen {
//Khai báo thuộc tính
private int[] arr;
Trang 46Định nghĩa các phương thức xử lý nghiệp vụ
public static void main(String[] args) {
MangSoNguyen msn=new MangSoNguyen();
msn.nhap("Nhập mảng số nguyên");
msn.xuat("Xuất mảng số nguyên");
int s=msn.tong();
System.out.println("Tổng mảng số nguyên: "+ s); }
Trang 47HỎI VÀ ĐÁP
Trang 48OVERLOAD
Trang 49Định nghĩa các phương thức overload
public class PhanSo{
private int tuSo;
private int mauSo ;
public PhanSo cong(PhanSo ps){
PhanSo kq=new PhanSo();
kq.tuSo=this.tuSo*ps.mauSo+this.mauSo*ps.tuSo; kq.mauSo=this.mauSo*ps.mauSo;
return kq;
}
public PhanSo cong(int k){
PhanSo kq=new PhanSo();
Trang 50Định nghĩa các phương thức overload
public class Main {
public static void main(String[] args) {
PhanSo ps1=new PhanSo(2, 3);
PhanSo ps2=new PhanSo(3, 4);
PhanSo kq1=ps1.cong(ps2);
kq1.xuat(“Tổng hai phân số ps1 và ps2”);
PhanSo kq2=ps1.cong(40);
kq2.xuat(“Tổng hai phân số ps1 và 40”); }
}
Trang 51Định nghĩa các phương thức overload
public class MangPhanSo {
private PhanSo[] arr;
Trang 52Định nghĩa các phương thức overload
public static void main(String[] args) {
MangPhanSo mps1=new MangPhanSo(); mps1.nhap("Nhập mảng phân số");
Trang 53Định nghĩa các phương thức overload
public class MangSoNguyen {
private int[] arr;
Trang 54Định nghĩa các phương thức overload
public static void main(String[] args) {
MangSoNguyen msn1=new MangSoNguyen();
Trang 55HỎI VÀ ĐÁP
Trang 56PHƯƠNG THỨC MỨC LỚP
(STATIC)
Trang 57Định nghĩa các phương thức mức lớp (static)
public class PhanSo{
private int tuSo;
private int mauSo ;
public static PhanSo parsePhanSo(String str){
PhanSo kq=new PhanSo();
Trang 58Định nghĩa các phương thức mức lớp (static)
kq1.xuat(“Tổng hai phân số ps1 và ps2”);
PhanSo kq2=ps1.cong(40);
kq2.xuat(“Tổng hai phân số ps1 và 40”); }
}
Trang 59Định nghĩa các phương thức mức lớp (static)
public class MangPhanSo {
private PhanSo[] arr;
return mps;
}
}
Trang 60Định nghĩa các phương thức mức lớp (static)
PhanSo s1=mps1.tong();
s1.xuat("Tổng mảng phân số 1");
MangPhanSo mps2=MangPhanSo.parseMangPhanSo( “4/3;7/6;9/2”);
mps2.nhap("Nhập mảng phân số");
PhanSo s2=mps1.tong(mps2);
s2.xuat("Tổng mảng phân số 1 & 2");
}
Trang 61Định nghĩa các phương thức mức lớp (static)
public class MangSoNguyen {
private int[] arr;
public static MangSoNguyen parseMangSoNguyen(String str){ MangSoNguyen msn=new MangSoNguyen();
String []s=str.split( ";" );
msn.arr=new int[s.length];
for(int i= 0 ; i<s.length; i++){
Trang 62Định nghĩa các phương thức mức lớp (static)
Trang 63HỎI VÀ ĐÁP
Trang 64Tài liệu tham khảo
Nguyễn Hoàng Anh, Tập slide bài giảng và video môn Lập Trình Java, ĐH KHTN, 2010
The Java Language Specification Third Edition (2005)
Trang 65HỎI VÀ ĐÁP