C#學習筆記(一)--- 物件導向的思想和類的定義、物件的建立

暗夜無風發表於2020-10-28

1. 物件導向程式概念

 C#是一個由微軟開發的,現代的、通用的、物件導向的程式語言。那麼什麼是物件導向?

1.1 官方解釋

百度百科是這樣說的:

  物件導向程式設計(ObjectOrientedProgramming,OOP,物件導向程式設計)是一種計算機程式設計架構。OOP的一條基本原則是計算機程式是由單個能夠起到子程式作用的單元或物件組合而成。OOP達到了軟體工程的三個主要目標:重用性、靈活性和擴充套件性。為了實現整體運算,每個物件都能夠接收資訊、處理資料和向其它物件傳送資訊。

1.2 個人理解

  總的來說,區別於程式導向的語言,such as C語言,程式導向的語言注重於問題的過程,如何解決這個問題,因而會將過程的內容用變數和函式來說明,知道解決這個問題。
  然後,物件導向,就是將問題抽象為一個類,將問題的內容集合在一起,用屬性和方法來描述它們,然後例項化這些問題為物件,每個物件都執行相應的程式碼。
  個人感覺,使用類編寫程式碼,就像C語言的結構體那樣,將離散的資料整合在一起,從而對於全域性的把握也更加的輕鬆。

2.定義類、建立物件

2.1 類的定義

public class Student
{
	private string Name;
	private int Age;
	public void setName(string name)
	{
		this.Name = name;
	}
	public void setAge(int age)
	{
		this.Age = age;
	}
}

  在這裡,定義了一個Student類,類有Name和Age兩個屬性,setName()和setAge()兩個方法。
  類的定義類似於結構體,但是結構體是不包含方法,也就是函式的。定義屬性和方法幾乎和C語言定義變數和函式一致,不同的是在面嚮物件語言中,前頭有訪問修飾符:public、private、protected,用來對屬性和方法的作用域進行限制。

2.2 類的例項化

Student stu = new Student();
stu.setName("小明");
stu.setAge("20");

  建立一個物件並例項化,為這個物件分配了記憶體空間。在C#中,凡是建立了一個類物件,如Student stu;則在棧記憶體中開闢一塊空間,用於存放Student類的一個例項化物件的地址
  也就是說,只要new了該物件,就在堆記憶體建立一個stu物件,包含了每個屬性的一塊記憶體空間。而在堆區的這塊記憶體的首地址則會賦值給棧空間的stu物件。

在這裡插入圖片描述

2.3 成員變數

  在類內定義的變數為成員變數,成員變數的作用時間和類一樣,也就是說:只要類例項化,就像C語言使用malloc那樣,在堆區開闢了記憶體空間後,就可以一直存在直到程式結束或被程式設計師自己delete。

2.4 名稱空間

  namespace即為名稱空間,主要解決一下兩個問題:
(1)為很長的識別符號名稱建立一個別名,提高程式碼的可讀性
(2)避免和C#內部或者第三方庫的類、函式、變數等的重名問題,使用了namespace,就可以在名稱空間內愉快地給變數取你想要的名字啦。

相關文章