Upload
nguyen-cong-binh
View
62
Download
6
Embed Size (px)
Citation preview
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
VỚI JAVA
LẬP TRÌNH ỨNG DỤNG JAVA
Nguyễn Hoàng Anh
Email: [email protected]
ĐH KHTN, 2011
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
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
Đị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)
2
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Khai báo lớp
4
1
2
3
4
5
6
7
8
package tenpackage;
public class TenLop {
//Khai báo các thuộc tính
//Khai báo các phương thức
}
1
2
3
4
5
6
7
8
package bt1;
public class PhanSo{
//Khai báo các thuộc tính
//Khai báo các phương thức
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Khai báo lớp
5
1
2
3
4
5
6
7
8
package tenpackage;
public class TenLop {
//Khai báo các thuộc tính
//Khai báo các phương thức
}
1
2
3
4
5
6
7
8
package bt1;
public class PhanSo{
//Khai báo các thuộc tính
//Khai báo các phương thức
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Khai báo thuộc tính
7
1
2
3
4
5
6
7
8
9
10
package tenpackage;
public class TenLop {
//Khai báo các thuộc tính
private KieuDuLieu tenThuocTinh1;
...
private KieuDuLieu tenThuocTinhN1;
//Khai báo các phương thức
...
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Khai báo thuộc tính
8
1
2
3
4
5
6
7
8
9
package bt1;
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
...
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Khai báo thuộc tính
9
1
2
3
4
5
6
7
8
package bt1;
public class MangSoNguyen{
//Khai báo các thuộc tính
private int [] arr;
//Khai báo các phương thức
}
1
2
3
4
5
6
7
8
package bt1;
public class MangPhanSo{
//Khai báo các thuộc tính
private PhanSo [] arr;
//Khai báo các phương thức
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package tenpackage;
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;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package bt1;
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;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
14
1
2
3
4
5
6
7
8
9
10
11
package bt1;
public class Main {
public static void main(String[] args) {
PhanSo ps1=new PhanSo();
PhanSo ps2=new PhanSo(2,3);
PhanSo ps3=new PhanSo(ps2);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package bt1;
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]);
}
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package bt1;
public class Main {
public static void main(String[] args) {
//Sử dụng phương thức khởi tạo mặc định
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);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package bt1;
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];
}
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa phương thức khởi tạo đối tượng
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package bt1;
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 = {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);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package tenpackage;
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
...
//Các phương thức get/set
public KieuDuLieu getThuocTinh1() {
return thuocTinh1;
}
public void setThuocTinh1(KieuDuLieu thuocTinh1) {
this.thuocTinh1 = thuocTinh1;
} . . .
public KieuDuLieu getThuocTinhN() {
return thuocTinhN;
}
public void setThuocTinhN(KieuDuLieu thuocTinhN) {
this.thuocTinhN = thuocTinhN;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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;
}
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package bt1;
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());
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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]);
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
. . .
public void set(int index, PhanSo value) {
if (index >= 0 && index < this.arr.length) {
//this.arr[index] = new PhanSo(value);
this.arr[index]=value;
}
}
public PhanSo get(int index) {
PhanSo ps = null;
if (index >= 0 && index < this.arr.length) {
//ps=new PhanSo(this.arr[index]);
ps = this.arr[index];
}
return ps;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
//Sử dụng set
PhanSo[] arr2 = new PhanSo[2];
arr2[0] = new PhanSo(2, 4);
arr2[1] = new PhanSo(3, 7);
mps.setArr(arr2);
index=0;
mps.set(index, new PhanSo(8, 5));
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package bt1;
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];
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
. . .
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;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức get/set
29
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
MangSoNguyen mps = new MangSoNguyen( 3, 9, 5);
//Sử dụng get
int[] arr = mps.getArr();
int index = 1;
Integer value = mps.get(index);
//Sử dụng set
int[] arr2 = {9,6,8};
mps.setArr(arr2);
index=0;
mps.set(index, 7);
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
System.out.print("Tử số:");
this.tuSo = Integer.parseInt(scan.nextLine());
System.out.print("Mẫu số:");
this.mauSo = Integer.parseInt(scan.nextLine());
}
public void xuat(String tieuDe){
System.out.println(tieuDe);
String str=String.format("%d/%d",this.tuSo, this.mauSo);
System.out.println(str);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package bt1;
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”);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package bt1;
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);
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
35
1
2
3
4
5
6
7
8
9
10
. . .
public void xuat(String tieuDe){
System.out.println(tieuDe);
int n = this.arr.length;
System.out.println("Số lượng phần tử: " + n);
for(int i=0; i<this.arr.length; i++){
this.arr[i].xuat("Phân số thứ "+i);
}
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
36
1
2
3
4
5
6
7
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ố");
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package bt1;
public class MangSoNguyen {
//Khai báo thuộc tính
private int [] 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 int[n];
for(int i=0; i<this.arr.length; i++){
System.out.print("Phần tử thứ "+ i + ":");
this.arr[i]=Integer.parseInt(scan.nextLine())
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
38
1
2
3
4
5
6
7
8
9
10
11
. . .
public void xuat(String tieuDe){
System.out.println(tieuDe);
int n = this.arr.length;
System.out.println("Số lượng phần tử: " + n);
for(int i=0; i<this.arr.length; i++){
System.out.print("Phân số thứ "+i+ ":");
System.out.println(this.arr[i]);
}
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức nhập xuất console
39
1
2
3
4
5
6
7
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");
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
42
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package bt1;
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”);
PhanSo kq=ps1.cong(ps2);
kq.xuat(“Tổng hai phân số”);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
44
1
2
3
4
5
6
7
8
9
10
11
12
13
package bt1;
public class MangPhanSo {
//Khai báo thuộc tính
private PhanSo[] arr;
. . .
public PhanSo tong(){
PhanSo s=this.arr[0];
for(int i=1; i<this.arr.length; i++){
s=s.cong(this.arr[i]);
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
45
1
2
3
4
5
6
7
8
9
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ố");
PhanSo s=mps.tong();
s.xuat("Tổng mảng phân số");
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
46
1
2
3
4
5
6
7
8
9
10
11
12
13
package bt1;
public class MangSoNguyen {
//Khai báo thuộc tính
private int[] arr;
. . .
public int tong(){
int s=0;
for(int i=0; i<this.arr.length; i++){
s=s + this.arr[i];
}
}
. . .
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức xử lý nghiệp vụ
47
1
2
3
4
5
6
7
8
9
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);
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
kq.tuSo=this.tuSo+this.mauSo*k;
kq.mauSo=this.mauSo;
return kq;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package bt1;
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”);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package bt1;
public class MangPhanSo {
private PhanSo[] arr;
. . .
public PhanSo tong(){
PhanSo s=this.arr[0];
for(int i=1; i<this.arr.length; i++){
s=s.cong(this.arr[i]);
}
}
public PhanSo tong(MangPhanSo mps){
PhanSo s1=this.tong();
PhanSo s2=mps.tong();
PhanSo kq=s1.tong(s2);
return kq;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
53
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
MangPhanSo mps1=new MangPhanSo();
mps1.nhap("Nhập mảng phân số");
PhanSo s1=mps1.tong();
s1.xuat("Tổng mảng phân số 1");
MangPhanSo mps2=new MangPhanSo();
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");
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package bt1;
public class MangSoNguyen {
private int[] arr;
. . .
public PhanSo tong(){
int s=0;
for(int i=0; i<this.arr.length; i++){
s=s + this.arr[i];
}
}
public int tong(MangSoNguyen msn){
int s1=this.tong();
int s2=msn.tong();
int kq=s1 + s2;
return kq;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức overload
55
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
MangSoNguyen msn1=new MangSoNguyen();
msn1.nhap("Nhập mảng số nguyên 1");
int s1=msn1.tong();
System.out.println("Tổng mảng số nguyên 1" + s1);
MangSoNguyen msn2=new MangSoNguyen();
msn2.nhap("Nhập mảng số nguyên 2");
int s2=msn1.tong(msn2);
System.out.println("Tổng mảng số nguyên 1&2"+ s2);
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
58
1
2
3
4
5
6
7
8
9
10
11
12
13
public class PhanSo{
private int tuSo;
private int mauSo;
. . .
public static PhanSo parsePhanSo(String str){
PhanSo kq=new PhanSo();
String [] s=str.split("/");
kq.tuSo=Integer.parseInt(s[0]);
kq.mauSo=Integer.parseInt(s[1]);
return kq;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package bt1;
public class Main {
public static void main(String[] args) {
PhanSo ps1=PhanSo.parsePhanSo(“2/3”);
PhanSo ps2=PhanSo.parsePhanSo(“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”);
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package bt1;
public class MangPhanSo {
private PhanSo[] arr;
. . .
public static MangPhanSo parseMangPhanSo(String str){
MangPhanSo mps=new MangPhanSo();
String []s=str.split(";");
mps.arr=new PhanSo[s.length];
for(int i=0; i<s.length; i++){
mps.arr[i]=PhanSo.parsePhanSo(s[i].trim());
}
return mps;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
61
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
MangPhanSo mps1=MangPhanSo.parseMangPhanSo(
“1/2;2/3;3/4”);
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");
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
62
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package bt1;
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++){
msn.arr[i]=Integer.parseInt(s[i].trim());
}
return msn;
}
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Định nghĩa các phương thức mức lớp (static)
63
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
MangSoNguyen msn1=MangPhanSo.parseMangSoNguyen(
“2;3;4”);
int s1=msn1.tong();
System.out.println("Tổng mảng số nguyên 1:" + s1);
MangSoNguyen msn2=MangPhanSo.parseMangSoNguyen(
“4;7;9”);
int s2=msn1.tong(msn2);
System.out.println("Tổng mảng số nguyên 1&2:"+s2);
}
Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011
Tà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)