04. java programming - basic oop

Post on 03-Mar-2015

62 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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: nhanh@fit.hcmus.edu.vn

ĐH KHTN, 2011

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

KHAI BÁO LỚP

3

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

KHAI BÁO THUỘC TÍNH

6

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

10

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

PHƯƠNG THỨC KHỞI TẠO ĐỐI TƯỢNG

11

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

19

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

GETTER / SETTER

20

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

30

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

NHẬP XUẤT CONSOLE

31

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

40

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

XỬ LÝ NGHIỆP VỤ

41

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

48

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

OVERLOAD

49

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

56

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

PHƯƠNG THỨC MỨC LỚP (STATIC)

57

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – Đ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 – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

64

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – Đ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)

Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011

HỎI VÀ ĐÁP

66

top related