C#每天复习一个重要小知识day6:静态成员的基本概念和特点

目录

1.静态成员的基本概念

2.静态成员的特点

3.如何理解静态成员的特点?


1.静态成员的基本概念

用静态关键字static修饰的成员变量/方法/属性等称为静态成员。

2.静态成员的特点

静态成员的特点是全局性(直接可以用类名点出)和唯一性(有自己唯一的内存房间)。

3.如何理解静态成员的特点?

唯一性:程序只要一运行,只要有静态成员,程序就会为静态成员在专属的静态存储区分配内存空间,之后使用的话都是使用这个专属的空间里面的内容,所以我们可以直接点出来使用,这也是为啥它有唯一性的特点。

而且静态成员与程序是同生共死的,这个房间只要开了就一直在,一定要等到程序结束了才会被释放,在整个过程中基本不参与垃圾回收。

全局性:静态成员属于类本身而不是类的实例。这意味着可以直接使用类名来访问静态成员,而不需要创建类的对象。

因此静态成员在整个程序域中都是可见和可访问的。无需实例化类,就可以通过类名.静态成员的方式进行访问。因此它有全局性的特点。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个包含数组、继承、多态、静态成员和家庭成员函数、接口的 C# 例子: ```csharp using System; interface IAnimal { void Sound(); } class Animal : IAnimal { public virtual void Sound() { Console.WriteLine("Animal is making a sound."); } } class Dog : Animal { public override void Sound() { Console.WriteLine("The dog says woof."); } } class Cat : Animal { public override void Sound() { Console.WriteLine("The cat says meow."); } } class Zoo { private Animal[] animals; private static int totalAnimals; public Zoo(int size) { animals = new Animal[size]; } public void AddAnimal(Animal animal) { if (totalAnimals < animals.Length) { animals[totalAnimals] = animal; totalAnimals++; } else { Console.WriteLine("Zoo is full, cannot add more animals."); } } public void MakeAllAnimalsSound() { Console.WriteLine("All animals in the zoo are making a sound:"); for (int i = 0; i < totalAnimals; i++) { animals[i].Sound(); } } public static void PrintTotalAnimals() { Console.WriteLine("Total animals in all zoos: " + totalAnimals); } } class Program { static void Main(string[] args) { Zoo.PrintTotalAnimals(); Zoo zoo = new Zoo(3); Animal dog = new Dog(); Animal cat = new Cat(); Animal animal = new Animal(); zoo.AddAnimal(dog); zoo.AddAnimal(cat); zoo.AddAnimal(animal); zoo.MakeAllAnimalsSound(); Zoo.PrintTotalAnimals(); } } ``` 在这个例子中,我们定义了一个接口 `IAnimal`,它有一个 `Sound` 方法。然后我们定义了一个基类 `Animal`,它实现了 `IAnimal` 接口,并有一个 `Sound` 方法,这个方法在子类中可以被重写。我们又定义了两个子类 `Dog` 和 `Cat`,它们都继承自 `Animal`,并重写了 `Sound` 方法。 接着我们定义了一个 `Zoo` 类,它包含一个 `Animal` 类型的数组和一个静态成员变量 `totalAnimals`,它记录了所有动物的总数。`Zoo` 类有一个构造函数,它接收一个整数参数,表示动物园的大小,然后在构造函数中初始化了 `animals` 数组。`Zoo` 类还有一个 `AddAnimal` 方法,它接收一个 `Animal` 对象并将它添加到 `animals` 数组中。`Zoo` 类还有一个 `MakeAllAnimalsSound` 方法,它会调用每个动物的 `Sound` 方法,输出动物发出的声音。最后,`Zoo` 类还有一个静态的 `PrintTotalAnimals` 方法,它会输出所有动物的总数。 在 `Main` 方法中,我们创建了一个 `Zoo` 对象,并向它添加了三个动物:一个狗、一只猫和一个普通的动物。我们调用了 `MakeAllAnimalsSound` 方法,这个方法会让所有动物发出声音。最后,我们调用了 `PrintTotalAnimals` 方法,它会输出动物的总数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值