c#面向对象初级编程.ppt
《c#面向对象初级编程.ppt》由会员分享,可在线阅读,更多相关《c#面向对象初级编程.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、构造函数,在类被实例化时首先执行的函数,构造函数,在类被实例化时首先执行的函数,主要是完成对象初始化操作。主要是完成对象初始化操作。在实例化类的对象时,系统自动调用该类的在实例化类的对象时,系统自动调用该类的构造函数进行初始化。构造函数进行初始化。使用构造函数请注意以下几个问题:使用构造函数请注意以下几个问题:构造函数的名字与类名相同。构造函数的名字与类名相同。构造函数不声明返回类型。构造函数不声明返回类型。一般地,构造函数总是一般地,构造函数总是publicpublic类型的。类型的。构造函数构造函数下面的例子示范了构造函数的使用下面的例子示范了构造函数的使用:class A class A
2、 int x=0,y=0,count;int x=0,y=0,count;public A()public A()count=0;count=0;public A(int vx,int vy)public A(int vx,int vy)x=vx;x=vx;y=vy;y=vy;2 2)实例构造函数)实例构造函数实例构造函数是实现对类中实例进行初始化的方法成员。实例构造函数是实现对类中实例进行初始化的方法成员。如:如:using System;using System;class Point class Point public double x,y;public double x,y;publ
3、ic Point()public Point()this.x=0;this.x=0;this.y=0;this.y=0;public Point(double x,double y)public Point(double x,double y)this.x=x;this.x=x;this.y=y;this.y=y;class Testclass Test static void Main()static void Main()Point a=new Point();Point a=new Point();Point b=new Point(3,4);/Point b=new Point(3,4
4、);/用构造函数初始化对用构造函数初始化对象象 3.2.5 析构函数析构函数析构函数,在对象被销毁之前最后执行的函数,析构函数,在对象被销毁之前最后执行的函数,主要是完成对象结束时的收尾操作。主要是完成对象结束时的收尾操作。析构函数的名字与类名相同,只是在前面加了析构函数的名字与类名相同,只是在前面加了一个符号一个符号“”。析构函数不接受任何参数,也。析构函数不接受任何参数,也不返回任何值。不返回任何值。资源的释放一般是通过资源的释放一般是通过“垃圾回收器垃圾回收器”自动完成的自动完成的,但具体来说,仍有些需要注意的地方:但具体来说,仍有些需要注意的地方:1 1、值类型和引用类型的引用其实是不
5、需要什么、值类型和引用类型的引用其实是不需要什么“垃垃圾回收器圾回收器”来释放内存的来释放内存的,因为当它们出了作用域后会自因为当它们出了作用域后会自动释放所占内存,因为它们都保存在栈(动释放所占内存,因为它们都保存在栈(StackStack)中;)中;2 2、只有引用类型的引用所指向的对象实例才保存在、只有引用类型的引用所指向的对象实例才保存在堆(堆(HeapHeap)中,而堆因为是一个自由存储空间,所以它并)中,而堆因为是一个自由存储空间,所以它并没有像没有像“栈栈”那样有生存期(那样有生存期(“栈栈”的元素弹出后就代表的元素弹出后就代表生存期结束生存期结束,也就代表释放了内存),并且要注
6、意的是,也就代表释放了内存),并且要注意的是,“垃圾回收器垃圾回收器”只对这块区域起作用。只对这块区域起作用。3.2.4 方法重载方法重载类中两个以上的方法类中两个以上的方法(包括隐藏的继承而来的方包括隐藏的继承而来的方法法),取的名字相同,只要使用的参数类型或者参数,取的名字相同,只要使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个数不同,编译器便知道在何种情况下应该调用哪个方法,这就叫做方法的重载。个方法,这就叫做方法的重载。其实,我们非常熟悉的其实,我们非常熟悉的ConsoleConsole类之所以能够实现对字符串进行格类之所以能够实现对字符串进行格式化的功能,就是因
7、为已定义了多个重载的成员方法:式化的功能,就是因为已定义了多个重载的成员方法:public static void WriteLinepublic static void WriteLine()();public static void WriteLine(int);public static void WriteLine(int);public static void WriteLine(float);public static void WriteLine(float);public static void WriteLine(long);public static void WriteL
8、ine(long);public static void WriteLine(uint);public static void WriteLine(uint);public static void WriteLine(char);public static void WriteLine(char);public static void WriteLine(bool);public static void WriteLine(bool);public static void WriteLine(double);public static void WriteLine(double);public
9、 static void WriteLine(char);public static void WriteLine(char);public static void WriteLine(string);public static void WriteLine(string);public static void WriteLine(Object);public static void WriteLine(Object);public static void WriteLine(ulong);public static void WriteLine(ulong);public static vo
10、id WriteLine(string,Object);public static void WriteLine(string,Object);public static void WriteLine(string,Object);public static void WriteLine(string,Object);public static void WriteLine(char,int,int);public static void WriteLine(char,int,int);public static void WriteLine(string,Object,Object);pub
11、lic static void WriteLine(string,Object,Object);public static void WriteLine(string,Object,Object,Object);public static void WriteLine(string,Object,Object,Object);案例案例案例案例:学生类中包含有学生姓名、性别、年龄、体重等信息。:学生类中包含有学生姓名、性别、年龄、体重等信息。我们比较学生之间的年龄和体重。我们比较学生之间的年龄和体重。目标目标目标目标:说明重载的使用基本方法:说明重载的使用基本方法步骤步骤步骤步骤:1 1、启动、
12、启动VS.NETVS.NET,新建一个控制台应用程序,名称填写为,新建一个控制台应用程序,名称填写为“StudentCompareTest”“StudentCompareTest”,位置设置为,位置设置为“c:CSharpSampleschp3”“c:CSharpSampleschp3”。2 2、在代码设计窗口中编辑、在代码设计窗口中编辑Class1.csClass1.cs。在其中的代码如下:。在其中的代码如下:using System;using System;namespace StudentCompareTest namespace StudentCompareTest class St
13、udent/class Student/定义学生类定义学生类 public string s_name;public string s_name;public int s_age;public int s_age;public float s_weight;public float s_weight;public Student(string n,int a,float w)public Student(string n,int a,float w)s_name=n;s_name=n;s_age=a;s_age=a;s_weight=w;s_weight=w;public int max_ag
14、e(int x,int y)public int max_age(int x,int y)if(xy)return x;if(xy)return x;else return y;else return y;public float max_weight(float x,float y)public float max_weight(float x,float y)if(xy)return x;if(xy)return x;else return y;else return y;class Testclass Test public static void Main()public static
15、 void Main()Student s1=new Student(Mike,21,70);Student s1=new Student(Mike,21,70);Student s2=new Student(John,21,70);Student s2=new Student(John,21,70);if(s1.max_age(s1.s_age,s2.s_age)=s1.s_age)if(s1.max_age(s1.s_age,s2.s_age)=s1.s_age)Console.WriteLine(0s age is bigger Console.WriteLine(0s age is b
16、igger than 1s,s1.s_name,s2.s_name);than 1s,s1.s_name,s2.s_name);elseelseConsole.WriteLine(0s age is smaller Console.WriteLine(0s age is smaller than1s,s1.s_name,s2.s_name);than1s,s1.s_name,s2.s_name);if(s1.max_weight(s1.s_weight,s2.s_weight)=s1.s_weight)if(s1.max_weight(s1.s_weight,s2.s_weight)=s1.s
17、_weight)Console.WriteLine(0s weight is Console.WriteLine(0s weight is bigger than1s,s1.s_name,s2.s_name);bigger than1s,s1.s_name,s2.s_name);elseelseConsole.WriteLine(0s weight is Console.WriteLine(0s weight is smaller than1s,s1.s_name,s2.s_name);smaller than1s,s1.s_name,s2.s_name);5 5、按、按Ctrl+F5Ctrl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 面向 对象 初级 编程
限制150内