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
Bài Access modifier, static method, static property Module: BOOTCAMP WEB-BACKEND DEVELOPMENT Kiểm tra trước Hỏi trao đổi khó khăn gặp phải “Lớp đối tượng" Tóm tắt lại phần học từ “Lớp đối tượng” Mục tiêu • Sử dụng access modifier • Sử dụng static method • Trình bày chế kế thừa • Triển khai chế kế thừa lớp • Trình bày chế ghi đè phương thức (method overriding) • Biểu diễn mối quan hệ kế thừa ký hiệu • Trình bày ý nghĩa từ khố final • Trình bày khái niệm Polymophism • Trình bày phương thức toString() lớp Object • Trình bày chế ép kiểu (casting) Thảo luận Biến kiểu liệu nguyên thuỷ Biến tham chiếu Value data types • Các biến thuộc kiểu liệu nguyên thuỷ (như int, long, float…) lưu trữ giá trị chúng vùng nhớ cấp • Giá trị biến gán cho biến khác • Ví dụ: • int a = 10;chép giá trị biến a (được lưu vùng nhớ cấp cho a) cho biến b (lưu vào vùng nhớ Thao tác cấp cho b) int b = a; Reference data types • Các biến thuộc kiểu liệu tham chiếu (chẳng hạn Scanner, Person, Customer…) lưu trữ tham chiếu đối tượng vùng nhớ cấp • Có thể gán giá trị tham chiếu biến cho biến khác • Ví dụ: Rectangle rectangleObj1 = new Rectangle(10, 20); Rectangle rectangleObj2 = rectangleObj1; • Thao tác chép địa lưu biến rectangleObj1 sang biến rectangleObj2 • Khơng có ảnh hưởng xảy đối tượng thực tế nhớ Primitive data type: Ví dụ public static void Swap(int first, int second){ int temp = first; first = second; second = temp; } public static void main(String[] args) { Kết quả: int a = 5; int b = 10; a=5 b = 10 Swap(a, b); Console.WriteLine("a = " + a); Console.WriteLine ("b = " + b); } Reference data type: Ví dụ class Person{ public static void Swap(Person first, Person second){ public String name; String temp = first.name; first.name = second.name; public Person(String name){ this.name = name; second.name = temp; } } } public static void main(String[] args) { Person a = new Person("John"); Person b = new Person("Bill"); swap(a, b); Kết quả: Console.WriteLine("a.name = " + a.name); Console.WriteLine("b.name = " + b.name); a.name = Bill b.name = John } Demo Biến kiểu liệu nguyên thuỷ Biến tham chiếu Thảo luận Access modifier Thảo luận Package Namespace • Một namespace trong C# thiết kế để cung cấp cách để giữ tập hợp tên phân biệt riêng rẽ Các tên lớp khai báo namespace không xung đột với tên lớp khai báo namespace khác • Một định nghĩa namespace C# bắt đầu với từ khóa namespace được theo sau tên namespace đó, sau: Tính chất namespace • • • • • Có thể khai báo namespace – namespace namespaceNamespace Khơng thể có lớp có tên namespace System It contains a classes that allows you to perform basic Khi lớp khai báo bên namespace cần phải sử dụng tên namespace muốn truy cập đến lớp Tên gói viết theo quy chuẩn Camel Description operations such as mathematical operation and data conversation System.IO System namespace ví dụ cụ thể thơng dụng net, ngồi nhiều namespace khác hệ thống net framework System.Net It contains a classes to perform Input and Output operations 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 Khai báo package • Cú pháp: • Có thể khai báo multi namespace • Namespace chồng namespace • Sử dụng namespace dùng từ khoá using Từ khoá using • Cần sử dụng từ khố using để sử dụng lớp định nghĩa namespace khác • Ví dụ: using Model; using Model.Customer; public class Customer { namespace Controller; } public class CustomerController { public void Index(){ Customer customer = new Customer(); } } Demo Package Thảo luận Static property Static method Từ khoá static • Từ khóa static trong C# giúp giải vấn đề lãng phí nhớ nói chung • Static thuộc lớp, không thuộc thể lớp Vì khởi tạo đối tượng thì biến static khơng khởi tạo theo đối tượng • Trong C#, static có thể là field, method, constructor, class, properties, operator event Static field and method • Từ khố static sử dụng để khai báo thuộc tính phương thức lớp (khác với thuộc tính phương thức đối tượng) • Các thành phần static trực thuộc lớp, thay trực thuộc đối tượng • Biến static gọi biến lớp (class variable) • Phương thức static gọi phương thức lớp (class method) • Có thể truy xuất thành phần static cách sử dụng lớp đối tượng • Khơng cần khởi tạo đối tượng sử dụng thành phần static Static property • Cú pháp khai báo static property: • Ví dụ: modifier static data_type variable_name; Khai báo biến static: class Application{ Truy xuất biến static: public static String Language = "english"; } Console.WriteLine("Current language: " + Application.Language); Static method • Cú pháp khai báo static method: modifier static data_type method_name(){ • Ví dụ: //body } • Khai báo phương thức static • Gọi phương thức static class Application{ public static String GetVersion(){ return "1.0"; } } Console.WriteLine("Current version: " + Application.GetVersion()); Một số ràng buộc • Phương thức static gọi phương thức static khác • Phương thức static truy xuất biến static • Phương thức static khơng thể sử dụng từ khóa this base Static Class • static class cũng giống lớp khác, nhiên khơng Nghĩa khơng tạo đối tượng từ static class. • Một số điểm Static class • • • • static class chứa thành viên static static class khơng static class không chứa hàm xây dựng gọi sử dụng thành viên static class Demo Thuộc tính static Phương thức static Hướng dẫn Hướng dẫn làm thực hành tập Chuẩn bị tiếp theo: Thừa kế (Inheritance) ... thuỷ Biến tham chiếu Thảo luận Access modifier Access modifier • Access modifier từ khoá sử dụng để quy định mức độ truy cập đến lớp thành phần lớp Độ truy cập (Modifier) private Mô tả Một Assembly là... mã .NET theo MSIL (Microsoft Intermediate language - Một ngôn ngữ trung gian) biên dịch thành mã máy tính (Native code) ("JITted" - Được biên dịch trình biên dịch Just-In-Time) lần protected internal public... khó khăn gặp phải “Lớp đối tượng" Tóm tắt lại phần học từ “Lớp đối tượng” Mục tiêu • Sử dụng access modifier • Sử dụng static method • Trình bày chế kế thừa • Triển khai chế kế thừa lớp • Trình