Các biến thuộc kiểu dữ liệu tham chiếu (chẳng hạn như Scanner, Person, Customer…) lưu trữ tham chiếu của đối tượng ở trong vùng nhớ được cấpCó thể gán giá trị tham chiếu của một biến cho một biến khác
Trang 1Bài 3 Access modifier, static method,
static property
Module: BOOTCAMP WEB-BACKEND DEVELOPMENT
Trang 2Kiểm tra bài trước
Hỏi và trao đổi về các khó khăn gặp phải trong bài “Lớp và đối tượng" Tóm tắt lại các phần đã học từ bài “Lớp và đối tượng”
Trang 3Mục tiêu
Trang 4Thảo luận
Biến kiểu dữ liệu nguyên thuỷ Biến tham chiếu
Trang 5Value data types
Trang 6Reference data types
chiếu của đối tượng ở trong vùng nhớ được cấp
• Ví dụ:
Rectangle rectangleObj1 = new Rectangle( 10 , 20 );
Rectangle rectangleObj2 = rectangleObj1;
• Thao tác này sao chép địa chỉ được lưu trong biến rectangleObj1 sang biến
rectangleObj2
• Không có ảnh hưởng nào xảy ra đối với đối tượng thực tế trong bộ nhớ
Trang 7Primitive data type: Ví dụ
public static void Swap(int first, int second){
int temp = first;
Trang 8Reference data type: Ví dụ
class Person{
public String name;
public Person(String name){
this.name = name;
Console.WriteLine("a.name = " + a.name);
Console.WriteLine("b.name = " + b.name);
}
Kết quả:
a.name = Bill
b.name = John
Trang 9Biến kiểu dữ liệu nguyên thuỷ Biến tham chiếu
Trang 10Thảo luận
Access modifier
Trang 11Access modifier
lớp
Trang 12Độ truy cập
(Modifier) Mô tả
private
Truy cập bị hạn chế trong phạm vi của
định nghĩa Class Đây là loại phạm vi
truy cập mặc định nếu không được chính
thức chỉ định
protected
Truy cập bị giới hạn trong phạm vi định
nghĩa của Class và bất kỳ các class con
thừa kế từ class này.
internal Truy cập bị giới hạn trong phạm vi
Assembly của dự án hiện tại.
protected
internal
Truy cập bị giới hạn trong phạm vi
Assembly hiện tại và trong class định
nghĩa hoặc các class con.
public Không có bất kỳ giới hạn nào khi truy cập
vào các thành viên công khai (public)
Một Assembly là chính là sản phẩm đã biên dịch của mã của bạn, thường là một DLL,
nhưng EXE cũng có thể coi là một assembly Nó
là đơn vị nhỏ nhất của việc triển khai cho bất kỳ
dự án .NET nào.
Assembly một cách cụ thể chứa
mã .NET theo MSIL (Microsoft Intermediate language - Một ngôn ngữ trung gian) sẽ được
biên dịch thành mã máy tính (Native code)
("JITted" - Được biên dịch bởi các trình biên dịch Just-In-Time) trong lần đầu tiên nó được
thực thi trên máy tính, Đó là mã đã được biên
dịch cũng sẽ được lưu trữ trong Assembly và tái
sử dụng cho các lần gọi tiếp theo.
Trang 13Tổng hợp các mức truy cập
Assembly Tron
Ngoà
i class định nghĩa , ngoài class con
Tron
g class con
Ngoà
i class con
Trang 14Access modifier
Trang 15Thảo luận
Package
Trang 16riêng rẽ nhau Các tên lớp được khai báo trong một namespace không xung đột với cùng tên đó của lớp được khai báo trong namespace khác
namespace đó, như sau:
Trang 17Tính chất của namespace
• Có thể khai báo các namespace con – namespace trong namespace
• Không thể có 2 lớp có cùng tên trong cùng 1 namespace
• Khi một lớp được khai báo bên trong một namespace thì cần phải
sử dụng tên của namespace nếu muốn truy cập đến lớp đó
• Tên của gói được viết theo quy chuẩn Camel
• System namespace là ví dụ cụ thể thông dụng nhất của net, ngoài
ra còn nhiều namespace khác của hệ thống net framework
System It contains a classes that
allows you to perform basic operations such as mathematical operation and data conversation.
System.IO It contains a classes to
perform Input and Output operations.
System.Net It contains a classes that are
useful to with network protocols.
System.Data It contains a classes that are
useful to work with ADO.Net architecture.
System.Collection It contains a classes that are
useful to implement the collection of objects such as lists.
System.Drawing It contains a classes that are
useful to implement GUI functionalities.
System.Web It contains a classes that are
helpful to perform HTTP requests.
Trang 18Khai báo package
Trang 20Package
Trang 21Thảo luận
Static property
Static method
Trang 22Từ khoá static
biến static không được khởi tạo theo đối tượng
• Trong C#, static có thể là field, method, constructor, class, properties, operator và event
Trang 23Static field and method
phương thức của đối tượng)
• Biến static còn được gọi là biến của lớp (class variable)
Trang 24Static property
• Ví dụ:
Khai báo biến static:
Truy xuất biến static:class Application{
public static String Language = "english"; }
modifier static data_type variable_name;
Console.WriteLine("Current language: " + Application.Language);
Trang 25Static method
• Ví dụ:
• Khai báo phương thức static
• Gọi phương thức staticclass Application{
public static String GetVersion(){
return "1.0"; }
}
modifier static data_type method_name(){
//body }
Console.WriteLine("Current version: " + Application.GetVersion());
Trang 26Một số ràng buộc
Trang 27Static Class
không có thể hiện Nghĩa là chúng ta không tạo được đối tượng từ static class.
• static class chỉ chứa thành viên là static
• static class không có thể hiện
• static class không chứa hàm xây dựng
• chúng ta vẫn có thể gọi và sử dụng thành viên của static class
Trang 28Thuộc tính static Phương thức static
Trang 29Hướng dẫn
Hướng dẫn làm bài thực hành và bài tập
Chuẩn bị bài tiếp theo: Thừa kế (Inheritance)