C#基础——构造函数

目录

相关知识点

构造函数的格式

零碎知识点

代码练习


相关知识点

构造函数:初始化对象

析构函数:清理对象

定义类时可以不定义相关的构造函数和析构函数。

System.Object提供了一个默认的实现方式。

构造函数的格式

默认构造函数格式:

class MyClass{
    public MyClass(){
        初始化代码
    }
}

非默认构造函数格式:

class MyClass{
    public MyClass(int myInt){
        初始化代码
    }
}

零碎知识点

每一个类都需要一个构造函数

如果没提供构造函数,编译器会自动创建一个构造函数。

如果仅提供一个非默认构造函数,则禁止使用new MyClass()

构造函数数量没有限制

派生类成员:父类继承+子类扩充

基类中的私有成员不可以直接访问,派生类不可以直接访问基类中的私有成员。

允许构造函数之间相互调用。

可以用base关键字指定调用基类的构造函数。

可以用this关键字指定调用当前类的构造函数

构造函数的调用规则:

先调用基类的构造函数,再调用当前类的构造函数。

代码练习

基类TV,派生类SmartTV

TV.cs

using System;

namespace TV
{
    class TV
    {
        private double _price;
        public double Price{
            set {
               if( value<1000){
                   _price=1000;
               }
               else
                _price=value;
            }
            get{
                return _price;
            }
        }
        public TV(){
            _price=0;
            Console.WriteLine("默认构造TV");
        }
        public TV(double price){
            _price=price;
            Console.WriteLine("默认构造TV");
        }

        
    }

    
}

SmartTV.cs

using System;
namespace TV
{
    class SmartTV : TV
    {
        public string Brand { set; get; }
        public string SmartLevel { set; get; }
        public SmartTV()
        {
            Brand = "不出名";
            Console.WriteLine("默认构造 SmartTV");
        }

        public SmartTV(string brand, double price)
        {
            Brand = brand;
            Console.WriteLine("用brand和price构造 SmartTV");
        }
        //允许构造函数之间相互调用
        public SmartTV(string brand, double price, string smartLevel) : this(brand, price)
        {
            //Brand=brand;
            SmartLevel = smartLevel;
            Console.WriteLine("用brand、price和SmartLevel构造 SmartTV");
        }

    }

}

Program.cs

using System;
namespace TV
{
    class Program
    {
        static void Main(string[] argc){
            SmartTV myTV=new SmartTV("海尔电视",2000,"很智能");

        }
        
    }
    
}

运行结果:

 

欢迎点赞、关注、收藏~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二琳爱吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值