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

Bài giảng Lập trình hướng đối tượng Chương 2 Trường Đại học Ngoại ngữ Tin học

40 306 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 40
Dung lượng 1,05 MB

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

Nội dung

Bài giảng Lập trình hướng đối tượng Chương 2 Lớp và đối tượng cung cấp cho người học các kiến thức Tạo lớp, tạo đối tượng, từ khóa ‘static’, mảng đối tượng. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Click to edit Master subtitle style

LỚP VÀ ĐỐI TƯỢNG

Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM

CHƯƠNG 2:

Trang 2

Tạo Lớp

Thêm FieldThêm ConstructorThêm Phương thức (method/function)

Tạo đối tượng

Từ khóa ‘ static

Mảng đối tượng

NỘI DUNG

Trang 3

3 NGUYÊN TẮC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Trang 4

Đóng gói (Encapsulation) và Giao diện (Interface)

cần thiết để dùng (Giao diện)

3 nguyên tắc lập trình hướng đối tượng

Trang 5

TẠO LỚP

Trang 6

Lớp (class) dùng để mô hình các đối tượng

thực thành các đối tượng trong chương trình

Trang 7

Cú pháp:

Tạo lớp

[access modifier] class < ClassName >[:BaseClassName]

{

// Khai báo biến (Fields)

[access modifier] <type> VarName;

Trang 8

Ví dụ: Tạo lớp Book để mô hình quyển sách

Trong Visual Studio

Click phải lên tên Project

Nhập tên lớp: BookTạo lớp

Trang 9

Tạo lớp

Trang 10

Tạo lớp

Trang 11

class Book {

}

}

Trang 12

Bước 1: Thêm các biến ( field ) vào lớp

Giả sử lớp Book chứa các thông tin: tựa sách, tác

class Book {

private string title;

private string author;

private int pages;

private int wordCount;

} }

Trang 13

Giải thích:

Các field là các biến cục bộ (local variable)

Các field có thể truy cập (dùng hoặc thay đổi) mọi nơi trong lớp

• Từ các Phương thức trong lớp

• Từ các Constructors

Access Modifier của Field

• private: field được truy cập trong lớp, ngoài lớp không truy cập được

• public: field được truy cập mọi nơi, kể cả ngoài lớp

Thêm instance variable (field)

Trang 14

Bước 2: Cho biết cách tạo đối tượng

Xem xét lại các field: Khi đối tượng tạo ra, field nên

có giá trị gì thì hợp lý?

Ví dụ:

• Khi tạo 1 quyển sách mà không có title được không?

• Khi tạo 1 quyển sách, phần lớn một quyển sách có thông

tin thông thường gì?

• Khi tạo 1 quyển sách, chúng ta muốn cung cấp đầy đủ

thông tin không?

Thêm các constructors

Trang 15

class Book {

private string title;

private string author;

private int pages;

private int wordCount;

public Book(string title) {

this.title = title;

}

} }

Trang 16

Giải thích:

public access modifier: Muốn người ngoài lớp có thể tạo đối tượng Book

Constructor giống method, nhưng có 2 khác biệt:

• Tên constructor giống tên lớp (Book)

Trang 17

Từ khóa ‘this’

namespace CreatingClass {

class Book {

private string title; private string author;

private int pages;

private int wordCount;

public Book(string title ) {

this.title = title ; }

} }

Trang 18

Phạm vi của biến (variable scope)?: Là những

nơi trong chương trình mà biến có thể truy cập

Class scope : Truy cập trong cả lớp

Method scope : Truy cập trong method

Block scope : Truy cập trong khối

Từ khóa ‘this’

Trang 19

Name hiding

Từ khóa ‘this’

class Book {

private string title;

private string author;

private int pages;

private int wordCount;

}

Trang 20

Giải quyết vấn đề Name hiding: Có 3 cách

Đặt tên tham số khác với tên field

Tên field bắt đầu là m_ (member):

• m_title,

• m_author, …

Dùng từ khóa ‘this

• Đặt tên field và tên tham số giống nhau (name hiding xảy ra)

• Dùng từ khóa this khi muốn tham chiếu đến field

Từ khóa ‘this’

Trang 21

• Thông thường không cần dùng this

• Khi name hiding xảy ra, dùng this để truy cập đến field của lớp

Từ khóa ‘this’

Trang 22

class Book

{

private string title;

private string author;

private int pages;

private int wordCount;

public Book (string title)

Trang 23

Bước 3: Hình dung lớp cần cung cấp những chức năng gì (method nào)?

Ví dụ: Người dùng lớp Book có muốn

Truy cập lấy title của Book?

Gán title khác cho Book?

Thêm Methods

Trang 24

Thêm Methods

class Book {

private string title;

private string author;

private int pages;

private int wordCount;

Trang 25

Giải thích:

Access Modifier của method:

• public: người dùng ở ngoài lớp có thể gọi phương thức

• private: Phương thức chỉ được gọi bên trong lớp

Phương thức bắt đầu Get, Set

• Get: Phương thức trả về giá trị

• Set: Phương thức gán giá trị (thường kiểm tra giá trị

trước khi gán)

Thêm Methods

Trang 26

TẠO ĐỐI TƯỢNG

Trang 27

Tạo đối tượng

Console WriteLine(book.GetTitle());

book.SetTittle ( "Mindset: How You Can Fulfil Your Potential" );

Console WriteLine(book.GetTitle());

}

}

Trang 28

TỪ KHÓA ‘STATIC’

Trang 29

Thành viên được đánh dấu static

Thành viên này không thuộc đối tượng (object/instance) Thành viên được shared cho các đối tượng (objects/instances)

Static variable

Biến được đánh dấu static phía trước Biến này shared cho các đối tượng Dùng tên lớp để truy cập biến

Từ khóa ‘static’

class Something {

public static int sharedNum;

}

Trang 30

Static method

Gọi Method không cần tạo đối tượngDùng tên lớp để gọi method

Trong static method, không được truy cập instance variable

Từ khóa ‘static’

class Something {

public static void SharedMethod() {

} }

Trang 31

Static class

Class được đánh dấu static phía trước

Tất cả member đều phải là static

Thường dùng để tạo các method tiện ích

public static int shareNumber;

public static void SharedMethod() {

}

Trang 32

Static constructor

Constructor được đánh dấu static phía trước

Dùng để khởi tạo các biến static

Hàm static constructor được chạy khi lần đầu tiên

dùng lớp

Từ khóa ‘static’

class Something {

public static int sharedNumber;

static Something()

{

sharedNumber = 8;

}

Trang 33

CLASS ACCESS MODIFIER

Trang 34

Lớp (class) có 2 access modifier:

internal: Lớp chỉ được dùng trong 1 project hay 1 assembly

public: Lớp được dùng trong các project hay các assembly

Class access modifier

internal class Something

{

}

public class Something

{ }

class Something

{ }

Trang 35

Cho bài toán đăng ký học phần (DangKyHP) Hãy thiết kế

lớp đối tượng theo yêu cầu sau:

Thông tin đối tượng “học phần” (HocPhan): Mã học

phần, tên học phần, số lượng đăng ký tối đa và số lượng đăng ký hiện tại

lớp, hủy đăng ký một SV và hiển thị thông tin học phần, sao cho:

bằng định mức

sinh viên nào đăng ký

Bài tập

Trang 36

MẢNG ĐỐI TƯỢNG

Trang 37

• Khai báo thuộc tính

ClassName[] arrayName;

arrayName = new ClassName[size];

• size: Kích thước

Các phần tử sẽ mang giá trị null

Mảng đối tượng

Trang 38

• Tạo mới phần tử thứ i trong mảng đối tượng

arrayName[i] = new ClassName();

!!!Số lần khởi tạo đối tượng là số lượng mảng

(dùng vòng lặp)

Mảng đối tượng

Trang 39

Bổ sung vào chương trình đăng ký học phần một lớp quản lý

học phần (MangHocPhan) bao gồm các chức năng:

được người dùng nhập từ bàn phím

trong danh sách học phần có sẵn Mỗi lần đăng ký xong, hỏi lại người dùng có tiếp tục không

nào đó Mỗi lần hủy đăng ký xong, hỏi lại người dùng có tiếp tục không

tiếp tục

Bài tập về nhà

Trang 40

Lớp nên nằm trong một file riêng (C# không bắt buộc)

Cách tạo lớp, các phần trong lớp gọi là member

Ngày đăng: 15/05/2017, 10:22

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