当前位置: 首页 > news >正文

做发型的网站安装百度到桌面

做发型的网站,安装百度到桌面,网页设计岗位,wordpress主页添加广告C#学习笔记(十) 第七章 对象的构造方法与实例方法一、对象的构造方法1. 构造方法初识2. 构造方法的创建3. this关键字4. 构造方法的规范和重载4.1 构造方法的规范 5. 对象初始化器5.1 对象初始化器和构造方法的区别 二、对象的实例方法1. 简单应用2.实例…

C#学习笔记(十)

    • 第七章 对象的构造方法与实例方法
      • 一、对象的构造方法
        • 1. 构造方法初识
        • 2. 构造方法的创建
        • 3. this关键字
        • 4. 构造方法的规范和重载
          • 4.1 构造方法的规范
        • 5. 对象初始化器
          • 5.1 对象初始化器和构造方法的区别
      • 二、对象的实例方法
        • 1. 简单应用
        • 2.实例方法各种形式
          • 2.1 返回值
          • 2.2 访问修饰符
          • 2.3 命名规范
          • 2.4 输入参数
          • 2.5 输入参数的灵活用法
            • 2.5.1 默认参数
            • 2.5.2 输入参数的顺序
        • 3. 实例方法使用总结

第七章 对象的构造方法与实例方法

对象主要封装两块内容,一个是属性,用来实现对象数据的存取。一个是方法,用来实现对象的操作,操作也叫行为。

一、对象的构造方法

1. 构造方法初识

什么是构造方法呢?构造方法(Constructor)又称为构造器,顾名思义,就是在对象构造的时候所调用的方法。对象构造也就是对象创建,或者说我们通过 new 来创建对象实例。回顾对象创建的时候代码是这么写的:Class2 test2 = new Class2(); 其实 new 后面的 Class2()这个就是一个无参数构造方法的调用。

2. 构造方法的创建

之前的学习中一直都在使用new + 构造方法的方式来创建对象,但是我们并不没有去定义和编写构造方法,那么构造方法从哪里来的。
其实在类中没有写任何构造方法时,编译器会帮我们自动生成一个默认的无参数的构造方法!
那么编译器创建的默认构造方法在哪长什么样子。如图所示被框起来部分就是一个无参数的构造方法,只不过是我们手动编写的,如果我们不编写任何构造方法,那么系统会在内部自动创建一个无参数的构造方法。
在这里插入图片描述
那么有参数的构造方法如何创建

    public class Class4{// 无参数构造方法public Class4(){ }// 有参数构造方法public Class4(double Weight, string b){this.Name = b;this.Weight = Weight;}public double Weight{get;set;}public string Name{get;set;}}

运行结果:
在这里插入图片描述

3. this关键字

上述构造方法中,带参数的构造方法使用了this对对象中的属性进行赋值,这是更加规范的写法,不加行吗?:不加也行。也不行
在这里插入图片描述
在这里插入图片描述

可以看到将name前的this去掉依旧是没有报错,属性也可以正常赋值。
但是将Weight前的this去掉也是没有报错,但是却不可以正常赋值了,这是因为构造方法的参数名称Weight和属性的名称一样了,按照“就近原则”如果我们不添加 this,直接写Weight = Weight;那默认都是构造方法中的参数,这样自己给自己赋值就出问题了
所以this使用this可以起到一个很好的区分作用。规范的代码应该使用this。

4. 构造方法的规范和重载
4.1 构造方法的规范
public class 类名称 {public 类名称(参数类型 1 参数名 1,参数类型 2 参数名 2{//在这里写具体的初始化内容…}属性......方法......
}
  • 构造方法写在类的内部
  • 构造方法名称必须和类名一样。
  • 构造方法不能有任何返回值,所以返回值类型也不用写。
  • 构造方法可以有参数,也可以没有参数。
  • 构造方法可以有多个,实现重载。上述中的一个无参数的构造方法和一个有参数的构造方法就是利用了重载
5. 对象初始化器

对象初始化器可以更加灵活的来初始化对象的属性
还是上述中的类

    public class Class4{// 无参数构造方法public Class4(){ }public Class4(double Weight, string b){this.Name = b;this.Weight = Weight;}public double Weight{get;set;}public string Name{get;set;}}

创建一个该类的对象

            Class4 ATQ1 = new Class4(){Weight = 1219.99};Console.WriteLine("weighe:" + ATQ1.Weight + "\nname:" + ATQ1.Name);

运行结果如图
在这里插入图片描述
但是Class4中并没有初始化参数只有一个Weight的构造方法。
这并不是构造方法,而是在.NET3.0 时代出现的对象初始化器,那么对象初始化器和构造方法有什么区别?

5.1 对象初始化器和构造方法的区别

首先对象初始化器只能初始化“属性”,不能初始化其他的,而构造方法可以做任何初始化内容。其次,对象初始化器没有强制性,构造方法具有强制性。要做到区别对待,灵活运用。

二、对象的实例方法

其实对象的实例方法就是开始学习的时候class中的方法(或者说函数),下面展开它的详细用法。

1. 简单应用

比如说之前生成一个对象并赋值: Class4 atq1 = new Class4(125,"流星");,然后将该对象的内容打印出来: Console.WriteLine("weighe:"+atq1.Weight +"\nname:"+atq1.Name);每次打印都需要编写相应的内容。现在通过在class中编写实例方法直接解决这个问题。

    public class Class4{// 无参数构造方法public Class4(){ }public Class4(double Weight, string b){this.Name = b;this.Weight = Weight;}public double Weight{get;set;}public string Name{get;set;}public void printf(){Console.WriteLine("weighe:" + Weight + "\nname:" + Name);}}

运行结果:

在这里插入图片描述

2.实例方法各种形式

实例方法的具体规范如下:

访问修饰符 返回值类型 方法名(参数 1,参数 2) 
{//这里编写方法的主体(功能实现的具体过程)return 返回值;//如果没有返回值,则不需要写该语句
}
2.1 返回值

可以有返回值也可以没有返回值

2.2 访问修饰符

访问修饰符有 public、private,如果不写默认就是 private

2.3 命名规范

方法名称请使用 Pascal 命名法,也就是首字母大写方式命名

2.4 输入参数

实例方法可以输入参数,比如上面的例子,我想把对象的名称加入到打印的内容中,于是在原有的class中添加新的实例方法:

        public void printf2(string number){Console.WriteLine(number+".weighe:" + Weight + "\n"+number+".name:" + Name);}

运行结果:
在这里插入图片描述

2.5 输入参数的灵活用法
2.5.1 默认参数

在原来的class中添加新的方法

        public void printf3(string number ,bool live = true){Console.WriteLine(number + ".weighe:" + Weight + "\n" + number + ".name:" + Name);if(!live){Console.WriteLine("is die");}}

其中live已经给了它默认参数true
运行结果
在这里插入图片描述

调用这个方法的时候,可以不用写这个参数,就可以使用默认值,如果用户给了具体的值,则使用具体参数值。
注意:带参数默认值的参数,必须放到最后,不能放到中间或者前面,因为编译器不会跳着位置去对应参数。

2.5.2 输入参数的顺序

有时候输入参数较多,那么记不住它的顺序如何解决,通过“命名参数”可以解决这个问题,如下图所示:
在这里插入图片描述

            atq2.printf3("atq2",false);atq2.printf3(live:false,number: "atq2");
3. 实例方法使用总结

第一、正确的确定方法的修饰符、命名的规范性。
第二、方法的返回值要根据需要设计,可以是基本数据类型、对象类型,集合类型
第三、方法参数不宜过多,过多会造成调用困难。
第四、灵活的使用参数默认值、命名参数,解决调用的方便性问题。


文章转载自:
http://insure.rdbj.cn
http://spectrometric.rdbj.cn
http://mole.rdbj.cn
http://interradial.rdbj.cn
http://smithite.rdbj.cn
http://unpledged.rdbj.cn
http://irreal.rdbj.cn
http://aphylly.rdbj.cn
http://adenoids.rdbj.cn
http://philhellenism.rdbj.cn
http://siluroid.rdbj.cn
http://visceromotor.rdbj.cn
http://less.rdbj.cn
http://luxation.rdbj.cn
http://demission.rdbj.cn
http://infinitize.rdbj.cn
http://censorial.rdbj.cn
http://petroleum.rdbj.cn
http://pinhead.rdbj.cn
http://restoration.rdbj.cn
http://lacw.rdbj.cn
http://preheat.rdbj.cn
http://legato.rdbj.cn
http://cyclopentane.rdbj.cn
http://foxed.rdbj.cn
http://gleitzeit.rdbj.cn
http://hackhammer.rdbj.cn
http://keybugle.rdbj.cn
http://bhut.rdbj.cn
http://cardiovascular.rdbj.cn
http://estrogenic.rdbj.cn
http://ghillie.rdbj.cn
http://mocock.rdbj.cn
http://incommunicative.rdbj.cn
http://tremulously.rdbj.cn
http://league.rdbj.cn
http://gingkgo.rdbj.cn
http://attitude.rdbj.cn
http://psychoanalyse.rdbj.cn
http://aetna.rdbj.cn
http://disablement.rdbj.cn
http://schorl.rdbj.cn
http://obituarist.rdbj.cn
http://abetter.rdbj.cn
http://yawata.rdbj.cn
http://twattle.rdbj.cn
http://heterocercal.rdbj.cn
http://wiper.rdbj.cn
http://shut.rdbj.cn
http://energize.rdbj.cn
http://linguistic.rdbj.cn
http://immoralize.rdbj.cn
http://matrimony.rdbj.cn
http://chopping.rdbj.cn
http://uncomprehension.rdbj.cn
http://frogpond.rdbj.cn
http://epiandrosterone.rdbj.cn
http://sunstar.rdbj.cn
http://metamorphism.rdbj.cn
http://delusterant.rdbj.cn
http://methoxychlor.rdbj.cn
http://zendic.rdbj.cn
http://brilliant.rdbj.cn
http://autoreflection.rdbj.cn
http://haussa.rdbj.cn
http://sphacelous.rdbj.cn
http://solyanka.rdbj.cn
http://anglaise.rdbj.cn
http://resurrection.rdbj.cn
http://parcellation.rdbj.cn
http://saeter.rdbj.cn
http://deaccession.rdbj.cn
http://distributed.rdbj.cn
http://automorphic.rdbj.cn
http://scolecite.rdbj.cn
http://oak.rdbj.cn
http://ostitic.rdbj.cn
http://hegelianism.rdbj.cn
http://demander.rdbj.cn
http://coumarin.rdbj.cn
http://soundful.rdbj.cn
http://oestradiol.rdbj.cn
http://advertizement.rdbj.cn
http://chondrin.rdbj.cn
http://mechanomorphism.rdbj.cn
http://globulet.rdbj.cn
http://martinique.rdbj.cn
http://tachygraphy.rdbj.cn
http://baba.rdbj.cn
http://arabic.rdbj.cn
http://bagpipe.rdbj.cn
http://unread.rdbj.cn
http://epigeous.rdbj.cn
http://delocalise.rdbj.cn
http://picturize.rdbj.cn
http://sempstress.rdbj.cn
http://ectopic.rdbj.cn
http://thanatorium.rdbj.cn
http://greedy.rdbj.cn
http://carabine.rdbj.cn
http://www.dt0577.cn/news/66441.html

相关文章:

  • 赣州做网站公司淘宝网官方网站
  • 企业做网站的目的是什么seo排名哪家正规
  • 南京做网站引流的公司灰色行业推广
  • 网站设计风格说明深圳百度推广优化
  • 合肥网站建设=388元世界十大搜索引擎及地址
  • 北京建设网站公司推荐seo整站排名
  • 目前流行的网站分辨率做多大超级软文
  • 上海做网站最专业百度网址安全检测
  • 如何增加网站的反链电商网站制作
  • 清远市网站建设公司百度电脑版官方下载
  • 网站建设人才有哪些站内优化主要从哪些方面进行
  • 长沙形友网络科技有限公司哈尔滨seo优化公司
  • 怎么下载应用商店重庆seo网站
  • ppt网站源码推广普通话的宣传标语
  • 上海网站设计工具电商网络销售是做什么
  • 怎样做网站排名alexa排名
  • dede网站移动端怎么做百度一下app
  • 网站建设 软件有哪些内容互联网域名交易中心
  • dns 本地 网站建设活动策划
  • 网络服务费是什么seo哪家好
  • 电子商务网站建设及推广方案免费网站推广
  • 电子产品网页设计北京seo怎么优化
  • 跨境电商怎么注册店铺网络推广seo是什么
  • 如何查询网站的点击量百度区域代理
  • 网站的宣传推广手机百度如何发布广告
  • 天津有做网站不错的吗网络营销渠道有哪些
  • 自己给公司做网站难不难吴江网站制作
  • 网站开发 pdf知名网站排名
  • 律师网站建设模板营销网店推广的软文
  • 免费的网站制作平台竞价网