Bài giảng Tổng quan về .Net và C# - Lập trình hướng đối tượng (OOP) với C# - Phan Trọng Tiến

Tóm tắt Bài giảng Tổng quan về .Net và C# - Lập trình hướng đối tượng (OOP) với C# - Phan Trọng Tiến: ...randa()   {      Console.WriteLine("Welcome to Veranda");      Console.WriteLine("How Many Chairs Do you have in your Veranda");      NoofChair = Convert.ToInt32(Console.ReadLine());      Console.WriteLine("I have total " + NoofChair + " Chairs in my Veranda");   }  q  Method với kiểu trả về...iteLine("Enter student's number:"); strNumber = Console.ReadLine(); } public void GetNumber() { Console.WriteLine("Student's number is: {0}", strNumber); } public string StuNumber { //stunumber property set { strNumber = value; } get { return strNumber; } } } ...eOfVisit(); } // derived class to inherit the abstract clas s public class Houseclass : GuestVist { static void Main(string[] args) { Houseclass objHouse = new Houseclass(); objHouse.GuestWelcomeMessage(); } public override void PurposeOfVisit() { Console.WriteLine(...

pdf24 trang | Chia sẻ: havih72 | Lượt xem: 321 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Tổng quan về .Net và C# - Lập trình hướng đối tượng (OOP) với C# - Phan Trọng Tiến, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
thư viện ở đó có 
các component có thể dễ dàng tương thích được và thay đổi 
bởi lập trình viên 
7/5/16 Lập trình hướng đối tượng với C# 5 
Class và Object 
Class 
q  Định nghĩa trừu tượng các 
đặc tính của đối tượng 
q Khách hàng 
q Nhân viên 
q Xe hơi 
q  Bản thiết kế hoặc khuân 
mẫu 
Object 
q  Một bản mẫu của class 
q  “Xe hơi” có một bản mẫu 
được gọi “Xe hơi của 
Peters” 
7/5/16 Lập trình hướng đối tượng với C# 6 
7/5/16	
4	
Class 
q Class giống như một 
bản thiết kế, ví dụ như 
thiết kế của ngôi nhà, 
q Sử dụng class chúng ta 
có thể viết các phương 
thức riêng và khai báo 
các biến 
q Sử dụng object để truy 
cập các phương thức và 
các biến của class 
q Classes và Objects là cơ 
sở của OOP 
7/5/16 Lập trình hướng đối tượng với C# 7 
Các thuật ngữ bạn cần biết 
q Classes 
q Objects 
q Properties 
q Methods 
q Events 
q #1 Inheritance 
q #2 Encapsulation 
q #3 Polymorphism 
q #4 Abstraction 
7/5/16 Lập trình hướng đối tượng với C# 8 
7/5/16	
5	
Các thuật ngữ 
q  Properties (Thuộc tính) 
q Thay đổi các đặc tính của đối tượng 
q Ex: “Màu sắc” của chiếc xe hơi 
q  Methods (Phương thức) 
q Các hành động của một đối tượng 
q Ex: “Xe hơi” có phương thức “Tăng tốc” 
q  Events (Sự kiện) 
q Để thực hiện các tương tác với đối tượng 
q Ex: “Xe hơi” có sự kiện “Mở cửa” 
7/5/16 Lập trình hướng đối tượng với C# 9 
#1 Inheritance 
q “Square” là một 
“Shape” 
7/5/16 Lập trình hướng đối tượng với C# 10 
7/5/16	
6	
#1 Inheritance 
•  “Shape” định 
nghĩa thuộc 
tính chung 
“color” 
•  “Square” 
thừa kế 
thuộc tính 
“color” 
7/5/16 Lập trình hướng đối tượng với C# 11 
#2 Encapsulation 
q Che dấu thông tin 
q Ex: 
q “Shape” che dấu 
được dữ liệu bên 
trong đối tượng 
q Toạ độ điểm thứ nhất 
q Toạ độ điểm thứ hai 
7/5/16 Lập trình hướng đối tượng với C# 12 
7/5/16	
7	
“Square” có một trường bên trong “_slide” 
7/5/16 Lập trình hướng đối tượng với C# 13 
#3 Polymorphism 
q Xuất hiện như các 
đối tượng khác 
q Được sử dụng như 
các đối tượng 
khác 
7/5/16 Lập trình hướng đối tượng với C# 14 
7/5/16	
8	
#3 Polymorphism 
7/5/16 Lập trình hướng đối tượng với C# 15 
#4 Abstraction 
q  Người dùng không 
cần hiểu chi tiết về 
công nghệ bên 
trong (ví dụ các bộ 
phận của xe hơi) 
q  Chỉ “hiển thị” các 
tính năng cần thiết 
của đối tượng 
q  Miêu tả tính năng 
chỉ liên quan về đối 
tượng (Object) gọi 
là tính trừu tượng 
7/5/16 Lập trình hướng đối tượng với C# 16 
7/5/16	
9	
Không có instance từ lớp “Shape” 
•  Không sử dụng 
toán tử new để 
khởi tạo từ đối 
tượng Shape 
7/5/16 Lập trình hướng đối tượng với C# 17 
Bài tập 
q Nhận diện các 
thành phần trong 
đối tượng của mô 
hình bên phải: ví 
dụ thuộc tính, 
phương thức, thừa 
kế, tính đa hình  
7/5/16 Lập trình hướng đối tượng với C# 18 
7/5/16	
10	
Triển khai OOP trong C# 
q  Class 
q  Object 
q  Variable 
q  Method hoặc Functions 
q  Access Modifiers 
q  Encapsulation 
q  Abstraction 
q  Inheritance 
q  Polymorphism 
q  Abstract Class/Method 
q  Virtual Class/Method 
q  Sealed Class/Method 
q  Static Class/Method 
q  Interface 
7/5/16 Lập trình hướng đối tượng với C# 19 
Class và Object 
q  Class nên bắt đầu với từ khoá “Class” và tiếp theo là tên của 
Class 
q  Để truy xuất vào các phương thức và các biến của class, chúng 
ta sử dụng object 
ShanuHouseClass objHouseOwner = new ShanuHouseClass(); 
class ShanuHouseClass 
{ 
} 
7/5/16 Lập trình hướng đối tượng với C# 20 
7/5/16	
11	
Variable 
q  Các biến được sử dụng để lưu trữ các giá trị 
q  Các biến có thể là local hoặc global 
q  Cú pháp: 
 Access-Modifier Data-Type Variable-Name 
q  Mặc định access modifier là private, cũng có thể là 
public 
int noOfTV = 0;  
public String yourTVName;  
private Boolean doYouHaveTV = true;  
class ShanuHouseClass  
{  
    int noOfTV = 2;  
    public String yourTVName = "SAMSUNG";  
    static void Main(string[] args)  
    {  
        ShanuHouseClass objHouseOwner = new ShanuHouseClass(); 
        Console.WriteLine("You Have total " + objHouseOwner.noOfTV + " no of TV :");  
        Console.WriteLine("Your TV Name is :" + objHouseOwner.yourTVName);  
    }  
}  
7/5/16 Lập trình hướng đối tượng với C# 21 
Method hoặc Function 
q  Là một nhóm các câu lệnh code 
class ShanuHouseClass
{
 int noOfTV = 2;
 public String yourTVName = "SAMSUNG";
 public void MyFirstMethod()
 {
 Console.WriteLine("You Have total " + noOfTV + "no of TV :");
 Console.WriteLine("Your TV Name is :" + yourTVName);
 Console.ReadLine();
 }
 static void Main(string[] args)
 {
 ShanuHouseClass objHouseOwner = new ShanuHouseClass();
 objHouseOwner.MyFirstMethod();
 }
} 
7/5/16 Lập trình hướng đối tượng với C# 22 
7/5/16	
12	
Method hoặc Function 
q  Cấu trúc của Fucntion: 
Access-Modifiers Return-Type Method-Name (Parameter-List) 
q Access-Modifiers 
q Return-Type: kiểu giá trị trả về như string, int, v.v hoặc kiểu “void” nếu 
không trả về giá trị 
q Method-Name: tên của method 
q Parameter-List: danh sách các tham số hoặc đối số truyền vào function 
7/5/16 Lập trình hướng đối tượng với C# 23 
Method hoặc Function 
q  Method với kiểu void 
public void Veranda()  
{  
   Console.WriteLine("Welcome to Veranda");  
   Console.WriteLine("How Many Chairs Do you have in your Veranda");  
   NoofChair = Convert.ToInt32(Console.ReadLine());  
   Console.WriteLine("I have total " + NoofChair + " Chairs in my Veranda");  
}  
q  Method với kiểu trả về 
public string TVNAME()  
{  
   Console.WriteLine("Enter Your TV Brand NAME");  
   YOURTVName = Console.ReadLine();  
   return YOURTVName;  
}  
q  Method với Parameter-List 
public void BedRoom(String MemberName,String Color)  
 {  
     Console.WriteLine(MemberName + " Like " + Color + "Color");  
 }  
7/5/16 Lập trình hướng đối tượng với C# 24 
7/5/16	
13	
Kiểu ref và out trong danh parameter-list 
q  ref và out thường được đặt các đối số dạng tham chiếu trong 
Method thay vì dạng Value trong C# 
q  out không cần phải khởi gán giá trị trước khi gọi hàm 
q  ref nên khởi gán giá trị như các biến thông thường, 
//Methods 
public static void MethodRef(ref int a){ 
} 
public static void MethodOut(out int a){ 
} 
//Calling 
MethodRef(ref b); 
MethodOut(out b); 
7/5/16 Lập trình hướng đối tượng với C# 25 
Ví dụ ref và out 
class Program 
 { 
 static void Main(string[] args) 
 { 
 int num = 8; 
 CalcSquare(num); 
 Console.WriteLine("Truoc 
khi goi ref: {0}", num); 
 RefSquare(ref num); 
 Console.WriteLine("Sau khi 
goi ref: {0}", num); 
 OutSquare(out num); 
 Console.WriteLine("Sau khi 
goi out: {0}", num); 
 Console.ReadLine(); 
 } 
} 
 static void CalcSquare(int inum) 
 { 
 inum = inum * inum; 
 } 
 static void RefSquare(ref int inum) 
 { 
 inum = inum * inum; 
 } 
static void OutSquare(out int inum) 
 { 
 inum = 3; 
 inum = inum*inum; 
 } 
7/5/16 Lập trình hướng đối tượng với C# 26 
7/5/16	
14	
Access Modifiers 
q Được dùng để giới hạn khả năng truy cập 
của các variable, method và class 
q private: có mức độ bảo vệ cao nhất 
q public: không giới hạn truy cập 
q internal: giới hạn truy cập trong cùng một 
project 
q protected: truy cập được trong class chính 
và các class dẫn xuất (thừa kế) 
q protected internal: giới hạn truy cập trong 
project hoặc lớp dẫn xuất 
7/5/16 Lập trình hướng đối tượng với C# 27 
Access Modifier 
public class SampleProtectedInternalClass 
{ 
 protected internal String myProtectedInternal = 
"Iam Protected Internal Variable"; 
 public void ProtectedInternalMethod() 
 { 
Console.WriteLine("Protected Internal Variable Example :" + 
myProtectedInternal); 
 } 
} 
public class DerivedClass : SampleProtectedInternalClass 
{ 
 public void DerivedProtectedInternal() 
 { 
Console.WriteLine("Derived Protected Internal Variable Exam
ple :" + myProtectedInternal); 
 } 
} 
class ShanuHouseClass 
{ 
 int noOfTV = 2; 
 public String yourTVName = "SAMSUNG"; 
 public void MyFirstMethod() 
 { 
 Console.WriteLine("You Have total " + noOfTV + 
"no of TV :"); 
 Console.WriteLine("Your TV Name is :" + yourTVName); 
 } 
 static void Main(string[] args) 
 { 
 ShanuHouseClass objHouseOwner = new ShanuHouseClass(); 
 objHouseOwner.MyFirstMethod(); 
 SampleProtectedInternalClass intObj = new 
SampleProtectedInternalClass(); 
 intObj.ProtectedInternalMethod(); 
 DerivedClass proIntObj = new DerivedClass(); 
 proIntObj.DerivedprotectedInternal(); 
 Console.ReadLine(); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 28 
7/5/16	
15	
Constructor và Properties 
q Constructor 
q Là một Method đặc biệt của class 
q Sử dụng để khởi tạo đối tượng của class khi 
class được khởi tạo 
q Tên của Constructor trùng với tên của class 
q Trong constructor có thể có các tham số 
q Properties 
q Là các thành viên của class cho phép truy cập 
dữ liệu bên trong của class 
7/5/16 Lập trình hướng đối tượng với C# 29 
Ví dụ Constructor và Properties 
class Student 
{ 
 private string strNumber; 
 private string strName; 
 private string strSex; 
 public Student() 
 { //Constructor 
 strNumber = ""; 
 strName = ""; 
 strSex = ""; 
 } 
 //Constructor with parameters 
 public Student(string id, string name, string sex) 
 { 
 strNumber = id; 
 strName = name; 
 strSex = sex; 
 } 
 public void SetNumber() 
 { 
 Console.WriteLine("Enter student's 
number:"); 
 strNumber = Console.ReadLine(); 
 } 
 public void GetNumber() 
 { 
 Console.WriteLine("Student's number is:
{0}", strNumber); 
 } 
 public string StuNumber 
 { //stunumber property 
 set { strNumber = value; } 
 get { return strNumber; } 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 30 
7/5/16	
16	
Encapsulation 
q  Ẩn các thành viên hay các biến từ bên ngoài class 
public class HouseSecurityClass 
{ 
 public int noofSecurity; 
 public String SecurityName = String.Empty; 
} 
public class HouseClass 
{ 
 private int noofLockerinHosue = 2; 
 public string OwnerName = String.Empty; 
} 
q  Class “HouseSecurityClass” có 2 biến public, vì vậy “HouseClass” 
có thể truy cập cả hai. 
q  Clas “HouseClass” có 1 biến pubic và 1 biến private, biến private 
không thể truy cập ngoài class 
7/5/16 Lập trình hướng đối tượng với C# 31 
Abstraction 
q Hiển thị và chia sẻ những thông tin thông dụng cho 
người dùng 
public class HouseServerntClass 
{ 
 private int SaftyLoackerKeyNo = 10001; 
 public String roomCleanInstructions = "Clean All rooms"; 
 private void SaftyNos() 
 { 
 Console.WriteLine("My SaftyLoackerKeyNo is" + SaftyLoackerKeyNo); 
 } 
 public void RoomCleanInstruction() 
 { 
 Console.WriteLine(roomCleanInstructions); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 32 
7/5/16	
17	
Inheritance 
q  Được sử dụng để tái sử dụng lại code 
q  Có hai loại: 
q Single level Inheritance: một lớp cơ sở và một lớp dẫn xuất 
q Multi level Inheritance: nhiều hơn một lớp dẫn xuất 
q  .Net không hỗ trợ Multiple Inheritance, Interface là giải pháp 
cho Multiple Inheritance 
7/5/16 Lập trình hướng đối tượng với C# 33 
Inheritance 
public class BaseClass 
{ 
 private void PrivateMethod() 
 { 
 Console.WriteLine("private Method"); 
 } 
 public void PublicMethod() 
 { 
 Console.WriteLine("This Method Shared"); 
 } 
} 
public class DerivedClass1 : BaseClass 
{ 
 public void DerivedClass1() 
 { 
 Console.WriteLine("Derived Class 1"); 
 } 
} 
public class DerivedClass2 : DerivedClass1 
{ 
 static void Main(string[] args) 
 { 
 DerivedClass2 obj = new DerivedClass2(); 
 obj.PublicMethod(); 
 obj.DerivedClass1(); 
 //obj.privateMethod(); //Sẽ bị lỗi 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 34 
7/5/16	
18	
Polymorphism 
q  Có nhiều hơn một khuân dạng, ví dụ cùng tên một phương 
thức nhưng có các tham biến khác nhau 
q  Có 2 loại polymorphism: 
q Method Overloading: cùng tên method nhưng khác đối số 
q Method Overriding: cùng method và các đối số và kiểu dữ liệu nhưng 
method được sử dụng lại ở lớp dẫn xuất. Có thể được sử dụng trong 
Abstract Method, Virtual Method và Sealed Method 
q  Có 2 kiểu thực thi: 
q Compile Time Polymorphism 
q Run time Polymorphism 
7/5/16 Lập trình hướng đối tượng với C# 35 
Ví dụ Method Overloading 
class HouseOwnerClass 
{ 
 //Function with parameter 
 public void BedRoom(String nameandColor) 
 { 
 Console.WriteLine(nameandColor); 
 } 
 // Same Function Name with Different Paramenter 
 public void BedRoom(String MemberName, String Color) 
 { 
 Console.WriteLine(MemberName + " Like " + Color + "Color"); 
 } 
 static void Main(string[] args) 
 { 
 HouseOwnerClass objHouseOwner = new HouseOwnerClass(); 
 objHouseOwner.BedRoom("My Name is Shanu I like Lavender color"); 
 objHouseOwner.BedRoom("SHANU", "Lavender"); 
 Console.ReadLine(); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 36 
7/5/16	
19	
Abstract Class/Method 
q  Abstract Class: là lớp có từ khoá “abstract” 
abstract class GuestVist 
{ 
} 
q  Lớp trừu tượng là một lớp cha (super) của tất các các class. 
q  Không thể tạo object từ một lớp trừu tượng 
q  Lớp trừu tượng có thể có cả hai Abstract Method và Method 
thông thường. 
q  Abstract method không có thân chương trình (khối lệnh) 
7/5/16 Lập trình hướng đối tượng với C# 37 
Ví dụ Abstract Class/Method 
abstract class GuestVist 
{ 
 public void GuestWelcomeMessage() 
 { 
Console.WriteLine("Welcome to our Abst
ractHome"); 
 } 
 public void GuestName() 
 { 
Console.WriteLine("Guest name is: Abstr
act"); 
 } 
 public abstract void PurposeOfVisit(); 
} 
// derived class to inherit the abstract clas
s 
public class Houseclass : GuestVist 
{ 
 static void Main(string[] args) 
 { 
 Houseclass objHouse = new 
Houseclass(); 
 objHouse.GuestWelcomeMessage(); 
 } 
 public override void PurposeOfVisit() 
 { 
Console.WriteLine("Abstract just came fo
r a Meetup and spend some time "); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 38 
7/5/16	
20	
Virtual Class/Method 
q  Virtual method là rất hữu ích 
q  So sánh giữa Abstract method và Virtual method: 
q Giống nhau: đều sử dụng từ khoá override 
q Khác nhau: 
q Abstract method: chỉ khai báo trong Abstract class 
q Abstract method không có thân chương trình, còn Virtual method có thân 
chương trình hoàn chỉnh. 
7/5/16 Lập trình hướng đối tượng với C# 39 
Virtual Class/Method 
abstract class GuestVist 
{ 
 public void Guestwelcomemessage() 
 { 
Console.WriteLine("Welcome to our AbstractHo
me"); 
 } 
 public void GuestName() 
 { 
Console.WriteLine("Guest name is: Abstract"); 
 } 
 public abstract void 
purposeofVisit(); // Abstract Method 
 public virtual void 
NoofGuestwillvisit() // Virtual Method 
 { 
Console.WriteLine("Total 5 Guest will Visit your 
Home"); 
 } 
} 
 class AbstractHouseClass : GuestVist 
{ 
 public override void 
purposeofVisit() // Abstract method Override 
 { 
Console.WriteLine("Abstract just for a Meetup and spend som
e time "); 
 } 
 public override void 
NoofGuestwillvisit() // Virtual method override 
 { 
 Console.WriteLine("Total 20 Guest Visited our Home"); 
 } 
 static void Main(string[] args) 
 { 
 AbstractHouseClass objHouse = new 
AbstractHouseClass(); 
 objHouse.Guestwelcomemessage(); 
 objHouse.purposeofVisit(); 
 objHouse.NoofGuestwillvisit(); 
 Console.ReadLine(); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 40 
7/5/16	
21	
Selead Class/Method 
q  Selead class: không thể được thừa kế bởi các class khác 
q Sử dụng từ khoá selead 
q  Selead Method: các phương thức không thể viết chồng 
(overriden) trong lớp dẫn xuất. 
q Virtual method có thể viết chồng trong lớp dẫn xuất nhưng Virtual Sealed 
Method thì không 
7/5/16 Lập trình hướng đối tượng với C# 41 
Ví dụ Sealed Class/Method 
 //Base Class with Sealed Method 
public class OwnerOfficialroomwithrestriction 
{ 
 public virtual void message() 
 { 
Console.WriteLine("Every one belongs to this hou
se can access my items in my room except my sea
led Item"); 
 } 
 public virtual sealed void 
myAccountsLoocker() 
 { 
Console.WriteLine("This Loocker can not be inhe
rited by other classes"); 
 } 
} 
 //
Deraived method which inherits Selaed Method cl
ass 
class HouseSealedClass : OwnerOfficialroomwith
restriction 
{ 
 public override void message() 
 { 
 Console.WriteLine("overrided in the derived 
class"); 
 } 
 public override void myAccountsLoocker() 
 { 
 Console.WriteLine("The sealed method Over
rides"); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 42 
7/5/16	
22	
Static Class/Method 
q  Cả hai Static và Sealed không thể thừa kế 
q  Sự khác nhau giữu Static Class và Selead Class: 
q Có thể tạo được một object (instance) từ Selead Class, còn Static Class thì 
không thể. 
q Trong Static Class, chỉ có Static members là được phép, không thể viết 
các method không là static 
q  Vấn đề gì sảy ra khi: 
q Thừa kế một lớp từ một Static class? 
q Khai báo một non-Static method trong một Static class? 
q Khi chúng ta tạo object từ một Static class? 
q Có thể gọi metho Static trong class mà không cần tạo Object được không? 
q Có thể tạo một Static Method trong một non-Static Class? 
7/5/16 Lập trình hướng đối tượng với C# 43 
Ví dụ Static Class/Method 
 public class OwnerofficialRoom 
{ 
 public static void AllMyPersonalItems() 
 { 
Console.WriteLine("No need to create object for 
me just use my class name to access me :)"); 
 } 
 public void non_staticMethod() 
 { 
Console.WriteLine("You need to create an Object 
to Access Me :("); 
 } 
} 
class StaticmethodClass 
{ 
 static void Main(string[] args) 
 { 
 // for statci method no need to create object j
ust call directly using the classname. 
 OwnerofficialRoom.AllMyPersonalItems(); 
 // for non-
static method need to create object to access the m
ethod. 
 OwnerofficialRoom obj = new 
OwnerofficialRoom(); 
 obj.non_staticMethod(); 
 Console.ReadLine(); 
 } 
} 
7/5/16 Lập trình hướng đối tượng với C# 44 
7/5/16	
23	
Interface 
q  Giống như một Abstract class nhưng chỉ khai báo các method 
q  Các method của lớp Interface phải được thi hành ở trong class 
mà nó kế thừa 
q  Sự khác nhau giữu Abstract class và Interface: 
q Abstract class có cả hai Abstract method và Non-Abstract method 
q Tất cả các method trong Interface mặc định là abstract (không có Non-
Abstract) 
q Tất cả các Method khai báo trong Interface nên được viết chồng trong lớp 
dẫn xuất 
q  Có thể khai báo một non-abstract method có phần thân chương 
trình hay không? 
7/5/16 Lập trình hướng đối tượng với C# 45 
Ví dụ Interface 
interface GuestInterface 
{ 
 void GuestWelcomeMessage(); 
 void NoofGuestes(); 
} 
interface FriendsandRelationsInterface 
{ 
 void friendwelcomemessage(); 
 void FriendName(); 
} 
class HouseOwnerClass : GuestInterface, FriendsandRelationsInterface 
{ 
 public void GuestWelcomeMessage() 
 { 
 Console.WriteLine("All guests are well come to our home"); 
 } 
 public void NoofGuestes() 
 { 
 Console.WriteLine("Total 15 Guestes has visited"); 
 } 
 public void friendwelcomemessage() 
 { 
 Console.WriteLine("Welcome to our Home"); 
 } 
 public void FriendName() 
 { 
 Console.WriteLine("Friend name is: Afraz"); 
 } 
 static void Main(string[] args) 
 { 
 HouseOwnerClass obj = new HouseOwnerClass(); 
 obj.GuestWelcomeMessage(); 
 obj.NoofGuestes(); 
 obj.friendwelcomemessage(); 
 obj.FriendName(); 
 Console.ReadLine(); 
 } 
} 7/5/16 Lập trình hướng đối tượng với C# 46 
7/5/16	
24	
Namespaces 
q  Cho phép phân tách các lớp mà 
có cùng tên 
q  Một namespace có thể có nhiều 
class 
q  Truy xuất đầy đủ các đối tượng 
Lập trình hướng đối tượng với C# 
47 
Namespace CS415 
Class A 
Class B 
Class C 
Namespace CS340 
Class A 
Class B 
Class C 
CS415.A 
CS340.A 
7/5/16 

File đính kèm:

  • pdfbai_giang_tong_quan_ve_net_va_c_lap_trinh_huong_doi_tuong_oo.pdf