C#中靜態類與非靜態類,一次性全掌握!

前言:本博文主要講解靜態類與非靜態類的用法與區別,更多關於靜態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的超全用法,建議收藏!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章