Video Khi xây dựng lớp đối tượng, công việc cần làm là: - Lớp.VN

Mẹo về Khi xây dựng lớp đối tượng, việc làm cần làm là: Chi Tiết

Họ và tên đang tìm kiếm từ khóa Khi xây dựng lớp đối tượng, việc làm cần làm là: được Update vào lúc : 2022-04-03 12:31:06 . Với phương châm chia sẻ Thủ Thuật Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.

Lập trình hướng đối tượng là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật toán, xây dựng chương trình.

Nội dung chính
    Khai báo lớp, sử dụng lớpPhương thức khởi tạo - ConstructorQuá tải (Overloading) phương thứcTìm hiểu tính đóng gói lập trình hướng đối tượngThuộc tính trong lớpVideo liên quan

1. MỞ ĐẦU: - Lập trình hướng đối tượng là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật toán, xây dựng chương trình. - Có sự tương xứng Một trong những đối tượng trong chương trình và những đối tượng trên thực tế và được bố trí theo hướng tiếp cận đa dạng. - Đối tượng phần mềm thông thường là sự việc phối hợp giữa mã lệnh và tài liệu trong một thể thống nhất.

2. CÁC ĐẶC TÍNH CƠ BẢN CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG:

    Tính đóng gói: kĩ năng truy suất vào những thành thần một đối tượng trong khi vẫn đảm bảo che giấu những đặc tính riêng tư trong đối tượng được gói gọi là tính đóng gói.
·       
 
    Tính thừa kế: Tính thừa kế được cho phép những đối tượng  chia sẻ hay mở rộng những thuộc tính hoặc phương thứcc mà không phải tiến hành định nghĩa lại.
 ·       
    Tính trừu tượng: Một đặc tả trừu tượng cho ta biết một đối tượng hoàn toàn có thể  làm gì mà không bận tâm vào việc nó làm ra làm sao.
·       
    Tính đa hình: Tính đa hình thể hiện khi với cùng một phương thức nhưng hoàn toàn có thể có cách ứng xử rất khác nhau ở những lớp cùng giao diện.  
3.      ƯU ĐIỂM CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG:
    Khả năng tái sử dụng cao. Ổn định và dễ bảo dưỡng. Chi phí giảm dần. Tăng năng suất lập trình. Tăng chất lượng phần mềm. Tăng tính dễ hiểu của phần mềm. Vòng đời của phần mềm tăng.
4.      LỚP
    Lớp là khái niệm dùng để mô tả một nhóm những đối tượng có những thuộc tính, hành vi và những quan hệ thông thường tương tự nhau. Thuật ngữ lớp c1 thể hiểu là "lớp những đối tượng (class)" là khuôn mẫu để sinh ra đối tượng, mỗi đối tượng được coi như thể một thể hiện của lớp với những giá trị thuộc tính cũng như phương pháp hoạt động và sinh hoạt giải trí đặc trưng. Sơ đồ mô tả lớp: sơ đồ lớp mô tả những đặc điểm khái quát nhất về lớp gồm có: Tên lớp, những thuộc tính, và những phương thức.

5. ĐỐI TƯỢNG:
    Đối tượng là thể hiện (instance) của một lớp. Mỗi đối tượng có:
      Định danh Thuộc tính (tài liệu) Hành vi (phương thức)

 
Thuộc tính và hành vi của đối tượng:

Thuộc tính là những đặc điểm đặc trưng của đối tượng, thể hiện thông qua những giá trị rõ ràng.
Hành vi là những phương pháp mà qua đó đối tượng thể hiện sự hoạt động và sinh hoạt giải trí hay hiệu suất cao của chúng.

Quản lý bộ nhớ khi sử dụng đối tượng:

Stack: khi gọi phương thức, bộ nhớ được yêu cầu cho những tham số và những biến cục bộ. Khi phương thức kết thúc, vùng nhớ được giải phóng.
Heap: khi tạo một đối tượng sử dụng từ khóa new và lời gọi phương thức khởi tạo. Nó sẽ được giải phóng một cách tự động khi kết thúc.


6. TÀI LIỆU THAM KHẢO [1] Trần Đan Thư, Lập trình hướng đối tượng, Nhà xuất bản khoa học & kỹ thuật, 2010, 370. [2] Lê Thị Mỹ Hạnh, Lập trình hướng đối tượng, 2002, 165. [3] Internet. Ths. HOÀNG CÔNG TRÌNH Khoa Công Nghệ Thông Tin

Trường Cao Đẳng Công Nghệ Thủ Đức

Phần này khởi đầu nghiên cứu và phân tích, triển khai những vấn đề kỹ thuật liên quan đến Lập trình hướng đối tượng.

Lập trình hướng đối tượng (Object-oriented programming - OOP), là kỹ thuật lập trình mà điều cốt yếu cần trừu tượng hóa những vấn đề thành những đối tượng (đối tượng có tài liệu và những ứng xử). Kỹ thuật OOP có 4 tính chất

    Tính trừu tượng (abstraction) mô tả một cách tổng quát hóa (tập trung vào thông tin thiết yếu) mà không rõ ràng thông tin về những đối tượng, không gắn cứng với một đối tượng rõ ràng cần mô tả (triển khai với interface, abstract) Tính đóng gói (encapsulation) tài liệu đối tượng nỗ lực như nằm trong một hộp đen, những thành phần khác bên phía ngoài đối tượng không trực tiếp tác động đến tài liệu (bên phía ngoài truy cập, tác động thông qua những phương thức public được cho phép, qua setter, getter ...) Tính đa hình (polymorphism) đối tượng ứng xử rất khác nhau tùy trường hợp rõ ràng Tính thừa kế (inheritance) đặc tính của lớp được thừa kế từ một lớp khác

[embed]https://www.youtube.com/watch?v=pgCe960YRFk[/embed]

Trong lập trình hướng đối tượng, lớp (class) là một kiểu tài liệu tham chiếu nó định nghĩa một tập hợp những biến (trường tài liệu, thuộc tính) và phương thức (gọi chúng là những thành viên - thành viên lớp).

Từ lớp đó sinh ra những đối tượng (object), những đối tượng này còn gọi là bản triển khai của lớp (instance of a class), mỗi đối tượng có mức giá trị tài liệu rõ ràng (lưu trong thành viên biến, thuộc tính). Các phương thức (method) - định nghĩa ra những ứng xử của đối tượng - dựa theo tài liệu của chúng.

Ví dụ: Một lớp mô tả nhiều chủng loại vũ khí, đặt tên là Vukhi, thì bên trong nó hoàn toàn có thể định nghĩa những thành viên tài liệu (biến) như: tên vũ khí, độ sát thương, tầm ảnh hưởng ... Cũng hoàn toàn có thể định nghĩa những thành viên hàm (phương thức) để mô tả ứng xử của nó như: Ten(), TanCong() ...

Khi có định nghĩa lớp VuKhi nghĩa là bạn có một kiểu tài liệu tham chiếu mới, bạn hoàn toàn có thể tạo ra đối tượng rõ ràng của nó mà mỗi đối tượng có những tài liệu rất khác nhau như sung_luc, sung_may ...

Khai báo lớp, sử dụng lớp

Khi xử lý và xử lý những vấn đề thực tiễn, những vấn đề cần xử lý và xử lý bạn cần tìm cách trừu tượng hóa nó thành vấn đề tổng quát, như nó có những đặc tính gì, ứng xử của nó ra sao ... Từ đó mới hoàn toàn có thể định nghĩa ra lớp để hiện thực hóa vấn đề trừu tượng được.

Cú pháp cơ bản như sau:

class Class_Name // khai báo những thành viên tài liệu (thuộc tính, biến trường tài liệu) // khai báo những thành viên hàm (phương thức)

Trong số đó Access Modifiers áp dụng khai báo cho lớp hoàn toàn có thể là: public (không số lượng giới hạn truy cập) hoặc internal (mặc định nếu không khai báo, số lượng giới hạn truy cập trong cùng assembly - chương trình). Nếu lớp con khai báo lồng trong một lớp khác còn tồn tại thể sử dụng private (chỉ truy cập được từ lớp chứa nó)

Khai báo và khởi tạo thành viên tài liệu (biến, trường dữ liếu) giống với khai báo biến thông thường, nhưng có thêm Access Modifiers để quy định Lever truy cập. Đối với thành viên lớp (biến, thuộc tính, phương thức) thì hoàn toàn có thể áp dụng những access modifiers sau:

    public : không số lượng giới hạn phạm vi truy cập protected : chỉ truy cập trong nội bộ lớp hay những lớp thừa kế private : (mặc định) chỉ truy cập được từ những thành viên của lớp chứa nó internal : chỉ truy cập được trong cùng assembly (dll, exe) protected internal: truy cập được khi cùng assembly hoặc lớp thừa kế private protected: truy cập từ lớp chứa nó, lớp thừa kế nhưng phải cùng assembly

Trở lại ví dụ trên, định nghĩa lớp VuKhi

// File VuKhi.cs using System; namespace CS007_Class public class VuKhi /// Tên của vũ khí: Súng Lục, Súng Trường, Dao ... public string name = "Tên Vũ Khí"; /// Độ sát thương 10 Lever int dosatthuong = 0; /// Phương thức khởi tạo (được gọi khi toán tử new tạo đối tượng) /// tên phương thức trùng tên lớp, trường hợp này sẽ không tham số public VuKhi() this.dosatthuong = 1; /// Phương thức khởi tạo (được gọi khi toán tử new tạo đối tượng) /// tên phương thức trùng tên lớp, trường hợp này còn có tham số public VuKhi(string name, int dosatthuong) this.name = name; SetDoSatThuong(dosatthuong); /// Hàm này thiết lập độ sát thương public void SetDoSatThuong(int mucdo) this.dosatthuong = mucdo; // In ra: Tên vu khí: * * * * * * * * (bằng độ sát thương) public void TanCong() Console.Write(name + ": t"); for (int i = 0; i < dosatthuong; i++) Console.Write(" * "); Console.WriteLine();

Lớp VuKhi trên mô tả chung về loại vũ khí, nó mang tên lưu ở trường tài liệu name, có độ sát thương lưu ở trường (biến) dosatthuong, nó có những phương thức SetDoSatThuong để thiết lập độ sát thước, TanCong() trừu tượng hóa khi vú khí đó tấn công.

Giờ ta tiến hành tạo ra những đối tượng rõ ràng, áp dụng VuKhi. Như trên đã nói, class là một kiểu tài liệu, nên để sử dụng nó hoàn toàn có thể khai báo biến với kiểu tài liệu là tên gọi lớp do bạn định nghĩa. Để tạo ra đối tượng lớp thì dùng từ khóa new với cú pháp new ClassName();

// Khai báo và khởi tạo đối tượng luôn var ob1 = new ClassName(); // Khai báo, sau đó khởi tạo ClassName ob2; ob2 = new ClassName();

Toán tử .

Sau khi đối tượng lớp (object) được tạo, bạn hoàn toàn có thể truy cập đến những thuộc tính, trường tài liệu và phương thức của đối tượng đó bằng ký hiệu . theo quy tắc object.tên_thuộc_tính hay object.tên_phương_thức

Áp dụng:

static void Main(string[] args) var sungluc = new VuKhi(); // Khai báo và khởi tạo sungluc.name = "SÚNG LỤC"; // Truy cập và gán thuộc tính sungluc.SetDoSatThuong(5); // Truy cập (gọi) phương thức VuKhi sungtruong = new VuKhi(); sungtruong.name = "SÚNG TRƯỜNG"; sungtruong.SetDoSatThuong(20); sungluc.TanCong(); // Gọi phương thức sungtruong.TanCong(); // Gọi phương thức //Kết quả chạy SÚNG LỤC: * * * * * SÚNG TRƯỜNG: * * * * * * * * * * * * * * * * * * * *

Từ khóa this

Từ khóa this dùng trong những phương thức của lớp, nó tham chiếu đến đối tượng hiện tại sinh ra từ lớp. Sử dụng this để tường minh, tránh sự không rõ ràng khi truy cập thuộc tính, phương thức hoặc để lấy đối tượng lớp làm tham số cho những thành phần khác ...

Ví dụ, hàm SetDoSatThuong, bạn hoàn toàn có thể viết:

public void SetDoSatThuong(int dosatthuong) this.dosatthuong = dosatthuong;

Nếu viết thiếu this thì là dosatthuong = dosatthuong, làm cho khó hiểu không biết là gán dosatthuong từ tham số hàm cho dosatthuong là tài liệu của lớp. Các trường hợp khác, không khiến ra sự bồn chồn kiểu này thì hoàn toàn có thể bỏ this (tuy nhiên nên sử dụng this ngay kể cả khi bỏ được nó để giúp ích quá trình bảo dưỡng sau này)

Phương thức khởi tạo - Constructor

Phương thức khởi tạo là phương thức của lớp, nó được thi hành ngay lúc đối tượng được tạo (bởi toán tử new), phương thức khởi tạo mang tên trùng với tên của lớp, không còn kiểu trả về, bạn hoàn toàn có thể tạo nhiều phương thức khởi tạo - những phương thức này đều cùng tên với tên lớp nhưng tham số rất khác nhau. Lúc này khi khởi tạo đối tượng với toán tử new tùy tham số khởi tạo mà nó sẽ gọi phương thức khởi tạo tương ứng.

Ví dụ trên, lớp VuKhi có hai phương thức khởi tạo:

public class VuKhi /... public VuKhi() this.dosatthuong = 1; public VuKhi(string name, int dosatthuong) this.name = name; SetDoSatThuong(dosatthuong); //...

Lúc này hoàn toàn có thể sử như sau:

// Khởi tạo đối tượng, hàm tạo VuKhi() được gọi var sungluc = new VuKhi(); sungluc.name = "SÚNG LỤC"; sungluc.SetDoSatThuong(5); // Khởi tạo đối tượng, hàm tạo VuKhi(name, dosatthuong) được gọi VuKhi sungtruong = new VuKhi(name: "SÚNG TRƯỜNG", dosatthuong: 20);

Kết quả tương tự như ví dụ trên, việc sử dụng hàm khởi tạo đảm bảo tài liệu của đối tượng nên phải khởi tạo ngay lúc đối tượng đó được tạo - tránh việc sử dụng đối tượng mà tài liệu không đúng chuẩn.

Quá tải (Overloading) phương thức

Kỹ thuật quá tải phương thức (Method Overloading) là phương pháp triển khai khái niệm tính đa hình của lập trình hướng đối tượng. Quá tải phương thức là những phương thức có cùng tên nhưng tham số rất khác nhau (hàm hoàn toàn có thể trả về kiểu tài liệu rất khác nhau)

Tính đa hình (polymorphism) là cách ứng xử của đối tượng - ứng xử này là rất khác nhau tùy thuộc vào tình huống rõ ràng.

Ví dụ lớp Console của NET CORE (mã nguồn Console.cs) nó quá chồng một loạt phương thức ví dụ:

public static void WriteLine(); public static void WriteLine(bool value); public static void WriteLine(decimal value); public static void WriteLine(int value); ...

Điều này tương hỗ cho bạn khi bạn gọi Console.Writeline(a), tùy thuộc vào kiểu tài liệu của a mà một hàm WriteLine tương ứng được thi hành.

Ví dụ:

public class OverloadingExample public static int Sum(int a, int b) return a + b; public static double Sum(double a, double b) return a + b;

Lớp trên có hàm Sum quá tải, tùy thuộc vào kiểu tham số mà hàm Sum rõ ràng được gọi.

double a = 1; double b = 2; var c = OverloadingExample.Sum(a, b); // c = 3 có kiểu double int a = 1; int b = 2; var c = OverloadingExample.Sum(a, b); // c = 3 nhưng có kiểu int

Chú ý: Khai báo hai hàm cùng tên, giống nhau hoàn toàn về tham số chỉ khác kiểu trả về sẽ gây lỗi.

Tìm hiểu tính đóng gói lập trình hướng đối tượng

Tính đóng gói mục tiêu hạn chế tối đa việc can thiệp trực tiếp vào tài liệu, hoặc thi hành những tác vụ nội bổ của đối tượng. Nói cách khác, một đối tượng là hộp đen đối với những thành phần bên phía ngoài, nó chỉ được cho phép bên phía ngoài tương tác với nó ở một số trong những phương thức, thuộc tính, trường tài liệu nhất định - hạn chế.

C# triển khai tính đóng gói này đó đó là sử dụng những Access Modifiers: public private protected internal khi khai báo lớp, phương thức, thuộc tính, trường tài liệu (biến).

    public thành viên hoàn toàn có thể truy cập được bởi code bât kỳ đâu, ngoài đối tượng, không hạn chế chế truy cập nào. private phương thức, thuộc tính, trường khai báo với private chỉ hoàn toàn có thể truy cập, gọi bởi những dòng code cùng lớp. protected phương thức, thuộc tính, trường chỉ hoàn toàn có thể truy cập, gọi bởi những dòng code cùng lớp hoặc những lớp thừa kế nó. internal truy cập được bởi code ở cùng assembly (file). protected internal truy cập được từ code assembly, hoặc lớp thừa kế nó ở assembly khác. private protected truy cập được code khi cùng assembly trong cùng lớp, hoặc những lớp thừa kế nó.

Khi không riêng gì có rõ Modify thì mặc định là private cho phương thức, thuộc tính, trường. Assembly là file exe, dll

Ví dụ:

class Student private string Name;

Khi sử dụng

var s = new Student(); s.Name = "ABC";

Biên dịch sẽ lỗi error CS0122: 'Student.Name' is inaccessible due to its protection level. Vì trường Name là private không thể truy cập bằng code bên phía ngoài lớp như trên. Nhưng nếu thay bằng public thì không lỗi.

Khi lập trình nỗ lực tối đa ẩn thông tin ra bên phía ngoài lớp càng nhiều càng tốt để đảm bảo tính đóng gói của kỹ thuật lập trình OOP, nó tương hỗ cho code dễ bảo dưỡng và giám sát lỗi.

Thuộc tính trong lớp

Trường tài liệu của lớp

Trường tài liệu - khai báo như biến trong lớp, nó là thành viên của lớp, nó là biến. Trường tài liệu hoàn toàn có thể sử dụng bởi những phương thức trong lớp, hoặc nếu là public nó hoàn toàn có thể truy cập từ bên phía ngoài, nhưng cách hay hơn để đảm bảo tính đóng gói khi cần truy cập thuộc tính hãy sử dụng phương thức, còn bản thân thuộc tính là private. Chúng ta đã sử dụng những trường tài liệu ở những ví dụ trên.

Thuộc tính, bộ truy cập accessor setter/getter

Ngoài cách sử dụng trường tài liệu, khai báo như biến ở phần trước, khai báo THUỘC TÍNH tương tự nhưng nó có cơ chế accessor (bộ truy cập), một cơ chế rất là linh hoạt khi bạn đọc / ghi tài liệu vào thuộc tính. Hãy tìm hiểu qua một ví dụ sau:

class Student private string name; // đây là trường tài liệu

Lớp này còn có một trường tài liệu private là name. Giờ ta sẽ khai báo một thuộc tính mang tên Name với modify là public, thuộc tính này khi đọc sẽ thi hành một đoạn code gọi là get, khi ghi (gán) tài liệu nó thi hành đoạn code gọi là set, thuộc tính Name sẽ phối hợp cùng trường tài liệu name

class Student { private string name; // Đây là trường tài liệu public string Name // Đây là thuộc tính { // set thi hành khi gán, write // tài liệu gán là value set { Console.WriteLine("Ghi tài liệu <--">

Khi thực hiện

var s = new Student(); s.Name = "XYZ"; // set thi hành // In ra: Ghi tài liệu <--xyz> Console.WriteLine(s.Name); // get được thi hành // In ra: Tên là: XYZ

Thuộc tính accessor hoàn toàn có thể khai báo thiếu set hoặc get, nếu thiếu set nó trở thành loại chỉ đọc (readonly). Sử dụng set rất tiện lợi cho thao tác kiểm tra tính hợp lệ của tài liệu khi gán, hoặc tự động thực hiện một số trong những tác vụ mọi khi tài liệu được gán.

Bạn hoàn toàn có thể khai báo một thuộc tính tự động, nó hoạt động và sinh hoạt giải trí in như trường tài liệu.

public string Name set; get;

Bạn lưu ý khai báo như trên nó là thuộc tính, bạn vẫn hoàn toàn có thể khai báo như thể trường:

public string Name;

Tuy nhiên lúc không là thuộc tính, thì sẽ thiếu đi một số trong những tính năng ứng dụng cao cấp sau này mà C# tương hỗ.

Source code: CS007_Class (Git), hoặc tải ex007

[embed]https://www.youtube.com/watch?v=FI-ZMKKmEcs[/embed]

Video Khi xây dựng lớp đối tượng, việc làm cần làm là: ?

Bạn vừa tham khảo nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Video Khi xây dựng lớp đối tượng, việc làm cần làm là: tiên tiến nhất

Chia Sẻ Link Download Khi xây dựng lớp đối tượng, việc làm cần làm là: miễn phí

Bạn đang tìm một số trong những ShareLink Tải Khi xây dựng lớp đối tượng, việc làm cần làm là: miễn phí.

Hỏi đáp thắc mắc về Khi xây dựng lớp đối tượng, việc làm cần làm là:

Nếu sau khi đọc nội dung bài viết Khi xây dựng lớp đối tượng, việc làm cần làm là: vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Admin lý giải và hướng dẫn lại nha #Khi #xây #dựng #lớp #đối #tượng #công #việc #cần #làm #là - 2022-04-03 12:31:06
إرسال تعليق (0)
أحدث أقدم