oop c# Flashcards
nếu không có từ khoá nào thì mặc định 1 class, 1 method, 1 property
internal, private, private
hàm tạo - constructer có mấy loại
1.hàm tạo mặc định
VD:
public class Myclass
{
string name;
int age;
public Myclass()
{
// body
}
}
constructor này ko có tham số truyền vào, sau khi nó được gọi thì các giá trị sẽ được tạo mặc định với từng kiểu dữ liệu, name là null, age là 0
2.hàm tạo với tham số
VD:
public class MyClass
{
public int Number {get; set;}
public MyClass(int num)
{
Number = num;
}
}
3.Hàm tạo sao chép
VD:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age) { Name = name; Age = age; } public Person Clone() { return new Person(this.Name, this.Age); } }
từ khoá “this” để làm gì
1.truy nhập đến các thành viên của đối tượng
public class Person
{
public string Name;
public void SetName(string Name) { this.Name = Name; // Sử dụng 'this' để chỉ rõ rằng 'Name' là thuộc tính của đối tượng. } }
2.Truy nhập đến constructor trong constructer chaining
public class Customer
{
public int Id;
public string Name;
public readonly List<Order> Orders = new List<Order>();</Order></Order>
public Customer(int id) { this.Id = id; }
public Customer(int id, string name) : this(id)
{
this.Name = name;
}
public void DoSomething() { // ... } }
hàm ảo virtual, override
https://howkteam.vn/course/ke-thua-trong-lap-trinh-huong-doi-tuong/da-hinh-trong-lap-trinh-huong-doi-tuong-1380
static
https://howkteam.vn/course/lap-trinh-oop-voi-c/tu-khoa-static-trong-lap-trinh-huong-doi-tuong-1374
biến tĩnh
-Khi khai báo biến đại phương là biến tĩnh thì chương trifnh dịch sẽ khởi tạo duy nhất 1 lần biến này và thông qua con trỏ stack ở những lần sau chỉ tham chiếu tới biến này mà k tạo ra biến mới
-Mỗi lần tham chiếu lưu giá trị lần tham chiếu trước.
phương thức tĩnh
chỉ truy cập được vào thuộc tính tĩnh và không thể gọi các phương thức static trong cùng lớp
lớp tĩnh
chỉ chứa biến tĩnh và phương thức tĩnh, không thể khai báo khởi tạo 1 đối tượng thuộc lớp tĩnh
get và set
Trong lập trình hướng đối tượng (OOP) của C#, get và set là hai phương thức đặc biệt được sử dụng để truy cập và gán giá trị của các thuộc tính (property) của một đối tượng. Đây là cách chúng hoạt động:
get: Được sử dụng để lấy giá trị của một thuộc tính.
set: Được sử dụng để gán giá trị mới cho một thuộc tính.
VD:
public class Person
{
private string name; // Field (trường dữ liệu) không phải là thuộc tính
public string Name // Property (thuộc tính) với get và set { get { return name; } // Phương thức get set { name = value; } // Phương thức set } } trong hàm main: Person person = new Person(); person.Name = "John"; // Gọi phương thức set để gán giá trị "John" cho thuộc tính Name string name = person.Name; // Gọi phương thức get để lấy giá trị của thuộc tính Name
phân biệt “ref” và “out”
giống: đều là dạng tham chiếu
khác: ref thì cần được khởi tạo. out thì không. cụ thể tra chat gpt
từ tham chiếu “this”
không dùng trong khối lệnh static
thuộc tính tĩnh
-Là thuộc tính mang thông tin chung của 1 lớp
-Giả sử có 2 đối tượng. đối tượng 1 được khởi tạo trước đối tượng 2.
ví dụ cho lớp car có thuộc tính “public static string color” thì cho car1.color = red. car2.color = blue thì lúc này car1.color = blue