资源描述:
《使用C#进行面向对象编程 第七章 类成员.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章类成员1本章内容类的成员数据成员方法构造函数析构函数this关键字封装属性27.1类的成员类的主要成员包括两种类型,即描述状态的数据成员和描述操作的函数成员数据成员包括成员变量、成员常量、事件函数成员包括方法、属性、构造函数、析构函数、索引器、运算符37.2数据成员成员变量静态成员变量成员常量4publicclassA{publicintdata;publicvoidfun(){data=20;}}Aa1=newA();a1.fun();System.Console.WriteLine(a1.data);成员变量是定义在类内部、方法之外的变量[修饰符]类型 成员变量名称[=初值];(
2、1)成员变量5publicclassA{publicintdata=10;publicvoidfun(){intdata=0;}}定义在方法中的变量只是局部变量,不是成员变量。类的成员变量和类中的局部变量可以重名。6publicclassA{publicstaticintdata=10;}(2)静态成员变量具有static修饰符的成员变量就是静态成员变量。静态成员变量也称为类变量,它被该类所有对象共享。(一)可以直接通过类名来访问静态成员变量。形式:类名.静态成员变量如果没有显式的初始化静态成员变量,则它会被自动初始化。System.Console.WriteLine(A.data);调用
3、不需要创建对象,就可以访问静态成员变量。7(二)在同一类中访问静态成员变量时,可省略类名注意:不能用对象直接访问静态成员变量,所有对象共享一个静态成员变量。8(3)成员常量publicclasstest{publicconstinta=10;}具有const修饰符的成员变量就是成员常量。成员常量的值必须在定义时就初始化,一旦定义就不可更改。9成员常量也是静态成员,访问时要通过类名访问System.Console.WriteLine(test.a);107.3方法方法的定义参数的传递方法的重载静态方法方法是定义在类中的函数。11(1)方法的定义[修饰符]类型标识符方法名(参数类型形式参数1,
4、…)若干条语句return返回值;返回值的类型如果不返回值,则用void局部变量,可见性仅限于方法内部{}一旦执行了return语句,则方法将结果返回给调用者,整个方法执行完毕。12(2)参数的传递4种类型的形式参数:值形参引用形参输出形参形参数组13值形参不带修饰符的形参是值形参值形参相当于方法内的局部变量在方法内对值形参的修改不会影响到实参14classTest{staticvoidSwap(intx,inty){//两数交换(值形参)inttemp=x;x=y;y=temp;}staticvoidMain(){inti=1,j=2;Console.WriteLine("Befores
5、wap,i={0},j={1}",i,j);Swap(i,j);Console.WriteLine("Afterswap,i={0},j={1}",i,j);Console.ReadLine();}}15classA{publicinti;}classtest{staticvoidAdd(Aa1){a1.i=a1.i+10;}staticvoidMain(string[]args){Aa2=newA();Add(a2);System.Console.WriteLine(a2.i);System.Console.Read();}}16输出形参用out修饰符声明的形参是输出形参,用于输出参数的
6、传递输出形参并不创建新的存储位置,它与对应的实参共用存储空间17classtest{staticvoidAdd(intnum1,intnum2,outintsum1){sum1=num1+num2;}staticvoidMain(string[]args){intsum2;Add(1,2,outsum2);System.Console.WriteLine(sum2);System.Console.Read();}}18引用形参用ref修饰符声明的形参是引用形参,用于输入和输出参数的传递引用形参并不创建新的存储位置,它与对应的实参共用存储空间19classTest{staticvoidSwa
7、p(refintx,refinty){//两数交换(引用形参)inttemp=x;x=y;y=temp;}staticvoidMain(){inti=1,j=2;Console.WriteLine("Beforeswap,i={0},j={1}",i,j);Swap(refi,refj);Console.WriteLine("Afterswap,i={0},j={1}",i,j);Console.ReadLine();}