1. Trang chủ
  2. » Cao đẳng - Đại học

SLIDE MÔN JAVA CHƯƠNG 3 LỚP TRONG JAVA

55 387 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 421 KB

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

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

Các khái niệm

Trang 5

Phương thức (method) cho phép 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í dụ: các hoạt động chung của một lớp hình chữ nhật là tính chu vi và diện tích.

Các khái niệm

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ú pháp:

class Name{

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

Khai báo lớp

Trang 8

Khai báo thuộc tính

Trang 9

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

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

public double findArea(){

return radius * radius * 3.14159;

}

}

Khai báo lớp

Trang 10

Khai báo

• Constructor (phương thức tạo): là một phương thức đặc biệt, cần gọi để xây dựng đối tượng

 Không có giá trị trả về

 Phải cùng tên với tên lớp

 Có thể có nhiều phương thức khởi tạo

Trang 11

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

double getRadius(){return radius;}

double findArea(){

return radius * radius * 3.14159;

}

Khai báo lớp

Trang 12

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

Khai báo đối tượng

Trang 13

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

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

Trang 14

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

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

Trang 15

Ví dụ

public class Main {

public static void main(String args[]) {

Circle myCircle=new Circle(2,1);

double area = myCircle.findArea();

System.out.println("Area is " + area);

}

}

Trang 16

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

this(0,newColor);

} }

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

Trang 17

Thuộc tính static

• Ví dụ: static double radius=1.0;

Phương thức static

• Ví dụ:

static double findArea(){

return radius * radius * 3.14159;

Trang 18

Tất cả các đối tượng cùng 1 lớp chia sẻ giá trị 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

• Bên trong phương thức, không thể dùng từ khóa this để truy cập

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

Trang 19

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 20

public class Main {

public static void main(String args[]) {

Outer outer = new Outer();

Các lớp lồng nhau

Trang 21

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 23

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

• Lớp mới gọi là lớp con, lớp dẫn xuất (subclass)

• Lớp cũ gọi là lớp cha, lớp cơ sở (superclass)

Cú pháp: class subClass extends superClass{

Thừa kế

Trang 24

Ví dụ

Thừa kế

Shape String color;

Shape(color);

double calculateArea();

String getColor();

Circle double radius;

Rectangle double length;

double width;

Trang 25

public class Main{

public static void main(String args[]) {

C c = new C();

}

}

Thừa kế

Trang 26

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

• Cú pháp: super(ds tham số)

• Ví dụ

public Circle(String myColor, double myRadius){

Trang 27

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 28

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

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

Trang 30

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ụ

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

Trang 31

class OverloadDemo {

void test() {

System.out.println("No parameters"); } void test(int a) {

System.out.println("a: " + a); } void test(int a, int b) {

System.out.println("a and b: " + a + " "

+ b); } double test(double a) {

System.out.println("double a: " + a); return a * a; }

}

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

Trang 32

Có đầy đủ thuộc tính , phương thức lớp cơ sở.

Có thể:

• Thêm các thuộc tính mới

• Thêm các phương thức mới

• Nạp chồng (override) các phương thức của lớp cơ sở

Thừa kế - Xây dựng lớp con

Trang 33

Các lớp con tạo ra theo kiểu của lớp cơ sở.

Các lớp con có Nạp chồng (override) phương thức lớp cơ sở Nội dung phương thức Nạp chồng của các lớp con là khác nhau.

Chương trình gọi (nạp chồng) của các đối tượng kiểu lớp cơ sở Mỗi đối tượng sẽ thực thi phương thức theo cách riêng của

mình.

Đa hình- đa dạng lớp con

Trang 34

… public double calculateArea()  { return 0; }

}

public class Circle extends Shape{

… public double calculateArea()  { return PI * radius * radius; } }

public class Rectangle extends Shape{

… public double calculateArea() 

Đa hình (Polymorphism)

Trang 35

public class Main {

public static void main(String args[]) {

Shape f = new Shape();

Rectangle r = new Rectangle(9, 5);

Circle t = new Circle(10);

Đa hình (Polymorphism)

Trang 36

Lớp Object

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

Trang 37

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)

Phương thức toString() xuất đối tượng.

Toán tử instanceof: kiểm tra 1 đối tượng có thuộc lớp hay không

• Cú pháp: objectName instanceof className

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

Lớp Object

Trang 38

Circle myCircle = (Circle)obj;

if (obj instanceof Circle) {

Circle myCircle = (Circle)obj;

}

Lớp Object

Trang 39

Lớp Abstract

Lớp abstract: để hình thành dần lớp hoàn chỉnh.

Cú pháp:

• Đượ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 40

Lớp Abstract

Phương thức abstract (nếu có): dùng để chỉ định 1 phương thức cần được cài đặt ở lớp con.

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

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

Trang 41

abstract class MyAbstractClass {

abstract void callme();

public class Main {

public static void main(String args[]) {

MyAbstractClass a = new MyAbstractClass();

B b = new B();

b.callme();

b.callmetoo(); }

Trang 42

Là đơn vị tổ chức mô hình thiết kế dự án chứa các lớp và các

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 đầy đủ:

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

• Sử dụng câu lệnh import để nạp lớp trong gói

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

Sử dụng Gói (Package)

Trang 45

Code trong chương trình:

• Khai báo gói

• Các câu lệnh import

• Khai báo các thành phần

package MyPack;

import java.util.Date;

public class Main {

public static void main(String args[]) {

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

}

}

Gói (Package)

Trang 46

Tác dụng: tăng tính bảo mật

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

Trang 48

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

Phạm vi truy cập

Trang 49

Phạm vi truy cập-Ví dụ

o Modifier của Alpha

Trang 50

Tác dụng: quy định khung tối thiểu để tạo các lớp thừa kế.

Khai báo

[modifier] interface name {

return-type method-name1(parameter-list); type varname1 = value;

//

return-type method-nameN(parameter-list); type 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.

Chú ý ghi tiền tố truy cập.

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

c.callback(42);

}

}

Interface

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: 23/06/2017, 20:17

TỪ KHÓA LIÊN QUAN

w