csharp:类:理解类

这是本文档旧的修订版!


# 类的实例化、

实例化:把类创建为对象的过程

表达式1:

[直接实例化创建对象]

``` 类名称 对象名 = new 类名称(); ```

表达式2:

[先创建对象再实例化]

``` 类名称 变量 ; 变量= new 类名称(); ```

注意: ``` Car myCar = new Car(); ``` 创建了一个名为myCar的变量,并将其初始化为一个新的Car对象。

这意味着myCar现在引用了一个实际存在的Car实例。

[ myCar 是Car 类的实例/对象 ]

Car myCar; 声明了一个名为myCar的变量,但并没有给它分配任何值。在这种情况下,myCar是一个未初始化的变量,你不能使用它、需要实例化它、

# 为什么要创建类及对类的理解

当多个对象具有相同属性时、可以把他们归于一类、即创建一个类、[行为可以看做方法]

类中包含他们相同的属性、

``` namespace 创建类及对类的理解 {

  class Program
  {
      static void Main(string[] args)
      {
       //当多个对象具有相同属性时、行为、可以把他们归于一类、即创建一个类、[行为可以看做方法]
       //类中包含他们相同的属性、
          //利用同种类型创建英雄
          MAX_pipou LeiShen = new MAX_pipou(); //创建一个英雄叫雷神
          MAX_pipou gaiya = new MAX_pipou(); //创建一个英雄叫盖亚
          MAX_pipou wunu = new MAX_pipou(); //创建一个英雄叫舞女
          //英雄属性赋予
          LeiShen.name = "雷神"; LeiShen.agg = 22; LeiShen.shengao = 175;
          gaiya.name = "盖亚"; gaiya.agg = 25; gaiya.shengao = 182;
          wunu.name = "舞女"; wunu.agg = 18; wunu.shengao = 163;
          //英雄展示
          LeiShen.show_MAX_pipou(); gaiya.show_MAX_pipou(); wunu.show_MAX_pipou();
      }
  }
  class MAX_pipou  //创建英雄的类
  {
      //字段变量  等待外部赋值   变量不加static必须要实例化类才能使用
      public String name;//名 
      public int agg;//年龄
      public int shengao;//身高
      public void  show_MAX_pipou() //方法
      {
          Console.WriteLine(name);
          Console.WriteLine(agg);
          Console.WriteLine(shengao);
      }
  }

}

```

# 成员变量与成员函数

一个类里面的变量叫:成员变量

一个类里面的方法叫:成员函数

# 创建类添加static

类里面的变量添加的 static、相当于直接创建了变量、

无需实例化访问、

``` namespace 创建类及对类的理解加入static {

  class Program
  {
      static void Main(string[] args)
      {
          //当多个对象具有相同属性时、行为、可以把他们归于一类、即创建一个类、[行为可以看做方法]
          //类中包含他们相同的属性、
          MAX_pipou.name = "英雄";
          MAX_pipou.agg = 24;
      }
  }
  class MAX_pipou  //创建英雄的类加static
  {
      //字段变量
      public static String name;//名 
      public static int agg;//年龄
      public static short xbie;//性别
      public static int shengao;//身高
      public static short jineng;//技能
      public static short wuqi;//武器
      public static int gongjili;//攻击力
      public void  show_MAX_pipou()
      {
          Console.WriteLine(name);
          Console.WriteLine(agg);
          Console.WriteLine(shengao);
      }
  }

}

```

# 主类与次类之间变量需要传递数据

在主类中实例化次类的对象、通过对象点的方式赋值

也可以调用其中方法、传入参数、 也可以把一个对象当做参数传入

建议使用委托 # 类的绑定理解1

使用fuka对象就等于使用zhuka对象成员

```

  class casrd //卡类
  {
      public String Money;//{ get; set; }//卡的金额
  }
  class syong
  {
      public void syong_jilu()
      {   
          Console.WriteLine("信用卡消费记录");
          casrd zhuka = new casrd() { Money = "8000" };//创建卡对象、赋予8千额度
          Console.WriteLine("信用卡总额度:" + zhuka.Money); //输出主卡的总额度值
          casrd fuka = zhuka;// 怎么理解这里?
          fuka.Money = "2000"; //副卡消费2千块
          Console.WriteLine("消费记录:" + zhuka.Money); //输出主卡的总额度值
      }

} ```

在这段代码中,casrd fuka = zhuka; 是将 zhuka对象的引用赋值给 fuka 。这意味着 zhuka和 fuka 都指向同一个 Card 对象[创建的虚拟堆]。

当你修改 fuka 的属性值时,实际上是修改了zhuka的属性值,因为它们都指向同一个对象。

总结:使用值类型时对一个变量的修改不会影响其他的值、

而使用引用类型时、你对一个引用类型变量的值进行修改、会影响到与它相同引用的其他变量的值、

# 类的绑定理解2

总结:使用值类型时对一个变量的修改不会影响其他的值、而使用引用类型时、你对一个引用类型变量的值进行修改、会影响到与它相同引用的其他变量的值、

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • csharp/类/理解类.1759048176.txt.gz
  • 最后更改: 2025/09/28 16:29
  • 张叶安