面向对象程序设计思想(上).pptx
计算机语言C#第二章面向对象程序设计思想(上)
上一讲作业答案1、可以用C#编写哪些类型的应用程序?【解答】1)控制台应用程序。2)Windows应用程序。3)ASP.NETWeb应用程序。4)ASP.NETWeb服务应用程序。5)智能设备应用程序。2、什么是命名空间?命名空间和类库的关系是什么?【解答】1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系或联系划分到不同的命名空间下。2)命名空间又可以包含其它的命名空间,例如,是指System命名空间下有Windows命名空间,Windows命名空间下有Forms命名空间。3)所有类库都在规定的命名空间下。
学习目标1、理解对象和类的概念2、初步理解引用3、掌握C#中如何表示“值”4、初步掌握不同类型的值如何转换
引子1(2)程序是一大堆对象的组合为了告诉对象做什么,需向那个对象“发送一条消息”。具体地讲,可将消息想象为一个调用,它调用的是从属于目标对象的一个子例程或函数。(1)所有东西都是对象可将对象想象成一种新的类型;同一类的对象具有相同的属性名称和方法;
每个对象都有自己的存储空间,并且可以包含其他对象程序通过句柄(引用)访问对象句柄中包含对象在内存中的存储地址
引子2《墨子小取》“白马,马也;乘白马,乘马也;骊马,马也,乘骊马,乘马也。”墨子在这里说的是,不论黑马白马,均是马的一种,既然马可以骑,那么白马和黑马都可以骑。因此:一个类可以是另一个类的子类;父类所具有的属性和方法,子类也都有;可以用父类的名称来表示子类对象,但不能有子类的名称来表示父类对象。
一、对象和类1类人们对事物的抽象描述,概括出该事物所具有的属性和方法,并将其进行封装,以供使用。用class定义类,声明类的形式为:[附加声明][访问修饰符]class类名称[:[基类][,接口序列]]{[属性][方法]}
某公司员工类型有“计时工”、“计件工”和“合同工”三类,计时工的工资结算方式为工作时间乘以小时工资,请编写程序计算计时工的工资。PARTONE
publicclassHourlyWorker{stringname;intage;doublewagePerHour;doubleworkHours;publicvoidsetWagePerHour(doublewagePerHour){this.wagePerHour=wagePerHour;}publicvoidsetWorkHours(doubleworkHours){this.workHours=workHours;}publicdoubleearnings(){returnthis.wagePerHour*this.workHours;}
单击此处可添加副标题publicstringgetName(){returnthis.name;}publicintgetAge(){returnthis.age;}publicvoidsetName(stringname){this.name=name;}publicvoidsetAge(intage){this.age=age;}}单击此处添加大标题内容
1.2对象对象(实例):类的实例化。客观的。对象在建立时分配了内存,创建对象实际上作了两个方面的工作:使用new关键字分配内存;使用构造函数初始化数据(构造函数是与类名同名的函数)。例:HourlyWorkerhw;//声明HourlyWorker类型的引用hwhw=newHourlyWorker();//创建HourlyWorker对象,并由hw指向该对象
1.3使用对象不直接使用对象,而是使用“引用”“引用”指该类型的变量并不直接存储所包含的实际数据,而是存储实际数据的地址。C#中的引用类型有四种:类、委托、接口和数组。引用间赋值时传递的是存放对象的地址当一个对象不被任何句柄引用时,视作“垃圾”。由.Net的垃圾回收机制自动销毁不再使用的对象。垃圾回收机制是在它认为适当的时候自动回收不再使用的内存的。
测试单击此处可添加副标题classProgram{staticvoidMain(string[]args){HourlyWorkerhw=newHourly