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