c#重载、静态方法、构造函数析构函数课件_第1页
c#重载、静态方法、构造函数析构函数课件_第2页
c#重载、静态方法、构造函数析构函数课件_第3页
c#重载、静态方法、构造函数析构函数课件_第4页
c#重载、静态方法、构造函数析构函数课件_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

方法的格式既无参数也无返回值的方法,如: voidfun(){}有参数但无返回值的方法,如: voidfun(inta,charch){}无参数但有返回值方法,如: doublefun(){}既有参数又有返回值的方法,如: intfun(string[]s){}方法的格式既无参数也无返回值的方法,如:1方法中的参数(I)方法中参数的传递 值传递、引用传递-ref、输出参数-out,例: classTest{ staticvoidMain()

voidfun(refintx,refinty){ {

intt=x; inta=3,b=5;

x=y; newTest().fun(refa,ref

b);

y=t; Console.WriteLine("a="+a);

} Console.WriteLine("a="+a);

} } 将上面代码中的ref关键字去掉,就成了按值传递,再把ref换成out试试!方法中的参数(I)方法中参数的传递2方法中的参数(II)ref与out的区别:

1、ref必须在函数体外初始化。 2、out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。 3、两者在函数体的任何修改都将影响到外面。ref-接收外面的值out-向外界输出值方法中的参数(II)ref与out的区别:ref-接收3变长参数使用变长参数可以接收多个不确定个数的参数,用关键字params。变长参数必须位于形参列表的最后,而且只能是一维数组。params不能与ref

和out联用:staticvoidprint(paramsint[]a)

{Console.Write("有{0}个元素",a.Length);

foreach(intiina)

{Console.Write(i);}

}staticvoidMain(){int[]arr={3,9,2};print(arr);print(35,67,88,91,16);print();}变长参数使用变长参数可以接收多个不确定个数的参数,用关键字4方法的重载方法名相同,但方法中参数的个数、类型及顺序不同,即为重载方法的返回值不参与重载。如下: voidfun(intx); intfun(intx); voidfun(intx); intfun(intx,inty); voidfun(intx,doubley); voidfun(doubley,intx);不是重载,编译报错是重载,可以使用是重载,可以使用方法的重载方法名相同,但方法中参数的个数、类型及顺序不同,即5构造方法(I)完成对类实例对象的初始化工作。一般(通过方法的参数)用来对类的成员变量进行初始化操作。有以下几点特征: 1、具有与类相同的名称

2、没有返回值类型

3、该方法内部没有return语句当一个新的对象生成时,构造方法由系统自动调用,而且只执行一次 例:战士们进入阵地时,每个人都会自动完成卧倒、瞄准等动作,指挥官没有必要一一告诉构造方法(I)完成对类实例对象的初始化工作。一般(通过方法的6构造方法(II)每个类都必须要有构造方法如果我们在类中没有显式地定义构造方法,系统将提供一个不带参数的、什么都不做的构造方法一旦我们定义

了构造方法,

系统将不再提

供默认的构造

方法classStudent{intid;stringname;

publicStudent(intid,stringname){this.id=id;=name;}}一旦在构造方法前面加上了void关键字,那么它将成为一个普通的成员方法!构造方法(II)每个类都必须要有构造方法classStud7构造方法的重载classStudent{publicintid=2;publicstringname="Tom";publicintage=21;publicStudent(intid,stringname,intage){this.id=id;=name;this.age=age;}publicStudent(intid,stringname){this.id=id;=name;}publicStudent(){}}//以下是主方法中的操作publicstaticvoidmain(String[]args){Studentstu1=newStudent();Studentstu2=newStudent(103,"Mike");Studentstu3=newStudent(107,"Mary",18);}含有三个参数的构造方法含有二个参数的构造方法无参构造方法构造方法的重载classStudent{//以下是主方法中8构造方法与this在一个构造方法中可以使用this关键字调用它的另一种重载形式,如: publicStudent(intid,stringname) { this.id=id; =name; } publicStudent(intid,stringname,intage)

:this(id,name)//此代码调用了上面的重载形式 { this.age=age; }构造方法与this在一个构造方法中可以使用this关键字调9析构方法以~符号开头,用于执行清除关闭工作不接收参数、没有返回值、没有修饰符析构方法不能重载一个类只能有一个析构方法在垃圾收集器抛弃一个对象之前,先调用析构方法不能手动调用,只能由垃圾器调用析构方法以~符号开头,用于执行清除关闭工作10静态成员在类中,用static修饰的静态成员从一开始就存在,而无须用new来创建;也就是说在类的对象产生之前,static成员就已经出现了;没有用static修饰的成员被称为“实例成员”无论创建多少类的实例对象,它们都共用同一个(组)static成员static成员只能用类名直接调用静态方法中不能使用this关键字静态成员在类中,用static修饰的静态成员从一开始就存在11静态与实例成员的相互调用静态方法不能调用实例成员实例方法可以调用静态成员静态成员空间实例空间实例空间实例空间……静态与实例成员的相互调用静态方法不能调用实例成员静态成员空间12装箱与拆箱是值类型与引用类型间的相互转换在C#中每一种类型都是从System.Object类派生而来的值类型转换成对象:装箱对象转换成值类型:拆箱 intmyInt1=28; objectmyObject=myInt1; //装箱 stringstr=myInt1.ToString(); //装箱 intmyInt2=(int)myObject; //拆箱object与System.Object是相同的装箱与拆箱是值类型与引用类型间的相互转换object与S13is运算符is运算符用于检查某一变量或对象是否与指定类型兼容,以确定是否可以进行相应的转换 staticvoidMain() { Testt=newTest(); Console.Write(20isint); //输出true Console.Write(20islong); //输出false Console.Write(tisTe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论