类的实例化
实例化:把类创建为对象的过程。
1. 实例化表达式
表达式1:直接实例化创建对象
// 语法 类名称 对象名 = new 类名称();
表达式2:先创建对象再实例化
// 语法 类名称 变量; 变量 = new 类名称();
注意事项
Car myCar = new Car();
- 创建了一个名为
myCar的变量,并将其初始化为一个新的Car对象。 - 这意味着
myCar现在引用了一个实际存在的Car实例。 - 结论:
myCar是Car类的实例/对象。
特别提醒:
如果只写Car myCar;,这仅仅声明了一个名为myCar的变量,但并没有给它分配任何值。在这种情况下,myCar是一个未初始化的变量(或 null),你不能直接使用它,必须先实例化它。
为什么要创建类及对类的理解
当多个对象具有相同属性时,可以把他们归于一类,即创建一个类。
- 属性:类中包含他们相同的特征。
- 行为:可以看做方法(函数)。
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) { // 直接通过 类名.属性 访问,不需要 new 对象 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. 通过 对象点 (Object.Property) 的方式赋值。
- 2. 调用其中方法,传入参数。
- 3. 把一个对象当做参数传入。
- 4. 建议使用委托(Delegate)。
类的绑定理解 (引用类型)
理解 1:引用传递
使用 fuka 对象就等于使用 zhuka 对象成员。
class casrd // 卡类 { public String Money; // 卡的金额 } class syong { public void syong_jilu() { Console.WriteLine("信用卡消费记录"); // 创建卡对象、赋予8千额度 casrd zhuka = new casrd() { Money = "8000" }; 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 的属性值,因为它们本质上是同一个对象。

评论