C#中静态类与非静态类,一次性全掌握!

本文深入解析C#中静态与非静态类的区别,包括关键字static的作用、访问修饰符及实例化方法。通过具体示例,展示了如何在代码中正确使用静态类和非静态类,以及它们各自的访问方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:本博文主要讲解静态类与非静态类的用法与区别,更多关于静态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的超全用法,建议收藏!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值