1. Trang chủ
  2. » Thể loại khác

Lớp (Class) trong C | 85 bài học lập trình C hay nhất PDF

12 106 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 12
Dung lượng 394,82 KB

Nội dung

Lớp (Class) trong C | 85 bài học lập trình C hay nhất PDF tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài t...

http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Lớp (Class) C# Khi bạn định nghĩa lớp (class) C#, bạn định nghĩa blueprint cho kiểu liệu Điều không thực định nghĩa liệu nào, định nghĩa ý nghĩa tên lớp Tức là, đối tượng lớp gồm gì, hoạt động thực đối tượng Các đối tượng instance (sự thể hiện) lớp Các phương thức biến mà cấu tạo nên lớp gọi thành viên lớp Định nghĩa Class C# Một định nghĩa lớp C# bắt đầu với từ khóa class theo sau tên lớp; phần thân lớp bao quanh dấu ngoặc ôm Dưới form chung định nghĩa lớp C#: class class_name { // member variables variable1; variable2; variableN; // member methods method1(parameter_list) { // method body } method2(parameter_list) { // method body } methodN(parameter_list) { // method body } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Ghi chú:  Access specifier xác định qui tắc truy cập cho thành viên lớp Nếu khơng đề cập, Access Specifier mặc định cho kiểu lớp làinternal Chế độ truy cập mặc định cho thành viên private  Data type xác định kiểu biến, trả kiểu liệu mà phương thức trả  Để truy cập thành viên lớp, bạn sử dụng toán tử dot (.)  Toán tử dot (.) liên kết với tên đối tượng với tên thành viên Ví dụ sau minh họa khái niệm lớp C# đề cập trên: using System; namespace BoxApplication { class Box { public double length; // Length of a box public double breadth; // Breadth of a box public double height; // Height of a box } class Boxtester { static void Main(string[] args) { Box Box1 = new Box(); // Declare Box1 of type Box Box Box2 = new Box(); // Declare Box2 of type Box double volume = 0.0; // Store the volume of a box here // box specification Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com // box specification Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // volume of box volume = Box1.height * Box1.length * Box1.breadth; Console.WriteLine("Volume of Box1 : {0}", volume); // volume of box volume = Box2.height * Box2.length * Box2.breadth; Console.WriteLine("Volume of Box2 : {0}", volume); Console.ReadKey(); } } } Khi code biên dịch thực thi, cho kết quả: Volume of Box1 : 210 Volume of Box2 : 1560 Hàm thành viên tính đóng gói C# Một hàm thành viên C# lớp hàm mà có định nghĩa nguyên mẫu (prototype) bên định nghĩa lớp tương tự biến khác Nó hoạt động đối tượng lớp mà thành viên có truy cập tới tất thành viên lớp cho đối tượng Các biến thành viên thuộc tính đối tượng (từ bối cảnh thiết kế) chúng giữ private để triển khai tính đóng gói Những biến truy cập sử dụng hàm thành viên public Ví dụ sau minh họa cách sử dụng khái niệm để thiết lập lấy giá trị thành viên khác lớp: using System; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com namespace BoxApplication { class Box { private double length; // Length of a box private double breadth; // Breadth of a box private double height; // Height of a box public void setLength( double len ) { length = len; } public void setBreadth( double bre ) { breadth = bre; } public void setHeight( double hei ) { height = hei; } public double getVolume() { return length * breadth * height; } } class Boxtester { static void Main(string[] args) { Box Box1 = new Box(); // Declare Box1 of type Box Box Box2 = new Box(); double volume; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com // Declare Box2 of type Box // box specification Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0); // box specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); // volume of box volume = Box1.getVolume(); Console.WriteLine("Volume of Box1 : {0}" ,volume); // volume of box volume = Box2.getVolume(); Console.WriteLine("Volume of Box2 : {0}", volume); Console.ReadKey(); } } } Khi code biên dịch thực thi, cho kết quả: Volume of Box1 : 210 Volume of Box2 : 1560 Constructor C# Một constructor Class, hàm thành viên đặc biệt lớp, thực thi tạo đối tượng lớp http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Một constructor có tên giống tên lớp khơng có kiểu trả Dưới ví dụ minh họa khái niệm constructor C#: using System; namespace LineApplication { class Line { private double length; // Length of a line public Line() { Console.WriteLine("Object is being created"); } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) { Line line = new Line(); // set line length line.setLength(6.0); Console.WriteLine("Length of line : {0}", line.getLength()); Console.ReadKey(); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com } } Khi code biên dịch thực thi, cho kết quả: Object is being created Length of line : Một constructor mặc định C# khơng có tham số nào, bạn cần, constructor có tham số Những constructor gọi constructor tham số hóa Kỹ thuật giúp bạn gán giá trị khởi đầu cho đối tượng thời điểm tạo nó, ví dụ sau: using System; namespace LineApplication { class Line { private double length; // Length of a line public Line(double len) //Parameterized constructor { Console.WriteLine("Object is being created, length = {0}", len); length = len; } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com { Line line = new Line(10.0); Console.WriteLine("Length of line : {0}", line.getLength()); // set line length line.setLength(6.0); Console.WriteLine("Length of line : {0}", line.getLength()); Console.ReadKey(); } } } Khi code biên dịch thực thi, cho kết quả: Object is being created, length = 10 Length of line : 10 Length of line : Destructor C# Một destructor C#, hàm thành viên đặc biệt lớp, thực thi đối tượng lớp khởi phạm vi Một destructor có tên giống tên lớp với ngã (~) trước có thể: khơng trả giá trị không nhận tham số Destructor C# hữu ích để giải phóng tài ngun nhớ trước khỏi chương trình Destructor khơng thể bị kế thừa nạp chồng Ví dụ sau minh họa khái niệm destructor C#: using System; namespace LineApplication { class Line { private double length; public Line() // Length of a line // constructor { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Console.WriteLine("Object is being created"); } ~Line() //destructor { Console.WriteLine("Object is being deleted"); } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) { Line line = new Line(); // set line length line.setLength(6.0); Console.WriteLine("Length of line : {0}", line.getLength()); } } } Khi code biên dịch thực thi, cho kết quả: Object is being created Length of line : Object is being deleted http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Thành viên Static Class C# Chúng ta định nghĩa thành viên lớp static sử dụng từ khóa static C# Khi khai báo thành viên lớp static, nghĩa là, có đối tượng lớp tạo, có thành viên static Từ khóa static ngụ ý có instance (sự thể hiện) thành viên tồn cho lớp Các biến static sử dụng để định nghĩa số (constant) giá trị chúng thu nhận việc gọi lớp mà khơng cần tạo instance Các biến static khởi tạo bên ngồi hàm thành viên định nghĩa lớp Bạn khởi tạo biến static bên định nghĩa lớp Ví dụ sau minh họa cách sử dụng biến static C#: using System; namespace StaticVarApplication { class StaticVar { public static int num; public void count() { num++; } public int getNum() { return num; } } class StaticTester { static void Main(string[] args) { StaticVar s1 = new StaticVar(); StaticVar s2 = new StaticVar(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page 10 http://vietjack.com/csharp/index.jsp Copyright © vietjack.com s1.count(); s1.count(); s1.count(); s2.count(); s2.count(); s2.count(); Console.WriteLine("Variable num for s1: {0}", s1.getNum()); Console.WriteLine("Variable num for s2: {0}", s2.getNum()); Console.ReadKey(); } } } Khi code biên dịch thực thi, cho kết quả: Variable num for s1: Variable num for s2: Bạn khai báo hàm thành viên static Những hàm truy cập biến static Hàm static tồn trước đối tượng tạo Ví dụ sau minh họa cách sử dụng hàm static C#: using System; namespace StaticVarApplication { class StaticVar { public static int num; public void count() { num++; } public static int getNum() { return num; http://vietjack.com/ Trang chia sẻ học online miễn phí Page 11 http://vietjack.com/csharp/index.jsp Copyright © vietjack.com } } class StaticTester { static void Main(string[] args) { StaticVar s = new StaticVar(); s.count(); s.count(); s.count(); Console.WriteLine("Variable num: {0}", StaticVar.getNum()); Console.ReadKey(); } } } Khi code biên dịch thực thi, cho kết quả: Variable num: http://vietjack.com/ Trang chia sẻ học online miễn phí Page 12 ...http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Ghi chú:  Access specifier x c định qui t c truy c p cho thành viên lớp Nếu khơng đề c p, Access Specifier m c định cho kiểu lớp làinternal Chế... http://vietjack.com/ Trang chia sẻ h c online miễn phí Page 10 http://vietjack.com/csharp/index.jsp Copyright © vietjack.com s1.count(); s1.count(); s1.count(); s2.count(); s2.count(); s2.count(); Console.WriteLine("Variable... sẻ h c online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Một constructor c tên giống tên lớp khơng c kiểu trả Dưới ví dụ minh họa khái niệm constructor C# :

Ngày đăng: 02/12/2017, 20:10

TỪ KHÓA LIÊN QUAN