◆抽象、封装、继承、多态
编码规范
Java 命名规范:方法名首字母小写,类名首字母大写,变量名首字母小写。
C# 命名规范:方法名首字母大写,类名首字母大写,变量名首字母小写,字段名首字母为大写。
接口中的方法必须写文档注释
面向对象的设计
Java 面向对象的设计类图 数据库设计模式
1.发现类(没有必要增加额外的类) 1.第一范式:确保每列的原子性,不能再分的最小的数据。
例如:学生表(学生姓名、学员编号、年级、科目、、、、、、、)
2.发现类的属性 2.第二范式:主键以外的其他列都依赖于该主键间接
例如:科目表(科目编号、科目名称、年级编号、学员编号)
3.发现类的方法 3.第三范式:主键以外的其它列都只能依赖于主键直接
例如:年级表(年级名称、年级编号)
4.实现优化设计 4.实现优化设计
▲ 常量:常量所有字母大写
static nal String SEX_MALE=”Q 仔”
static nal String SEX_FEMALE=”Q 妹”
String sex= SEX_MALE //附初始值
调用: 对象名.sex=类名. SEX_MALE / SEX_FEMALE
继承(extends)
1.继承(extends)(java 中只支持单一继承也就是说一个类只一个直接父类)
A.编写父类:提取子类的公共的属性和方法来定义一个父类
B.编写子类:通过 extends 来继承父类
C.添加子类自己的属性和方法
私有的属性或方法不能继承,构造方法无法继承
类的加载顺序(先父再子)
子类在实例化自身的时会先调用父类对应的构造方法然后再调用自己的构造方法
super:表示调用父类的属性或方法
在子类中如果想调用父类公共的属性或方法使用 super 关键字
super()表示调用父类的构造方法只能出现在构造方法中并且必须是第一行代码
构造方法及重载
语法:Public 类名(参数) {}
作用:创建对象时执行一些初始化工作,成员赋初始值
例如:public Dog(String name,String strain){
super(name);//父类属性 必须是第一行代码
this.strain=strain;
}
▲ 注意要点:默认情况下系统会给类分配一个无参的构造函数,如果写了有参的构造函数,默认的就没有了,必须手动添加一个无参的构造函数。
▲重写:方法名相同、返回值类型相同、重载方法的不能小于被重载方法的…
如果父类是抽象方法,子类必须继承,不然会报错.
人类(抽象): public abstract class Person{
public abstract void show();
}
子类(学生类):
public class Student extends Person{
必须继承:public void show(){
//方法体
}
}
▲ 重写和重载的区别:
重载:方法名相同,参数类型不同,与返回值无关 重写:一般是子类继承父类,方法名相同,参数类型相同同,返回值类型相同
…
抽象(abstract)
抽象类(abstract)
父类一般是一个抽象类使用 abstract 关键字来完成抽象类的声明
抽象类无法实例化,抽象的方法没有方法体
子类继承于一个抽象类就必须实现其中抽象的方法,否则子类也必须是一个抽象类
▲&nal (终态)
&nal 修饰的类不能被继承(没有子类)
&nal 修饰的方法不能被重写
&nal 修改的变量
原始数据类型(int,double,char,boolean)不能修改值
引用数据类型(数组,对象,自定义的类)可以修改值但是不能修改内存地址(不能引用另一个对象)
多态
多态:
一个事物的多种表示形态
现实中,一个事物至少可以表示二个意思
程序中,一个对象至少可以引用二种数据类型
好处:可扩展可维护性
实现多态的步骤:
1.子类重写父类的方法
2.定义方法时形参使用父类(使用父类的对象引用子类的实例)
3.调用方法时实参使用子类
评论3