1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng lập trình java cơ bản chương 3 gv võ hoàng phương dung chương 3 lớp trong java

55 519 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 301,48 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Thuộc tính fields là dữ liệu trình bày các đặc điểm về một đối tượng • Mọi đối tượng của một lớp phải có cùng các thuộc tính nhưng giá trị của các thuộc tính thì có thể khác nhau • Một

Trang 3

 Đối tượng (Object)

Trang 4

Thuộc tính (fields) là dữ liệu trình bày các đặc

điểm về một đối tượng

• Mọi đối tượng của một lớp phải có cùng các thuộc tính nhưng giá trị của các thuộc tính thì có thể khác nhau

• Một thuộc tính của đối tượng có thể nhận các giá trị khác nhau tại các thời điểm khác nhau

Ví dụ: đối tượng hình chữ nhật có các thuộc tính

chiều dài, chiều rộng

Các khái niệm

Trang 5

Phương thức (method) là cách đáp ứng chức

năng tác động lên dữ liệu của đối tượng

• Các phương thức xác định cách thức hoạt động của một đối tượng và được thực thi khi đối tượng

Trang 6

 Lớp (Class)

• Là tập hợp các đối tượng cùng loại

• Là khuôn mẫu tạo ra đối tượng

Trang 7

 Các tính chất của lập trình hướng đối tượng

Trang 8

 Tính đóng gói

• Đóng gói là tiến trình che giấu việc thực thi chi

tiết một đối tượng

• Giới hạn quyền truy cập đến các thành phần của

đối tượng

• Cơ chế cho việc che dấu thông tin

Các khái niệm

Trang 9

 Thừa kế (Inheritance)

• Xây dựng lớp mới (subclass) từ lớp cũ (superclass)

• Lớp mới có tất cả thuộc tính và phương thức của

lớp cũ và thêm vào một số đặc tính riêng khác

• Các lớp con có thể định nghĩa lại các phương thức được thừa kế để xử lý các thuộc tính riêng của

chúng

• Ví dụ: Lớp xe đạp leo núi và lớp xe đạp đua là

những lớp con của lớp xe đạp Lớp xe đạp được gọi là lớp cha

9/25

Các khái niệm

Trang 10

 Tính đa hình

• Phương thức cùng tên có thể được thực hiện khác nhau đối với các đối tượng, các lớp khác nhau

• Ví dụ: hai lớp Hình chữ nhật và hình tròn cùng cócác phương thức tính chu vi, diện tích Nhưng cách tính chu vi của đối tượng hình chữ nhật vàhình tròn lại khác nhau

Các khái niệm

Trang 11

 Cú pháp:

class name{

// Khai báo thuộc tính // Khai báo phương thức }

11/25

Khai báo lớp

Trang 12

 Khai báo thuộc tính

Trang 13

 Khai báo phương thức :

• Cú pháp: <returned value><name> (<parameters>){

public double findArea(){

return radius * radius * 3.14159;

}

}

13/25

Khai báo lớp

Trang 14

 Khai báo phương thức khởi tạo

• Constructor (phương thức tạo): là một dạng đặc

biệt của phương thức, được gọi để xây dựng đối tượng

Trang 15

void setRadius(double rad){radius=rad;}

double getRadius(){return radius;}

Trang 16

Khai báo & tạo đối tượng

 Khai báo đối tượng

Trang 17

 Khai báo & tạo đối tượng

• Cú pháp: className objName=new className();

• Ví dụ:

Circle myCircle=new Circle();

Circle myCircle=new Circle(5);

17/25

Khai báo & tạo đối tượng

Trang 18

 Tham chiếu dữ liệu của đối tượng:

Khai báo & tạo đối tượng

Trang 19

Ví dụ

public class Main {

public static void main(String args[]) {

Circle myCircle=new Circle(2,1);

doule area = myCircle.findArea() System.out.println("Area is " + area);

}

}

19/25

Trang 20

 Là 1 tham chiếu đến đối tượng hiện tại

this(0,newColor);

} }

Mở rộng – Từ khóa this

Trang 21

Thuộc tính static

Phương thức static

• Ví dụ:

static double findArea(){

return radius * radius * 3.14159;

Trang 22

 Tất cả các đối tượng cùng 1 lớp chia sẻ các

biến static trong lớp đó

 Phương thức static

• Chỉ có thể gọi các phương thức static khác

• Chỉ truy cập thuộc tính static

• Không thể dùng từ khóa this để truy cập

Mở rộng – Từ khóa static

Trang 23

 Java cho phép định nghĩa 1 lớp bên trong 1 lớp khác

}

Các lớp lồng nhau

Trang 24

public class Main {

public static void main(String args[]) {

Outer outer = new Outer();

outer.test();

Các lớp lồng nhau

Trang 25

 Lớp bên ngoài không thể truy cập dữ liệu của

lớp bên trong trực tiếp

Trang 26

 Tạo lớp mới từ lớp đã tồn tại

• Lớp mới gọi là lớp con (subclass)

• Lớp cũ gọi là lớp cha (superclass)

Cú pháp: class subClass extends superClass{

}

Thừa kế

Trang 27

 Ví dụ

27/25

Thừa kế

Shape String color;

Shape(color);

double calculateArea();

String getColor();

Circle double radius;

Trang 28

public class Main{

public static void main(String args[]) {

C c = new C();

}

Thừa kế

Trang 29

 Gọi phương thức khởi tạo của lớp cha

Trang 30

 Truy cập 1 thành phần của lớp cha

• Cú pháp: super.tên

• Ví dụ

class Base { int i; }

class SubClass extends Base {

Trang 31

 Xảy ra khi 1 phương thức trong lớp con có

cùng tên và kiểu trả về như 1 phương thức

trong lớp cha

 Phương thức trong lớp cha sẽ bị che khuất

 Để truy cập phương thức trong lớp cha, sử

dụng từ khóa super

31/25

Thừa kế - Chồng phương thức

Trang 32

public double calculateArea() {

return PI * radius * radius;

}

}

Thừa kế - Chồng phương thức

Trang 33

 So sánh với Quá tải phương thức (Overloading)

• Xảy ra khi các phương thức có cùng tên nhưng khác nhau về tham số

• Có thể khác nhau về kiểu trả về của phương thức

 Ví dụ

33/25

Thừa kế - Chồng phương thức

Trang 35

public class Shape {

… public double calculateArea()

{ return 0; } }

public class Circle{

… public double calculateArea()

{ return PI * radius * radius; } }

public class Rectangle{

… public double calculateArea()

{ return width*height; }

Đa hình (Polymorphism)

Trang 36

public class Main {

public static void main(String args[]) {

Shape f = new Shape();

Rectangle r = new Rectangle(9, 5);

Circle t = new Circle(10);

Shape figref;

figref = r;

System.out.println("Area:"+figref.calculateArea()); figref = t;

System.out.println("Area:"+figref.calculateArea()); figref = f;

System.out.println("Area:"+figref.calculateArea()); }

}

Đa hình (Polymorphism)

Trang 37

Lớp Object

 Tất cả các lớp trong Java đều từ lớp Object

37/25

Trang 38

Phương thức equals: so sánh 2 biến cùng tham

chiếu 1 đối tượng hay không

• Cú pháp: ObjectName1.equals(ObjectName2)

• Ví dụ: boolean b = object1.equals(object2)

Toán tử instanceof: kiểm tra 1 đối tượng có

thuộc lớp hay không

• Cú pháp: objectNam instanceof className

• Ví dụ: boolean b = object1 instanceof Rectangle

Lớp Object

Trang 39

Circle myCircle = (Circle)obj;

if (obj instanceof Circle) {

Circle myCircle = (Circle)obj;

}

39/25

Lớp Object

Trang 40

Lớp Abstract

Phương thức abstract: dùng để chỉ định 1

phương thức cần được viết chồng ở lớp con

• Cú pháp: abstract type name(parameter-list);

• Ví dụ: abstract void callme();

Lớp abstract:

• Được khai báo vơi từ khóa abstract

• Có thể có hoặc không chứa phương thức abstract

• Không thể tạo đối tượng

• Cú pháp: abstract class MyAbstractClass{

abstract type name(parameter-list);

Trang 41

abstract class MyAbstractClass {

abstract void callme();

public class Main {

public static void main(String args[]) {

B b = new B();

b.callme();

b.callmetoo(); } }

41/25

Trang 43

 Khai báo gói

Trang 44

 Truy cập các thành phần thuộc gói

• Sử dụng tên:

graphics.Circle myCircle = new graphics.Circle();

• Sử dụng câu lệnh import để nạp thành phần

import graphics.Rectangle;

Rectangle myRectangle = new Rectangle();

• Sử dụng import để nạp toàn bộ gói

import graphics.*;

Circle myCircle = new Circle();

Rectangle myRectangle = new Rectangle();

Gói (Package)

Trang 45

public class Main {

public static void main(String args[]) {

System.out.println(new Date());

}

}

45/25

Gói (Package)

Trang 46

 Cách khai báo

[modifier] class ten_lop{

[modifier] dataType ten_thuoctinh;

[modifier] returnedValue ten_phuongthuc{

… }

}

Phạm vi truy cập

Trang 47

 Java có 4 phạm vi truy cập cho các thành phần

• public: được truy cập bởi tất cả các thành phần

khác

• private: được truy cập chỉ bởi các thành phần cùng

lớp

• protected: được truy cập bởi chỉ các lớp con

• default (không khai báo): được truy cập bởi các

thành phần cùng gói

47/25

Trang 48

 Vị trí & phạm vi truy cập

Phạm vi truy cập

Trang 49

Phạm vi truy cập

o Modifier của Alpha

Trang 50

 Khai báo

[modifier] interface name {

return-type method-name1(parameter-list);

return-type method-name2(parameter-list);

type final-varname1 = value;

type final-varname2 = value;

//

return-type method-nameN(parameter-list);

type final-varnameN = value; }

 Các biến ngầm định là: public, static, final

Interface

Trang 52

 Tạo class từ interface

[modifier] class classname

[extends superclass]

[implements interface [,interface ]] {

// class-body

}

 Trong Java, không cho phép thừa kế từ nhiều

superclass nhưng có thể thừa kế từ nhiều

interface

Interface

Trang 53

 Ví dụ

interface MyInterface {

void callback(int param); }

class Client implements MyInterface{

System.out.println(“Call:" + p); } }

public class Main {

public static void main(String args[]) {

MyInterface c = new Client();

Trang 54

 Nếu 1 class thực thi interface không đầy đủ thì lớp đó phải là lớp abstract

Trang 55

 Interface có thể được thừa kế

Ngày đăng: 17/10/2014, 07:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm