66
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

04. Java Programming - Basic OOP

Embed Size (px)

Citation preview

Page 1: 04. Java Programming - Basic OOP

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

Page 2: 04. Java Programming - Basic OOP

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

Page 3: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

KHAI BÁO LỚP

3

Page 4: 04. Java Programming - Basic OOP

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

}

Page 5: 04. Java Programming - Basic OOP

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

}

Page 6: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

KHAI BÁO THUỘC TÍNH

6

Page 7: 04. Java Programming - Basic OOP

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

...

}

Page 8: 04. Java Programming - Basic OOP

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

...

}

Page 9: 04. Java Programming - Basic OOP

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

}

Page 10: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

10

Page 11: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

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

11

Page 12: 04. Java Programming - Basic OOP

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;

}

}

Page 13: 04. Java Programming - Basic OOP

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;

}

}

Page 14: 04. Java Programming - Basic OOP

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);

}

}

Page 15: 04. Java Programming - Basic OOP

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]);

}

}

}

Page 16: 04. Java Programming - Basic OOP

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);

}

}

Page 17: 04. Java Programming - Basic OOP

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];

}

}

}

Page 18: 04. Java Programming - Basic OOP

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);

}

}

Page 19: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

19

Page 20: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

GETTER / SETTER

20

Page 21: 04. Java Programming - Basic OOP

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;

}

}

Page 22: 04. Java Programming - Basic OOP

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;

}

}

}

Page 23: 04. Java Programming - Basic OOP

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());

}

}

Page 24: 04. Java Programming - Basic OOP

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]);

}

}

. . .

}

Page 25: 04. Java Programming - Basic OOP

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;

}

}

Page 26: 04. Java Programming - Basic OOP

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));

}

Page 27: 04. Java Programming - Basic OOP

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];

}

}

. . .

}

Page 28: 04. Java Programming - Basic OOP

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;

}

}

Page 29: 04. Java Programming - Basic OOP

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);

}

Page 30: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

30

Page 31: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

NHẬP XUẤT CONSOLE

31

Page 32: 04. Java Programming - Basic OOP

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);

}

}

Page 33: 04. Java Programming - Basic OOP

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”);

}

}

Page 34: 04. Java Programming - Basic OOP

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);

}

}

. . .

}

Page 35: 04. Java Programming - Basic OOP

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);

}

}

}

Page 36: 04. Java Programming - Basic OOP

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ố");

}

Page 37: 04. Java Programming - Basic OOP

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())

}

}

. . .

}

Page 38: 04. Java Programming - Basic OOP

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]);

}

}

}

Page 39: 04. Java Programming - Basic OOP

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");

}

Page 40: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

40

Page 41: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

XỬ LÝ NGHIỆP VỤ

41

Page 42: 04. Java Programming - Basic OOP

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;

}

. . .

}

Page 43: 04. Java Programming - Basic OOP

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ố”);

}

}

Page 44: 04. Java Programming - Basic OOP

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]);

}

}

. . .

}

Page 45: 04. Java Programming - Basic OOP

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ố");

}

Page 46: 04. Java Programming - Basic OOP

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];

}

}

. . .

}

Page 47: 04. Java Programming - Basic OOP

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);

}

Page 48: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

48

Page 49: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

OVERLOAD

49

Page 50: 04. Java Programming - Basic OOP

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;

}

}

Page 51: 04. Java Programming - Basic OOP

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”);

}

}

Page 52: 04. Java Programming - Basic OOP

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;

}

}

Page 53: 04. Java Programming - Basic OOP

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");

}

Page 54: 04. Java Programming - Basic OOP

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;

}

}

Page 55: 04. Java Programming - Basic OOP

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);

}

Page 56: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

56

Page 57: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

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

57

Page 58: 04. Java Programming - Basic OOP

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;

}

}

Page 59: 04. Java Programming - Basic OOP

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”);

}

}

Page 60: 04. Java Programming - Basic OOP

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;

}

}

Page 61: 04. Java Programming - Basic OOP

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");

}

Page 62: 04. Java Programming - Basic OOP

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;

}

}

Page 63: 04. Java Programming - Basic OOP

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);

}

Page 64: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

64

Page 65: 04. Java Programming - Basic OOP

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)

Page 66: 04. Java Programming - Basic OOP

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2011

HỎI VÀ ĐÁP

66