对象构造器的括号内是不是既可以是字段又可以是属性啊?

问题描述

举个例子:有个Cat类:publicclassCat{publicstringname;//name是字段privateintage;publicintAge//Age是属性{get{returnage;}set{age=value;}}}Catkitty=newCat{name="Kitty",Age=10};//这样既对字段赋值又对属性赋值正确吗?第二个问题:自定义一个带参数的构造函数就可以实现上述功能了,为什么还要再整个对象构造器出来啊?不是多此一举吗?

解决方案

解决方案二:
你说的对拉。根据需求来整。
解决方案三:
只要是pubic的都可以赋值,但一般情况下不建议public字段
解决方案四:
引用

第二个问题:自定义一个带参数的构造函数就可以实现上述功能了,为什么还要再整个对象构造器出来啊?不是多此一举吗?

当一个类有很多属性需要初始化,这种情况下写构造函数就太复杂了
解决方案五:
Catkitty=newCat{name="Kitty",Age=10};这不是初始化,这是采用空构造函数,然后立刻赋值,只是个语法糖而已,实际上等价于Catkitty=newCat();kitty.name="Kitty";kitty.Age=10;

如果你是一个类在初始化的时候需要赋值,那么应该提供相应的构造函数,比如下面的publicCat(){this.name="Kitty";this.Age=10;}

这样你只需要Catkitty=newCat();就可以了

时间: 2024-11-29 04:30:20

对象构造器的括号内是不是既可以是字段又可以是属性啊?的相关文章

word2013中怎样将尾注编号放在括号内

  将尾注编号放在括号内的步骤如下: 步骤一:首先打开microsoft office2013中的组件之一word,然后用word打开要编辑的文档. 步骤二: 然后点击[开始]下方工具栏中的[替换]按钮,或者使用组合键CTRL+H,弹出[查找和替换]对话框,如图所示 步骤三:在弹出的[查找和替换]对话框中将鼠标定位在[查找内容]中,然后点击下方的[更多]按钮 步骤四:然后点击[特殊格式],在弹出的菜单中选择[尾注标记],如图所示 步骤五:接着将光标定位在[替换为]一栏中,在该栏中输入英文半角状态

快速提取出Excel 2010单元格括号内的文字信息

  实例演示 ①我们打开一份Excel电子表格,我们要将C列里面括号内的内容提取到D列里面,单击D2单元格,输入下面的函数公式: =MID(C2,FIND("(",C2)+1,LEN(C2)-FIND("(",C2)-1) ②输入完成之后,按下Enter键,回车,得到结果深圳.如果大家得不到正确的结果,看看公式是不是英文半角状态下输入的,否则就会出错! ③依然是利用单元格填充的方法,完成余下的数据录入.这样,一份单元格括号里面的内容我们就已提取出来了. 公式说明 m

mssql中如何将参数传递到括号内

问题描述 mssql中如何将参数传递到括号内 我的数据库中一些表有数据,一些表无数据,我需要把有数据的表名称提取出来,但是不删除(仅仅提取表名称而已).写了以下这段话,求指正.没分悬赏了,感谢好心人.declare @id int@maxid int@name char(100)@sql nvarchar(max); set @id=1;select @maxid =max(id) from tablename; while @id<=@maxid beginselect @name=name

javascript-关于js中在函数对象构造器中定义对象方法的问题

问题描述 关于js中在函数对象构造器中定义对象方法的问题 为什么函数前要有this.changeName=changeName 我是个新手 谢谢了 解决方案 无关在函数前后,赋值是因为为了调用到person内部定义的changeName函数,要不访问不到.也就是为了实现下面 myMonther.changeName('Ballmer');//这么使用函数 解决方案二: changeName是个私有函数,外部是访问不到的,所以要想在外部能够访问到就必须给个外部能访问到的公有属性或者公有方法

js-正则表达式去除一段字符的“业务(asdasd)”这个值,括号内是任意的10个字符。

问题描述 正则表达式去除一段字符的"业务(asdasd)"这个值,括号内是任意的10个字符. 一串字符中,例如:啊飒飒大神大神业务(asdasd)阿萨达速度,我想把"业务(asdasd)"replace掉,括号内的值是任意的10个字符,这个正则怎么写? 先谢谢各位大神了. 我的账号上没C币了,还望各位大神海涵啊... 解决方案 var s = '啊飒飒大神大神业务(asdasd)阿萨达速度业务(asdasd)feaa' s = s.replace(/业务([^)]+

visual studio-C++类将类的构造器设置为内联的,然后main函数和类的实现不在一个.cpp文件中则会报错

问题描述 C++类将类的构造器设置为内联的,然后main函数和类的实现不在一个.cpp文件中则会报错 我在测试书上的例子时,按书上把类的构造器前加了inline,main函数和类的实现不在同一个文件中,在测试时报了如下错误: 1>Main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall UserProfile::UserProfile(void)" (??0UserProfile@@QAE@XZ),该符号在函数 _main 中

可以通过构造函数给私有字段赋初值,但不能通过对象构造器给私有字段赋初值?

问题描述 问题①可以通过构造函数给私有字段赋初值,但不能通过对象构造器给私有字段赋初值?问题②在类被实例化时,可以通过对象构造器给本类的静态字段赋值吗?问题③一个非静态类里有个静态字段,在main()函数里,是不是即可以先实例化这个类,然后通过"类名.静态字段名"的方式给静态字段赋值,也可以在实例化这个类之前,用"类名.静态字段名"的方式给静态字段赋值??谢谢啊 解决方案 解决方案二:1.是的,私有的不会出现在构造器里2.可以,静态字段要公有的3.静太的不用通过实列

如何读取括号内的字符串

问题描述 就是要读取"("到")"结束字符串,比如字符串"大幅度(12345)asp.net".结果读取的是12345括号内的. 解决方案 解决方案二:stringstr1="大幅度(12345)asp.net";str1=str1.SubString(str1,str1.indexOf("(")+1,str1.indexOf(")")-str1.indexOf("("

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

原文:php函数.类和对象以及类的封装.继承.类的静态方法.静态属性 1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo '<pre/>'; var_dump($var); } 2.类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person { //私有属性 privat