前言:本博文主要講解靜態類與非靜態類的用法與區別,更多關於靜態statis的知識,請查看本博文第三部分——補充。
一、介紹
1、區別:有無關鍵字 static
- static 聲明靜態類,靜態類訪問不需要實例化。
- 靜態類、靜態方法、靜態字段,直接使用類名.(點)
- 非靜態類、非靜態方法、非靜態字段,需要實例化。
- 語法:類名 名稱(類對象) = new 類名();
- 使用:類對象. (點)非靜態方法或非靜態字段
2、訪問修飾符
- public:公共的、公開的,用public修飾的類,表示在當前項目中都可以調用。
- private:私有的,只會針對某個特定的對象使用。
- protected:受保護類型的類。
3、訪問途徑
- 靜態類、非靜態類
- 區分靜態類和非靜態類的關鍵是:是否有關鍵字static
二、示例
1、創建一個非靜態的Person類
using System.Collections;
namespace ConsoleApplication1
{
public class Person
{
//非靜態類 沒有修飾符
//在調用的時候 需要使用new關鍵字實例化一個類對象
//在類裏面 的所有字段 方法 都叫成員字段 成員方法
//成員方法 、字段沒有寫明訪問修飾符 默認表示私有
//非靜態類訪問必須實例化
//非靜態類 可以寫非靜態字段 、方法 也可以寫靜態字段、方法
public string userName = "校長";
int userAge = 22;
public static string userSex = "男";
}
}
在主類中,對其進行實例化,然後調用。
//非靜態類調用
//實例化一個類對象(非靜態類)
Person p1 = new Person();
string name = p1.userName;
Console.WriteLine(name);
//調用非靜態類裏面的靜態成員屬性
string sex= TestClass.userSex;
Console.WriteLine(sex);
Console.ReadLine();
注意: 我們在Person類中,定義的userAge ,不是公開的,默認它就是私有的,所以我們無法直接進行獲取。而userSex是公共的、靜態的,所以我們不需要實例化,直接就可以通過類名.(點)的方式,進行訪問。
2、創建一個靜態Student類
namespace ConsoleApplication1
{
public static class Student
{
//靜態類特點:有static修飾
//靜態類中只能寫靜態方法、靜態字段
//靜態類調用 不用實例化對象
public static string userName = "小明";
}
}
在主類中,對其進行實例化,然後調用。
//靜態類的調用
//直接調用
string name1 = Student.userName;
Console.WriteLine(name1);
Console.ReadLine();
三、補充
更多關於靜態statis的知識,請查看本人另一篇博文:C#靜態statis的超全用法,建議收藏!