构造函数

c++的构造函数极其调用(无参构造函数,有参构造函数,拷贝构造函数) 1.c++编译器会自动调用构造函数//构造函数(与类名相同) //析构函数:没有参数也没有任何返回类型,被自动调用 #include<iostream> using namespace std; class Test { public: Test();//无参构造函数 ~Test();//析构函数:先创建的对象后释放 void print() { cout <<... 阅读详情
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 测试
{
    class Students
    {   //声明私有字段提高访问级别
        private string stuNum;
        private string stuName;
        private int age;
        private string sex;
        //设置属性(通过)
        public string StuNum
        {
            //底层的get方法
            /*
             public string get_StuNum()
             {
                return this.stuNum; 
             }
             */
            get
            {
                return stuNum;
            }
            //底层的set方法
            /*
             public void set_StuNum(string value)
            {
                this.stuNum = value;
            }
            */
            set
            {
                this.stuNum = value;
            }
        }
        public string StuName
        {
            get
            {
                return stuName;
            }
            set
            { 
                //通过设置起到了对数据的保护
                if (value.Length > 0 && value.Length < 5)
                {
                    this.stuName = value;
                }
                else
                {
                    Console.WriteLine("中国人的名字没有那么长!");
                    return;
                }
            }
        }
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (age > 0 || age < 150)
                {
                    this.age = value;
                }
                else
                {
                    Console.WriteLine("你输入的年龄不合法!");
                }
               
            }
        }
        public string Sex
        {
            get
            {
                return sex;                      
            }
            set
            {
                if (value == "男" || value == "女")
                {
                    this.sex = value;
                }
                else
                { 
                     Console.WriteLine("你输入的性别有误!");
                     return;
                }
            }
        }
        //无参构造函数
        public Students()
        { }
        //含有三个参数的构造函数
        public Students(string stuNum,string stuName,int age) 
        {
            this.StuNum = stuNum;//this指当前对象
            this.StuName = stuName;
            this.Age = age;
        }
        //含有四个参数的构造函数
        public Students(string stuNum,string stuName,int age,string sex)
        //用含有四个参数的构造函数去调用含有三个参数的构造函数
            :this(stuNum,stuName,age)
        {
            this.Sex = sex;
        }
        //由此可以说明构造函数可以重载
        public void Tell()
        {
            Console.WriteLine("学号为" + stuNum + "的学生叫" + stuName + "今年" + age + "岁,是名" + sex + "同学");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 测试
{
    class Program
    {
        static void Main(string[] args)
        {
            //快速实例化含有四个参数的对象stu1
            Students stu1 = new Students("2010181001","tom",222,"男");
            //new关键字起到了两个作用1. new Students给stu1对象分配了内存空间,将stu1存放在棧上,实际上代表的是Students在堆上的地址 2.【小括号()】调用构造函数Students

            stu1.Tell();
            //快速实例化含有三个参数的对象stu2,通过参数的个数与类型找到相应的构造函数
            Students stu2 = new Students("2010181002", "lucy", 19);
            stu2.Tell();
            Console.ReadLine();
        }

    }
}

错误或者不当之处望各位大侠指正

构造函数:

1.构造函数是一种特殊的方法,能快速的给类内部字段初始化。不带任何参数的构造函数称为“默认构造函数”。无论何时只要使用了new运算符实例化对象,并且不为new提供任何参数,就会调用默认构造函数。每个类都有构造函数,及时没有声明,编译器也会自动为我们提供一个默认构造函数。在访问一个类的时候,系统最先执行构造函数中的语句。实际上,任何构造函数的执行都隐式的调用了系统提供的默认构造函数base()。

如声明如下的构造函数:

public Students(...){...}                等价于: public Students(...):base(){...}

2.特点:* 一个构造函数必须与类同名

               * 没有返回值,所以不用写void

               *一般情况下构造函数总是public类型。若声明为private类型,表明类不能被实例化,通常用户只含有静态成员的类

3.构造函数可以被继承

【Coze 扣子案例】第 23 期・商业篇:一键获取精准商机,自动化招标信息查询与分析 通过地区和项目类型等多维度组合查询全国招标信息网数据,实现招标公告的快速定位。自动解析招标公告内容,提取关键信息,并生成结构化摘要。帮助企业高效获取精准商机,提升市场竞争力,降低人工成本,解决 “信息过载” 与 “精准匹配难” 的双重问题。 阅读详情

相关推荐

三极管稳压电路仿真分析

Z1的负极连接到三极管的基极,三极管发射极E是输出,形成了一个射极跟随器,也就是说,E极的电压随着B电压变化而变化,但BE之间有一个压降,一般硅管0.7V左右,假设B极是6.7V,那E极就是6.7-0.7=6V,所以就有一个公式VOUT=Vz-Vbe,可以根据VOUT来选择合适的稳压管。从稳压管的SPEC中我们可以看到,Vz@Izt这个参数,指在Izt=20mA时,稳压管的稳压值Vz=5.1V,也就是说流过稳压管的电流在20mA以上,稳压效果最佳。三极管导通之后,E点电压会升高,当升高到Vbe。

U_YAO的博客 2325

Effective Java3 Item2:当构造函数有多个参数时,考虑使用构建器(内容及笔记)

在设计构造函数或静态工厂的类时,建造者模式是一个很好的选择,特别是当许多参数是可选的或具有相同类型时。与可伸缩构造函数相比,使用构建器客户端代码更容易读写,而且构建器比 JavaBean 更安全。 静态工厂和构造函数都有一个局限:它们不能对大量可选参数做很好的扩展。以一个类为例,它表示包装食品上的营养标签。这些标签上有一些字段是必需的,如:净含量、毛重和每单位份量的卡路里,另有超过 20 个可...

bulibuqiqin的博客 247

雷达回波仿真

文章目录前言一、基础理解1.慢时间维度和快时间维度2.脉冲压缩3.MTI4. 脉冲多普勒处理5.cacfar检测二、具体流程1.产生回波信息加入目标时延以及噪声2.解调回波得到基带信号3.脉冲压缩 MTI MTD cafar检测 前言 雷达算法仿真学习,主要流程包括生成目标回波,将基带信号加在载波上其次是加上目标信息和干扰信号后发射,解调回波信号得到基带信号然后MTI,MTD,最后再检测。 一、基础理解 1.慢时间维度和快时间维度 连续M个脉冲回波经过相干解调之后的基带数据形成的一个二维数据矩阵,.

qq_42961235的博客 1万+

C#试题

1.   关于C# 中的结构,一下说法中错误的是()。(选择一项) A :结构可以有构造函数               B :结构体内可以有字段 C :结构体内可以有方法               D :结构体内可以被继承 2. 在C# 编程中,访问修饰符控制程序对类中成员的访问,如果不写访问修饰符,类的默认访问类型是(b)。 A  public     B private     C...

weixin_34200628的博客 1840

从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点)

本文详细介绍了如何使用海康VisionMaster完成首个字符识别项目,涵盖从环境搭建、图像预处理到系统集成的完整流程。特别分享了Blob分析配置、字符识别优化等实战技巧,帮助开发者避开常见陷阱,快速掌握VisionMaster的基本操作,提升工业自动化场景下的字符识别效率。

weixin_29313423的博客 672

华为OD机试双机位C卷:日志排序 (Py/C/C++/Java/Js/Go)

华为OD机试双机C卷真题【日志排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-日志排序。

qq_45776114的博客 1754

为什么构造函数可以是private呢?

java版: 构造函数为private的类不能被替他类实例化和继承,但本类中可以初始化/* * To change this template, choose Tools | Templates * and open the template in the editor. */package pattern.singleton;/** * * @author

学习笔记 1831

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

此时我们的卡顿优化基本完成了,我们应该要考虑内存是否会泄漏,如果大家不知道哪些需要回收可以用leakcanary和android profiler进行内存检测,看代码有没有内存泄漏。

龚礼鹏的博客 2547

默认构造函数和构造函数重载

本文主要总结了默认构造函数的相关用法和构造函数重载,旨在能够对平时的项目开发起到一定的夯实基本功的作用,言简意赅,一目了然。首先需要了解构造函数是用来做什么?该类对象被创建时,编译器为对象分配内存空间,并自动调用该构造函数,由构造函数完成数据成员的初始化工作。一、默认构造函数 从代码层面进行分析 class testClass { public : testClass();//不带参数的默认

syeming的编程专栏 1万+

STM32N6570-DK识别STLINK问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2209

MATLAB GUI 水果成熟度分级系统设计与实现

本文基于 MATLAB GUI 设计并实现了一款水果成熟度分级系统,能够准确地评估水果的成熟程度。在实现过程中,我们运用了 MATLAB 中的函数实现对图像的处理和分析,同时使用 GUI 界面增加了系统的易用性。值得一提的是,在实际操作中,我们应该结合实际需求对系统进行相应的改进与完善,以满足不同领域和应用场景下的需求。实验结果表明,本系统可以有效地检测出水果的成熟度,并对其进行精准的评分。因此,本文设计并实现了一款基于 MATLAB GUI 的水果成熟度分级系统。三、MATLAB 代码实现。

uote_e的博客 708

【C++】构造函数调用规则 ( 默认构造函数 | 默认无参构造函数 | 默认拷贝构造函数 | 构造函数调用规则说明 )

一、默认构造函数 1、默认无参构造函数 2、默认拷贝构造函数 二、构造函数调用规则 1、构造函数规则说明 2、代码示例 - 只定义拷贝构造函数 3、代码示例 - 只定义有参构造函数

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 6483

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C++:构造函数与重载构造函数

本文主要总结了默认构造函数的相关用法和构造函数重载,旨在能够对平时的项目开发起到一定的夯实基本功的作用,言简意赅,一目了然。 一、构造函数的定义 构造函数是用来做什么?就是该类对象被创建时,编译器为对象分配内存空间,并自动调用该构造函数,由构造函数完成数据成员的初始化工作。 二、构造函数的分类 构造函数分为默认构造函数和重载构造函数。默认构造函数分为两类 1.默认构造函数 1)定义一个无参数的默认构造函数; 2)定义所有参数都有默认值的默认构造函数 2.重载构造函数 在一个类中可以定义多个构造函数,以便提

Warddamn的博客 8065

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C#构造函数

私有构造函数是一种特殊的实例构造函数,通常只包含静态成员的类中。当使用new关键字创建类的对象时,可以使用实例构造函数来初始化和创建类中的任意成员属性。静态构造函数用于初始化类中的静态数据或执行仅需一次的特定操作,静态构造函数将在创建第一个实例或引用类中的静态成员之前自动调用。在C#中,构造函数就是与类具有相同名称的成员函数,通常使用类中的构造函数来初始化类的成员属性。,程序就会出错,因为 Student 类的构造函数是私有静态函数,受其保护级别的。.静态构造函数会在实力构造函数之前运行;

Zhuxxxxx的博客 1万+

C++关于默认构造函数和无参构造函数

C++关于默认构造函数和无参构造函数 默认构造函数 在不提供任何构造函数的情况下,编译器给出一个不带参数的,不包含代码的构造函数。 #include<iostream> using namespace std; class A { public: int val; }; int main(){ A a; //这里调用的是默认构造函数 cout<<a.val<<endl; return 0; } 当已经提供了显式的构造函数,例如:

qq_38600065的博客 8824

C++所有类型的构造函数详解(默认构造函数、一般构造函数、拷贝构造函数、移动构造函数、类型转换构造函数、委托构造函数)

文章摘要:本文系统介绍了C++中的构造函数机制,包括6种主要类型:1)默认构造函数用于无参初始化;2)一般构造函数实现参数化初始化;3)拷贝构造函数处理对象复制(区分浅/深拷贝);4)移动构造函数(C++11)实现高效资源转移;5)类型转换构造函数支持隐式/显式类型转换;6)委托构造函数实现代码复用。每种构造函数详细说明了定义语法、特性及调用时机,并通过String类的完整示例演示了实际应用场景。文章特别强调了构造函数在对象生命周期管理中的核心作用,以及如何通过不同构造函数实现对象初始化、资源管理和类型转换

m0_53601985的博客 1611

C++ 构造函数

本文系统介绍了C++中各类构造函数的特点与用法。主要内容包括:默认构造函数(无参)、带参构造函数(支持重载和初始化列表)、拷贝构造函数(处理对象复制)、移动构造函数(C++11引入,优化资源转移)、委托构造函数(减少代码重复)以及显式构造函数(防止隐式转换)

平平无奇的小甜菜 1380

C++的构造函数

博主个人认为构造函数就是创建对象时 对即将创建的对象进行预处理的函数。这个预处理一般是给对象的成员进行赋值。自定义的默认构造函数就是无参的构造函数如图2_1所示。图2_1自定义默认构造函数有自定义的默认构造函数时,合成的默认构造函数就不会使用。自定义拷贝构造函数的声明如图4_1所示。图4_1自定义拷贝构造函数的定义如图4_2所示。图4_2在自定义拷贝构造函数中,面对指针类型的成员我们是可以设计深拷贝的逻辑的当然,针对有指针类型的类设计拷贝构造函数时,设计深拷贝逻辑是非常有必要的,

m0_61756911的博客 1910

C++构造函数之默认构造函数

参考博客:https://blog.youkuaiyun.com/china_jeffery/article/details/79288103#commentBox 以下内容是在上述博主的博客中提炼出来的: 一、默认构造函数的含义是啥: 主要就是:默认构造函数在调用的时候不需要显示传入实参的构造函数 二、默认的构造函数的分类 1、无参构造函数:就是没有参数的构造函数 class Sample ...

Littlehero_121的博客 3229

构造函数(一) 构造函数及重载

什么是构造函数 构造函数是初始化类对象的类成员函数。在c++中,当对象被创建时,自动调用构造函数,构造函数是该类的一个特殊成员的函数 构造函数和一般的成员函数有什么不同 构造函数的名称和类的名称完全相同 构造函数没有返回类型(包括void) 创建对象的时候自动调用构造函数 如果我们不写构造函数,编译器会自动创建一个没有参数的构造函数,函数主体内什么也没有(默认构造函数) 函数体中不能有...

2628

Kotlin 主构造函数与次构造函数的理解

遇到了Kotlin: Primary constructor call expected的报错 如果类有一个主构造函数,每个次构造函数需要委托给主构造函数, 可以直接委托或者通过别的次构造函数间接委托。委托到同一个类的另一个构造函数用this关键字即可 这句话就是说如果一个类有主构造函数,只要他还有次构造函数就必须调用主构造函数,方式可以不同 方式1:每个次构造函数都调用主构造函数 class Parent(name: String) { var age = 0; va...

本人很懒 5342

c++ 类的构造函数及子类的构造函数

类在创建的时候需要调用构造函数,假如对系统没有任何说明,则会调用系统默认的构造函数,在需要自行写构造函数的时候往往是一下几种情况: 1.构造函数中不带参数: #include<iostream> using namespace std; class Student{ public: void setID(int ID); int getID...

wybnmsl的博客 1929

什么是构造函数

构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员对象。 构造函数的特点: 构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)。 每个类可以有多个构造函数。当开发人员没有提供构造函数时,编译器在把源代码编译成字节码的过程中会提供一个没有参数默认的构造函数,但该构造函数不会执行任何代码。如果开发人员提供了构造函数,那么编译器就不会在创建默认的构造函数了。 构造函数可以...

君子为猿的博客 1万+
上一篇: 求助!!!“测试.Form1”不包含“Form1_Load”的定义,并且找不到可接受类型为“测试.Form1”的第一个参数的扩展方法“Form1_Load”(是否缺少 using 指令或程序集引用?)
xiaoyong21
博客等级 码龄15年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值