C#类

本文详细介绍了C#中的封装概念,通过示例代码展示了如何使用类成员变量、构造函数、析构函数等实现封装。同时,文章还对比了静态成员与非静态成员的区别,包括它们的调用方式、初始化时机、存储方式以及释放机制。

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

  • 类成员变量封装
  • 构造函数,参数化构造函数(带参)
  • 析构函数
using System;
    namespace LineApplication
    {
       class Line
       {
          private double length;   // 线条的长度
          public Line()  // 构造函数
          {
             Console.WriteLine("对象已创建");
          }
          ~Line() //析构函数
          {
             Console.WriteLine("对象已删除");
          }

          public void setLength( double len )
          {
             length = len;
          }
          public double getLength()
          {
             return length;
          }

          static void Main(string[] args)
          {
             Line line = new Line();
             // 设置线条长度
             line.setLength(6.0);
             Console.WriteLine("线条的长度: {0}", line.getLength());           
          }
       }
    }

当上面的代码被编译和执行时,它会产生下列结果:

对象已创建
    线条的长度: 6
    对象已删除
  • 静态成员
    静态成员是属于类的,非静态成员是属于对象的
    1. static与非static最大的区别就是static类型的变量及方法在调用的时候就在内存中分配了地址,且这个地址只有一份,故static可以直接访问。而非static必需手工去实例化该类,以对象的方式去访问变量和方法。
    2. 在一个静态方法里去访问该类的非静态变量或方法,是访问不到的。由于static是属于类本身的,是在类被调用的时候,static类型就已经生成,而非static此时并没有生成,它是属于这个类的对象。故在没有实例化成对象的时候,在静态方法中访问非静态是根本找不到它们的,它不属于这个类。
    3. 在非静态方法中去访问静态是可以的。
    4. 每个类都必须有构造函数,否则此类无法实例化成对象。而我们有时定义的类可以不写它的构造函数,这是因为编译器会帮我们加上一个静态的空构造函数。这样才能实例化。也可以用静态构造函数去初始化静态变量。
区别静态非静态
调用类.静态方法名类 对象 = new 类的构造函数 对象.非静态方法名
初始化静态成员是在第一次使用时进行初始化,静态构造函数只能被执行一次非静态的成员是在创建对象的时候,非静态的构造函数可以根据需要进行多次使用
存储静态的只有一块全局内存空间非静态的可以有多块内存空间(副本)
释放静态的一旦创建则在全局区一直存放,直到应用程序结束非静态的则是由new关键字在堆中创建的。可以有多个副本。由GC进行释放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值