C#學習筆記(一)--- 物件導向的思想和類的定義、物件的建立
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,就可以在名稱空間內愉快地給變數取你想要的名字啦。
相關文章
- 物件導向中類和物件的定義是什麼?物件
- python中物件導向_類_物件的概念與定義Python物件
- python物件導向思想(類與物件)Python物件
- 物件導向-物件導向思想物件
- 物件導向:類的定義和繼承的幾種方式物件繼承
- JavaScript物件導向—物件的建立和操作JavaScript物件
- Python 學習筆記之類「物件導向,超類,抽象」Python筆記物件抽象
- 【python 物件導向】 python物件學習筆記《1》Python物件筆記
- 物件導向思想的核心概念物件
- JavaScript中的物件學習筆記(概述和建立)JavaScript物件筆記
- Python 3 學習筆記之——物件導向Python筆記物件
- Flutter學習筆記(8)--Dart物件導向Flutter筆記Dart物件
- Python學習筆記|Python之物件導向Python筆記物件
- js高階 物件導向 學習筆記JS物件筆記
- 問答題:物件導向的思想物件
- 物件導向的基本理論1:類和物件物件
- C#學習筆記(六)——物件導向程式設計簡介C#筆記物件程式設計
- 物件導向筆記物件筆記
- JAVA物件導向思想Java物件
- [筆記]物件導向的程式設計筆記物件程式設計
- js物件導向設計---建立物件的方式JS物件
- 關於C++類的定義和物件的建立詳解C++物件
- Python 物件導向筆記Python物件筆記
- 淺談物件導向中的一些主要思想物件
- 物件導向 -- 類的組合物件
- 物件導向 -- 類的載入順序 類和物件的名稱空間物件
- Cris 的 Scala 筆記整理(七):物件導向筆記物件
- Go 筆記之物件導向Go筆記物件
- 程式設計思想 物件導向程式設計物件
- JavaScript 物件導向實戰思想JavaScript物件
- 學習Rust 物件導向Rust物件
- Java物件導向——類與物件Java物件
- 請用物件導向的思想,談一談面試的過程物件面試
- JS物件導向設計-建立物件JS物件
- Python學習之路——類-物件導向程式設計Python物件程式設計
- 程式設計基礎·Java學習筆記·物件導向(下)程式設計Java筆記物件
- Python3:物件導向程式設計學習筆記(2)Python物件程式設計筆記
- 10 Python物件導向程式設計:類和物件以及和Java的對比Python物件程式設計Java