首页 > 代码库 > 面向对象抽象封装
面向对象抽象封装
? 第一章
第一次课
? 使用类图如何描述设计
- private(私有) 属性
+ public(公共) 方法
访问修饰符:
缺省(默认),只能被同一个包中的类访问
private(私有的),访问权限最小,只能自己访问
public(公共的),访问权限最大,任何类都可以访问
protected(受保护的)【继承中讲解】
? 面向对象设计的步骤
? 发现类(名词)
? 发现属性(名词或形容词)
? 发现方法(动词)
? 类和对象的概念
? 什么是类?如何创建类
类是一个模型、模板,是抽象的
? 什么是对象?如何创建对象
对象是模板的具体化、实例化,是客观存在的
? 类和对象的关系?
类是对象的抽象化,对象是类的实例化
? 类的成员有哪些?如何访问类的成员?
? this关键字,表示当前类的对象
? 只能在当前类中使用
? 不能在static方法中出现
? static标记的方法或属性,表示类的成员
? 在当前类,直接写方法名来调用
? 在其他类中调用
必须使用【类名(或对象名).static成员名】
? final关键字,表示类的常量(存储的是不变的数据)
? 修饰的全局变量(属性),常量
? 常量名,遵循编码规范,必须全部大写
? 声明后,必须马上赋值,在后面的代码中不能修改常量的值
? 如何调用常量?
? 在自己内部,直接写常量名
? 在其他类中,通过【对象名.常量名】
第二次课
? 构造函数——1种特殊的方法
? 特征?
? 方法名和类名相同
? 没有返回类型,void关键字都没有
? 一般情况下,访问修饰符是public的
? 作用?
初始化类的成员
? 如何调用?
创建对象时自动调用构造方法
类名 对象名=new 类名(【值】);
构造方法重载后,2个构造方法之间如何相互调用?
this(【值】);//必须写在第一行
? 注意事项:
? 如果类中,没有写构造方法,系统会自动提供一个无参数的构造方法用于初始化类的成员
? 如果类中,写了带参数的构造方法,系统将不再自动提供无参数的构造方法
? 方法重载
? 特征
? 在同一个类中
? 方法名相同
? 参数列表(个数、类型)不同
? 注意事项:
与方法的返回类型,访问修饰符没有任何关系
? 重载后的方法,如何调用?
根据传递的实参的个数和类型,自动查找对应的方法
课后作业:完成上机练习1、2、3、4
第三次课,封装的概念及使用
? 封装的好处?
隐藏实现的细节,提高程序的可重用性和可维护性
? 封装的步骤?
? 将属性的public或缺省权限 修改为私有的private
? 编写封装属性的2个方法
? public void set属性名(属性数据类型 参数名){
}
? public 属性的数据类型 get属性名(){
return 属性名;
}
? 修改setter方法体,编写逻辑控制语句(比如if),限制参数不符合逻辑的值
? 自动生成属性对应的getter和setter方法
? 快捷键:Shift +Alt+ +S+R
? MyEclipse中菜单栏
Scource——>Generate Getters and Setters…
面向对象抽象封装