构造函数

理解构造函数在类初始化中的作用
本文深入探讨了构造函数在类初始化过程中的核心作用,包括构造函数的定义、参数化构造函数的使用以及构造函数与其他类成员的交互。通过实例代码演示了如何在不同场景下使用构造函数,确保类的正确初始化。

     构造函数用于执行类的实例的初始化每个类都有构造函数即使我们没有声明它编译器也会自动地为我们提供一个默认的构造函数在访问一个类的时候系统将最先执行构造函数中的语句实际上任何构造函数的执行都隐式地调用了系统提供默认的构造函数base().
     如果我们在类中声明了如下的构造函数
    C(…) {…}
  它等价于
    C(…): base() {…}
  使用构造函数请注意以下几个问题
     #一个类的构造函数通常与类名相同
     # 构造函数不声明返回类型
            # 一般地 构造函数总是public 类型的如果是private 类型的表明类不能被实例化这通常用于只含有静态成员的类
     # 在构造函数中不要做对类的实例进行初始化以外的事情也不要尝试显式地调用构造函数
  下面的例子示范了构造函数的使用:

        class A
        {
            int x = 0, y = 0, count;
            public A()
            {
                count = 0;
            }
            public A(int vx, int vy)
            {
                x = vx;
                y = vy;
            }
        }

构造函数的参数

上一小节的例子中类A 同时提供了不带参数和带参数的构造函数
构造函数可以是不带参数的这样对类的实例的初始化是固定的有时我们在
对类进行实例化时需要传递一定的数据来对其中的各种数据初始化使得初始化

不再是一成不变的这时我们可以使用带参数的构造函数来实现对类的不同实例
的不同初始化
在带有参数的构造函数中类在实例化时必须传递参数否则该构造函数不被执

让我们回顾一下10.2 节中关于车辆的类的代码示例我们在这里添加上构造函数
验证一下构造函数中参数的传递
程序清单10-6
using System;
class Vehicle//定义汽车类
{
public int wheels; //公有成员轮子个数
protected float weight; //保护成员重量
public Vehicle(){;}
public Vehicle(int w,float g){
wheels = w;
weight = g;
}
public void Show(){
Console.WriteLine(“the wheel of vehicle is:{0}”,wheels);
Console.WriteLine(“the weight of vehicle is:{0}”,weight);
}
};
class train //定义火车类
{
public int num; //公有成员车厢数目
private int passengers; //私有成员乘客数
private float weight; //私有成员重量
public Train(){;}
public Train(int n,int p,float w){
num = n;
passengers = p;
weight = w;
}
public void Show(){

Console.WriteLine(“the num of train is:{0}”,num);
Console.WriteLine(“the weight of train is:{0}”,weight);
Console.WriteLine(“the Passengers train car is:{0}”, Passengers);
}
}

class Car:Vehicle //定义轿车类
{
int passengers; //私有成员乘客数
public Car(int w,float g,int p) : base(w,g)
{
wheels = w;
weight = g;
passengers = p;
}
new public void Show(){
Console.WriteLine(“the wheel of car is:{0}”,wheels);
Console.WriteLine(“the weight of car is:{0}”,weight);
Console.WriteLine(“the Passengers of car is:{0}”, Passengers);
}
}
class Test
{
public static void Main(){
Vehicle v1 = new Vehicle(4,5);
Train t1 = new Train();
Train t2 = new Train(10,100,100);
Car c1 = new Car(4,2,4);
v1.show();
t1.show();
t2.show();
c1.show();
}
}
程序的运行结果为

the wheel of vehicle is:0
the weight of vehicle is: 0
the num of train is:0
the weight of train is:0
the Passengers of train is:0
the num of train is:10
the weight of train is:100
the Passengers of train is:100
the wheel of car is:4
the weight of car is:2
the Passengers of car is 4

转载于:https://www.cnblogs.com/handsomer/p/4164322.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值