《第4章-面向对象基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章-面向对象基础ppt课件.ppt(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效第4章 面向对象基础类与对象构造方法this关键字static关键字让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 目录4.34.3访问修饰符4.44.4构造方法4.14.1面向对象的概念4.24.2类与对象4.54.5this关键字4.64.6索引器4.74.7垃圾回收4.84.8static关键字4.94.9嵌套类匿名类4.10对象初始化器4.11让IT教学更简单,让IT学习更有效面向对象是在对真实系统建模的基础上的一个软件开发方法。面向对象的程序由类和对象组成。让我们了解这些术语类和对象。面向对象的
2、方法面向对象的方法让IT教学更简单,让IT学习更有效Toyota CamrySuzuki RenoHonda Acura对象对象 类类类类汽车让IT教学更简单,让IT学习更有效对象对象 现实世界中所有的事物都是对象 对象都具有某些特征,并展现某些行为让IT教学更简单,让IT学习更有效长度、宽度、颜色、速度、类型等是对象的属性,属性值表明了对象的状态对象对象让IT教学更简单,让IT学习更有效车的位置定义其状态车的位置定义其状态车的运动定义其行为车的运动定义其行为车号车号 XX 4C 4546显示车的标识显示车的标识对象的身份对象的身份对象的行为(方法)对象的行为(方法)汽车的起动、加速、减速、停
3、止等是对象自身的动作称为对象的方法让IT教学更简单,让IT学习更有效对象属性型号价格里程行为起动停车行驶属性车轮数量档的数量行为加速换档刹车属性名称颜色品种行为摇尾巴吃东西犬 吠 让IT教学更简单,让IT学习更有效车闪灯来向另一辆车传递消息通过消息实现通过消息实现对象交互对象交互注意:通过方法调用实现消息发送让IT教学更简单,让IT学习更有效 对象从文字上理解为“具体的事情”,人的感 观能够感觉到它。 对象具有以下特性: 对象有状态(属性和值) 对象可以显示行为(自身行为) 对象有一个唯一的身份(标识)面向对象的基础面向对象的基础让IT教学更简单,让IT学习更有效类是具有相同属性和方法的对象的
4、抽象(即对象的共性)。在计算机中类就是一种数据结构,是一种特定的数据组织形式。它包含属性;方法。 让IT教学更简单,让IT学习更有效4.1 面向对象的概念什么是面向对象?什么是面向对象?面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。面向对象的三大特征面向对象的三大特征1、封装性、封装性封装是面向对象的核心思想,它将对象的特征和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。例如,用户使用电脑,只需要使用手指敲键盘就可以了,无需
5、知道电脑内部是如何工作的,即使用户可能碰巧知道电脑的工作原理,但在使用时,并不完全依赖电脑工作原理这些细节。让IT教学更简单,让IT学习更有效4.1 面向对象的概念2、继承性、继承性继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个表示汽车的类,该类中描述了汽车的普通特性和功能,而表示轿车的类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加表示轿车特性的方法就可以了。3、多态性、多态性多态性指的是同一操作用于不同的对象,会产生不同的执行结果。例如,当听到“Cut” 这个单
6、词时,理发师的表现是剪发,演员的行为表现是停止表演,不同的对象,所表现的行为是不一样的。让IT教学更简单,让IT学习更有效程序设计语言中如何实现封装?如何创建类和对象?让IT教学更简单,让IT学习更有效 类和对象的创建 举例 学生管理系统 中对学生进行管理,一个学生有学号、姓名、年龄,能实现对学生信息的赋值和输出 编写一个students类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:使用成员函数实现对数据的输出;使用函数实现对数据的输入。让IT教学更简单,让IT学习更有效访问修饰符 class 类名 访问修饰符 成员;对
7、象创建类名 对象名; 对象名=new 类名()让IT教学更简单,让IT学习更有效4.2 类与对象 4.2.1 类的定义类的定义什么是类?什么是类?如何定义一个类?如何定义一个类?类是对象的抽象,它用于描述一组对象的共同特征和行为。类中可以定义字段和方法,其中字段用于描述对象的特征,方法用于描述对象的行为。在下面这段代码中定义了一个Person类,其中,Person是类名,age是字段,Speak()是方法。在Speak()方法中可以直接访问age字段。 public class Person /定义定义Person类,类,public为为访问修饰符访问修饰符 public int age; /
8、定义定义int类型的字段类型的字段age public void Speak() /定义定义 Speak() 方法方法 Console.WriteLine(大家好,我今年大家好,我今年 + age + 岁岁!); 让IT教学更简单,让IT学习更有效4.2 类与对象 4.2.2 对象的创建与使用对象的创建与使用应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在C#程序中可以使用new关键字来创建对象,具体格式如下:例如创建Person类的实例,具体代码如下:上面的代码中,“new Person()”用于创建Person类的一个实例对象,“Person p”则是声明了一个
9、Person类型的变量p。中间的等号用于将Person对象在内存中的地址赋值给变量p,这样变量p便持有了Person对象的引用。类名类名 对象名称对象名称 = new 类名类名();Person p = new Person();让IT教学更简单,让IT学习更有效4.2 类与对象 4.2.2 对象的创建与使用对象的创建与使用内存中变量p和对象之间的引用关系如下图所示。在创建Person对象后,可以通过对象的引用来访问对象所有的成员,具体格式如下:对象引用对象引用.对象成员对象成员让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效课堂练习 编程程序编程程序 定义日期类型定义日期
10、类型Date。要求有以下面成员:。要求有以下面成员:年、月、日变量(私有),一个实现年、年、月、日变量(私有),一个实现年、月、日单独的输入月、日单独的输入void input(int year,int month,int day),实现打印方法成员,该,实现打印方法成员,该方法要按照方法要按照“XXXX年年XX月月XX日日”格式输出格式输出日期。日期。让IT教学更简单,让IT学习更有效访问修饰符用法 让我们举例来了解它们的用法Abstract .prj让IT教学更简单,让IT学习更有效访问修饰符程序内的其他类程序内的子类另外一个程序中的类另外一个程序中的子类public privatepro
11、tected internal Protectedinternal Internal在程序集内使用,Protected Internal程序集的子类也中可见Default与private等价让IT教学更简单,让IT学习更有效访问修饰符在上一个小节中出现的关键字private和public都属于修饰符,用于限定外界对类和方法的访问权限。在C#中,访问修饰符共有四种,分别是public、protected、internal、private,使用这四种访问修饰符可以组成五个可访问级别,具体如下:public:最高访问级别,访问不受限制。protected:保护访问级别,受保护的成员可由自身及派生类访
12、问。internal:内部访问级别,只有在同一程序集中,内部类型或者成员才可访问。protected internal:内部保护级别,访问仅限于当前程序集,可由自身及派生类访问。private:私有访问,最低访问级别,私有成员只有在声明它们的类和结构中才可访问。让IT教学更简单,让IT学习更有效思考类的私有成员的值 ,如何在类外 访问?让IT教学更简单,让IT学习更有效课后思考 使用private修饰符后,使用者便无法直接访问它们,通过什么办法采用获得private修饰的成员变量的值提示:1、通过方法返回获取值 2、通过建立property (属性)让IT教学更简单,让IT学习更有效4.2 类
13、与对象 4.2.4 属性属性在设计一个类时,应该对字段的访问作出一些限定,不允许外界随意访问,这时就可以使用属性。在程序中,使用属性封装字段时,需要将字段访问级别设为private,并通过属性的get和set访问器来对字段进行读写操作,从而保证类内部数据安全。读写属性即同时有get、set访问器的属性,具体语法格式如下:属性的应用属性的应用属性的分类属性的分类1、读写属性、读写属性public 数据类型 属性名 get /返回参数值 set /设置隐式参数value给字段赋值 让IT教学更简单,让IT学习更有效类的属性类的属性使用类的属性使用属性声明:属性声明: class 类名类名 修饰符修
14、饰符 数据类型数据类型 属性名属性名 get ; set ; 让IT教学更简单,让IT学习更有效课堂练习 定义日期类型定义日期类型Date。要求有以下面成员:。要求有以下面成员:年(年(myear)、月)、月(mmonth)、日、日(mday)变量(私有),定义变量(私有),定义 年年,月,日的属性,月,日的属性,一个实现年、月、日单独的输入一个实现年、月、日单独的输入void input(int year,int month,int day),实现,实现打印方法成员,该方法要按照打印方法成员,该方法要按照“XXXX年年XX月月XX日日”格式输出日期。主函数格式输出日期。主函数 需要需要通过属
15、性赋值的方式实现通过属性赋值的方式实现 对对 私有数据成私有数据成员的访问。员的访问。让IT教学更简单,让IT学习更有效 注意:属性 一般对应一个私有数据成员 get 方法中的 return返回一个值让IT教学更简单,让IT学习更有效4.2 类与对象 4.2.4 属性属性只读属性即只有get访问器,具体语法格式如下:2、只读属性、只读属性public 数据类型 属性名 get /返回参数值 只写属性即只有set访问器,具体语法格式如下:3、只写属性、只写属性public 数据类型 属性名 set /设置隐式参数value给字段赋值 让IT教学更简单,让IT学习更有效输入一个正整数repeat
16、(0repeatnum2?num1:num2;public float Max(float num1,float num2)/参数类型不同return num1num2?num1:num2;class MaxCalstatic int Main(string args1)CalMax cal=new CalMax();Console.WriteLine (0,cal.Max(5.4f,9.7f);Console.WriteLine (0,cal.Max(5,9); Console.ReadLine(); return 0;让IT教学更简单,让IT学习更有效 在上例中,类中有多个同名的函数,但函
17、数的签名不同:参数的个数参数的类型参数顺序不同称作:方法的重载,也就是类的静态多态仅返回值不同的同名方法不是方法重载,是不允许的让IT教学更简单,让IT学习更有效ypublic int Max(int num1,int num2)return num1num2?num1:num2;public float Max(float num1,float num2)/参数类型不同return num1num2?num1:num2;public int Max(int num1,int num2)return num1num2?num1:num2;public float Max(int num1)/参
18、数个数不同return num1num2?num1:num2;public int Max(float num1,int num2)return num1num2?num1:num2;public float Max(int num1,float num2)/参数的顺序不同return num1num2?num1:num2;让IT教学更简单,让IT学习更有效多学一招 快速判断方法重载快速判断方法重载 方法重载可以让程序变得更加灵活,要想在程序中快速的判断方法重载,可以按照以下步骤进行,具体如下: 1、将方法名前面的修饰符、返回类型以及方法体去掉。 2、将方法参数列表中的参数名去掉。 3、将两个
19、方法做比较,首先名称不相同一定不是重载方法,其 次如果名称相同,其他部分不相同的构成重载,相同的则不 是重载的方法。让IT教学更简单,让IT学习更有效多学一招 快速判断方法重载快速判断方法重载 接下来通过具体的代码来演示如何使用上述三个步骤判断方法重载,示例代码如下: 上述代码中定义了4个同名的方法,下面将方法中的方法体和方法名前面的修改符去掉,得到下面的的代码: 然后将参数列表中的参数名字去掉,得到下面的代码: 这样一来判断方法重载就非常容易了,以上不相同的方法就可以构成重载。因此,方法3和方法4就不能构成方法重载。方法重载的关键因素是方法名和参数,在C#中由方法名和参数列表(参数的类型和顺
20、序)组成的部分称为方法的签名,在判断方法是否构成重载的,只需比较方法的签名部分即可。让IT教学更简单,让IT学习更有效课堂练习 设计一个类,编写compare方法重载实现两个整数比较大小和两个字符比较大小,返回 true或false让IT教学更简单,让IT学习更有效课堂练习 说出 输出结果 让IT教学更简单,让IT学习更有效提出问题 前面我们学习了类的方法,通过实例化对象并调用对象的方法给对象的成员变量赋初值o 能不能在创建对象的同时给成员变量赋初值呢?让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 构造函数和析构函数让IT教学更简单,让IT学习更有效课前练习 定义1个学
21、生类,具有string类型数据成员 id,name和int数据成员 age,通过void input(string id,string name,int age)给数据成员赋值,通过void display()输出数据成员的值 并定义相应对象进行调用实现输入和输出操作让IT教学更简单,让IT学习更有效什么是构造函数 我们以一个例子来说明让IT教学更简单,让IT学习更有效4.4 构造方法 4.4.1 构造方法的定义构造方法的定义在一个类中定义的方法如果同时满足以下三个条件,该方法便是一个构造方法,具体如下: 方法名与类名相同。 在方法名的前面没有返回值类型的声明。 在方法中不能使用return语
22、句返回一个值。让IT教学更简单,让IT学习更有效4.4 构造方法与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。在创建对象时,可以通过调用不同的构造方法来为不同的属性进行赋值。 4.4.2 构造方法的重载构造方法的重载让IT教学更简单,让IT学习更有效结论构造函数是当你创建一个类的实例的时候被调用的一种特殊的方法。构造函数被用于初始化类成员。构造函数的名字与包含它的类的名字一样。使用public关键字(允许初始化对象)构造函数无返回值默认构造函数(没有显式指明构造函数)让IT教学更简单,让IT学习更有效静态构造函数 如何在创建对
23、象的时候要初始化静态成员变量呢?可以使用静态构造函数让IT教学更简单,让IT学习更有效结论 静态构造函数是无参构造函数 静态构造函数无访问修饰符 静态构造函数在运行时仅调用一次 先调用静态构造函数,后调用非静态构造函数让IT教学更简单,让IT学习更有效析构函数 对象销毁时,将自动调用析构函数 类仅有一个析构函数 类名() 对象的销毁由系统垃圾回收器自动完成让IT教学更简单,让IT学习更有效对象产生到销毁(对象的生命周期)让IT教学更简单,让IT学习更有效using System;Namespace objects class cal public cal() Console.WriteLine
24、(“Constructor Invoked”); cal() Console.WriteLine(“Destructor Invoked”); public static void Main(string args) Console.WriteLine(“Main() Begins”); cal c1=new cal(); Console.WriteLine(“Inner Block Begins”); cal c2=new cal(); Console.WriteLine(“Inner Block ends”); Console.WriteLine(“Main() ends”); 第1步第2
25、步第3步第4步第5步第6步第7步第8步让IT教学更简单,让IT学习更有效class CalculateSquare int number; public void Square(int number) Console.WriteLine(number); number *= number; Console.WriteLine(number); Console.WriteLine(this.number); public CalculateSquare() number = 10; Square(number); static void Main(string args) CalculateSq
26、uare cal = new CalculateSquare(); Console.ReadLine(); 课堂练习-输出结果让IT教学更简单,让IT学习更有效课堂练习-输出结果 class Calculate static int number1; public void Display(int number) Console.WriteLine(number); public Calculate() number1+; Display(number1); static Calculate() /静态构造函数先执行 number1 = 10; number1+; static void Ma
27、in(string args) Calculate Cal1 = new Calculate(); Calculate Cal2 = new Calculate(); Console.ReadLine(); 让IT教学更简单,让IT学习更有效 编程: 定义日期类型Date。要求有以下面成员:年、月、日变量,重载的构造方法,一个实现年、月、日单独的输入,一个实现从系统时间里读出年月日(System.DateTime.Now.Year, System.DateTime.Now.Month, System.DateTime.Now.Day),并实现打印方法成员,该方法要按照“XXXX年XX月XX日”
28、格式输出日期。让IT教学更简单,让IT学习更有效课堂练习已知一个名为MyRectangle的矩形类。类中有4个私有的整型成员变量,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中有三个成员函数:int getW():计算矩形的宽度;int getH():计算矩形的高度;Area():计算矩形的面积;完成类中的两个构造函数,其中,无参构造函数将矩形两个角的坐标均设为0。有参构造函数根据参数初始化举行两个顶点的坐标。编写主函数,创建2个对象(一个有参,一个无参),输出2个对象的宽度、高度和面积让IT教学更简单,让IT学习更有效静态变量与静态函数Abstract1
29、.prj让IT教学更简单,让IT学习更有效using System;class Method public int i=5; public void addi() i=i+1; class test static void Main() Method a=new Method(); a.addi(); Method b=new Method(); b.addi(); Console.WriteLine(“0,1”,a.i,b.i); /public static int i=5;/Console.WriteLine(0,Method.i);读程序写出输出结果让IT教学更简单,让IT学习更有效课
30、堂讨论 改变一个对象间成员变量的值,会不会影响到另一个同类对象的值 结论:对象间成员变量的值是独立的,互不影响让IT教学更简单,让IT学习更有效using System;class Method public int i=5; public void addi() i=i+1; class test static void Main() Method a=new Method(); a.addi(); Method b=new Method(); b.addi(); Console.WriteLine(“0,1”,a.i,b.i); /public static int i=5;/Consol
31、e.WriteLine(0,Method.i);读程序写出输出结果让IT教学更简单,让IT学习更有效结论 static 关键字定义的成员为静态成员,该成员属于类,而不属于对象 static 数据类型 成员名(方法名(参数列表) 不能通过对象名.静态成员来访问类的静态成员,只能通过类名.成员名来访问 类中定义了静态成员,不管对象创建没有,静态成员都存在 静态成员包括:静态变量和静态方法让IT教学更简单,让IT学习更有效 静态方法using System;class Method public int i=5; public static void addi() i=i+1; class test
32、 static void Main() Method a=new Method(); Console.WriteLine(Method.i); /改为public static int i=5;Method.addi(); Method.addi();让IT教学更简单,让IT学习更有效讨论 静态方法的调用通过类名.静态方法名o静态方法中如果要访问类成员,可不可以是非静态成员?必须是静态成员(变量、方法)让IT教学更简单,让IT学习更有效静态成员与非静态成员的区别 静态成员是属于类所有的,非静态成员则属于类的实例对象。 非静态成员只能通过对象名称进行访问,并且对象成员互不影响 静态成员只能通过类
33、名进行访问 静态方法不可以访问非静态成员,静态方法只能访问静态成员 静态方法中定义的变量,是局部变量,可以在静态方法中使用让IT教学更简单,让IT学习更有效静态构造函数 如何在创建对象的时候要初始化静态成员变量呢?可以使用静态构造函数让IT教学更简单,让IT学习更有效综合练习 定义一个学生类student,包含3个成员变量,用来保存学生的姓名name、年龄age和学号no,有参和无参构造函数,用来初始化学生的姓名、年龄和学号。三个成员函数或属性,分别用来获取学生的姓名、年龄和姓名,void input(String na, int ag, String n)给数据成员赋值 void print
34、()输出学生信息。定义一个班级类,包括学生对象数组,学生个数count,最大分配个数maxsize,void add(student stu) 增加学生信息到班级,void print()输出班级中所有学生信息 从标准输入读取学生信息,并增加到班级中,然后输出班级学生信息。让IT教学更简单,让IT学习更有效static关键字 静态构造方法静态构造方法 class StaticClass /声明静态字段 public static string staticName; /定义静态构造方法 static StaticClass () staticName = LiMing; class Progr
35、am18 static void Main(string args) /调用StaticClass的staticName静态字段 Console.WriteLine(我的名字是+StaticClass.staticName); Console.ReadKey(); /停留在控制台界面,等待用户输入 例如下面这个案例,就演示了静态构造方法的使用。让IT教学更简单,让IT学习更有效结论 静态构造函数是无参构造函数 静态构造函数无访问修饰符 静态构造函数在运行时仅调用一次 先调用静态构造函数,后调用非静态构造函数让IT教学更简单,让IT学习更有效课堂练习 编写帐户类,具有账号编写帐户类,具有账号ID
36、(string),存),存款量款量initialDepositAmount(double),),静态成员静态成员static int totalAccountNumber=0记录账记录账户户数目,数目,创建创建每一账每一账户户设置初始化设置初始化帐号帐号ID为为“000”,存款为存款为0.00元,设计一变量统计元,设计一变量统计账号生成的数目。账号生成的数目。让IT教学更简单,让IT学习更有效4.5 this关键字通过this关键字可以明确地去访问一个类的属性,解决与局部变量名称冲突问题。1、this访问属性访问属性在类中调用自己的成员方法,也可以使用this关键字,通过“this.方法名”的
37、方式调用。2、this访问成员方法访问成员方法构造方法在实例化对象时会被.Net运行环境自动调用,因此,在程序中不能像调用其他方法一样去调用构造方法,但可以用“:this(参数1,参数2)”的形式来调用其他的构造方法。3、this访问构造方法访问构造方法让IT教学更简单,让IT学习更有效 装箱和拆箱 装箱:值类型转换到对象操作 拆箱:对象转换为兼容的值类型操作让IT教学更简单,让IT学习更有效4.6 索引器通常情况下,属性只能访问单一的字段,如果想访问多个数据成员,就需要使用索引器,索引器是类的特殊成员,它可以根据索引在多个数据成员中进行选择。索引器的语法与属性非常相似,能够让对象以类似数组的
38、方式来存取。这样使程序看起来更为直观,更容易编写。索引器的定义方式与属性定义方式类似,其基本的语法格式如下所示:在上述语法格式中,使用this关键字加索引类型 index的形式来创建一个索引器,在索引器中同样会使用get和set访问器,来获取属性值和设置属性值。索引器的功能索引器的功能修饰符 数据类型 this索引类型 index get /返回参数值 set /设置隐式参数value给字段赋值让IT教学更简单,让IT学习更有效4.7 垃圾回收 在C#中,当一个对象成为垃圾后仍会占用内存空间,时间一长,就会导致内存空间的不足。为了清除这些无用的垃圾对象,释放一定的内容空间,C#中引入了垃圾回收
39、机制。在这种机制下,程序员不需要过多关心垃圾对象回收的问题,.Net运行环境会启动垃圾回收器将这些垃圾对象从内存中释放,从而使程序获得更多可用的内存空间。 除了等待运行环境进行自动垃圾回收,还可以通过调用GC.Collect()方法来通知运行环境立即进行垃圾回收。让IT教学更简单,让IT学习更有效4.9 嵌套类在C#中,可以将类定义在另一个类的内部,被包含的类称作嵌套类,而包含嵌套类的类就称作外部类。实际上,嵌套类与普通类相似,只是被声明的位置比较特殊,致使其访问权限与引用方式与普通类有所区别,接下来,通过一个案例做具体以演示。什么是嵌套类什么是嵌套类? class Outer class N
40、esting /声明嵌套类 public int num = 10; /定义OuterMethod方法 public void OuterMethod() Nesting nesting = new Nesting(); /在外部类方法中创建嵌套类的对象 Console.WriteLine(调用嵌套类的字段num= + nesting.num); /调用嵌套类的字段 class Program20 static void Main(string args) Outer outer = new Outer(); outer.OuterMethod(); Console.ReadKey(); 让I
41、T教学更简单,让IT学习更有效4.10 匿名类有时候某个类的实例只会用到一次,这时可以使用匿名类的方式创建实例,即无需显式定义一个类,就可以将一组只读属性封装到单个对象中。它的创建与使用都非常简单,接下来通过一个案例进行演示。什么是匿名类什么是匿名类? class Program21 static void Main(string args) /创建匿名对象 var Anon = new Name = 小明, Age = 3, Sex = 男 ; /在控制台输出匿名对象Anon的属性 Console.WriteLine(我的名字是:0岁,性别为:1,年龄是:2岁, Anon.Name, Ano
42、n.Sex, Anon.Age); Console.ReadKey(); 让IT教学更简单,让IT学习更有效4.11 对象初始化在一个类中,通常是使用构造方法来为属性赋值,当一个类中属性过多时,不可能为每种情况都创建一个构造方法,此时可以使用对象初始化器来为属性赋值,对象初始化器的语法格式如下:从上述语法格式可以看出对象初始化器可以同时为类的多个属性赋值,从而大大减少对象初始化的代码。对象初始化的意义对象初始化的意义?类名 变量名=new 类名()属性名=值,属性名=值;需要无参构造函数让IT教学更简单,让IT学习更有效 本章详细介绍了面向对象的基础知识。首先介绍了什么是面向对象的思想,然后介绍了类与对象之间的关系,属性的作用,以及构造方法的定义与重载,this和static关键字的使用,最后介绍了嵌套类的定义以及匿名类等。熟练掌握好这些知识,有助于下一章内容的学习。 本章小结本章小结让IT教学更简单,让IT学习更有效 TreeView树视图控件树视图控件 TreeView控件以树形结构的方式来显示数据。其目录的每个节点都有一个与之相关的TreeNode对象,每个TreeNode对象都包含一个Nodes和Level属性。通过TreeView控件可实现下图所示效果。