一、复习
1、属性的写法
2、创建一个正方形类
二、新课
(一)属性与字段、属性和方法的比较
1、属性与字段的比较
- 字段会被分配一个存储位置,它用来存储对象的数据。属性不会自动分配存储位置。
- 给字段赋值只是将所赋的值存储在给字段分配的存储位置中,给属性赋值会将所赋的值传递给set访问器的value参数,然后执行set访问器的代码,这种代码可能很简单(直接将value的值赋给某一私有字段),这种代码也可能很复杂,完成我们所想完成的任务。读取字段的值,只是读取给字段分配的存储位置中的值。读取属性的值,会执行get访问器的代码,该代码可能很简单(只返回一个存储在私有字段中的值),该代码也可能很复杂,访问多个字段或调用方法以计算字段值并将其返回。
2、属性与方法的比较
- 属性是对象的特性,通常,属性存储对象的数据,而方法是可要求对象执行的操作。对象的一些特性明显是属性,比如Name,而有些明显是方法,比如Move和Show。在其他情况中,哪些类成员应是属性、哪些应是方法并不特别明显。
通过this关键字,可以引用当前在其中执行代码的类的“当前实例”。类的“当前实例”是指代码当前正在其中执行的实例。由于所有的代码都在方法的内部执行(属性实际上也是方法),因此当前实例是调用方法的实例。this关键字作为引用当前实例的对象变量可在构造函数、实例方法和实例属性访问器中访问“当前实例”的成员。
利用Circle类进行修改体会this作用。
任务5-4
(三)构造函数
面向对象编程语言的一个最大优点是,可以定义在创建类的实例时调用的特殊方法,这些方法称为构造函数。构造函数必须以类名作为方法的名称,且不返回任何值,也就是说构造函数是名称为类名的特殊方法,该方法不能有任何形式的返回值类型(也不允许使用void类型)。
构造函数的作用是,确保对象在使用之前要经过正确初始化过程。当用户实例化一个对象时,此对象的构造函数被调用并且返回,然后用户才能在对象上执行其他操作。也就是说,对象在被实例化之前是不能被使用的。
任务5.5——默认构造函数的使用——这个我们一直在用,在创建对象的过程中必不可少。
实例构造函数的声明
任务5.6
思考:这个时候应该怎么创建这个类的对象呢?
实训:创建一个AddingMachine类,定义无参方法Add和Subtract,分别实训两个整数的加、减。
课后练习:P117-7