Tải bản đầy đủ (.pptx) (40 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (463.87 KB, 40 trang )

Click to edit
Master subtitle
CHƯƠNG
2: 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

1


NỘI DUNG
Tạo Lớp
Thêm Field
Thêm Constructor
Thêm Phương thức (method/function)

Tạo đối tượng
Từ khóa ‘static’
Mảng đối tượng
2


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


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

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


Ẩn chi tiết của lớp (Đóng gói), chỉ cung cấp các phương thức
cần thiết để dùng (Giao diện)

Thừa kế (Inheritance)
Tạo lớp mới thừa kế lớp đã có

Đa hình (Polymorphism)
Khả năng tạo ra các lớp dẫn xuất, cài đặt cùng một method
của lớp cơ sở theo những cách khác nhau (tùy từng lớp dẫn
xuất)
4


TẠO LỚP


Tạo lớp
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
Lớp (class) gồm có:
Dữ liệu (dùng biến)
(fields)
Phương thức
(methods)
Cách tạo đối tượng (constructors)

6


Tạo lớp

Cú pháp:
[access modifier] class <ClassName>[:BaseClassName]
{
// Khai báo biến (Fields)
[access modifier] <type> VarName;
// Constructors
[public] ClassName([Parameters])
{}

}

// Phương thức (Methods)
[access modifier] <type> MethodName([Parameters])
{}

7


Tạo lớp
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
Chọn Add Class …
Nhập tên lớp: Book

8


Tạo lớp


9


Tạo lớp

10


Tạo lớp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CreatingClass
{
class Book
{
}
}

11


Thêm instance variable (field)
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
giả, số trang, số từ
using System;
using System.Collections.Generic;

using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CreatingClass
{
class Book
{
private string title;
private string author;
private int pages;
private int wordCount;
}
}

12


Thêm instance variable (field)
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, ngồ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
13



Thêm các constructors
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?

14


Thêm các constructors
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CreatingClass
{
class Book
{
private string title;
private string author;
private int pages;
private int wordCount;


}

}

public Book(string title)
{
this.title = title;
}

15


Thêm các constructors
Giải thích:
public access modifier: Muốn người ngồ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)
• Khơng có kiểu trả về

Nếu khơng viết constructor thì trình biên dịch sẽ
tạo cho chúng ta constructor không tham số
public Book()
{
}
16


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

17


Từ khóa ‘this’
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

18



Từ khóa ‘this’
Name hiding
class Book
{
private string title;
private string author;
private int pages;
private int wordCount;

}

public Book(string title)
{
Console.Write(title);
}

19


Từ khóa ‘this’
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


20


Từ khóa ‘this’
Từ khóa ‘this’
this tham chiếu đến đối tượng hiện tại mà chúng ta
đang ở trong đó
Khi ở trong lớp, có thể truy cập mọi thành viên
(field và method) của lớp thơng qua this
• Ví dụ: this.title, this.MethodName()

Cách dùng this
• 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
21


class Book
{
private string title;
private string author;
private int pages;
private int wordCount;
public Book(string title)
{
this.title = title;
}
public Book(string title, string author)

{
this.title = title;
this.author = author;
}

}

public Book(string title, string author, int pages, int wordCount)
{
this.title = title;
this.author = author;
this.pages = pages;
this.wordCount = wordCount;
}

22


Thêm Methods
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?
Gán số từ cho Book dựa trên nội dung cung cấp, …?

23


Thêm Methods

class Book
{
private string title;
private string author;
private int pages;
private int wordCount;

public string GetTitle()
{
return title;
}
public void SetTittle(string title)
{
this.title = title;
}

}

public void SetWordCoutFromText(string text)
{
wordCount = text.Split(' ').Length;
}

24


Thêm Methods
Giải thích:
Access Modifier của method:
• public: người dùng ở ngồ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)

25


×