Javaoop——抽象和封装/继承

来源:互联网 发布:电脑管家for mac 编辑:程序博客网 时间:2024/05/01 21:59
第一章   抽象和封装
1.类——>抽象出对象对象——>是类的具体实例
2.构造方法(作用)创建对象时执行一些初始化操作(new) 
  (特点)名称.类名相同,没有返回值类型
3.“-”私有(属性)“+”共有(方法)
4.软件目的:
计算机语言——>描述世界
用计算机——>解决现实世界的问题
5.面向对象的思想——>描述面向对象的世界(符合人类的思维习惯)
   优点:交流更加顺畅;提高设计和开发效率
6.从现实生活中抽象出类:
找出种类:class_{}
找出属性:数据类型_=_
找出行为:public  void  print(){}
7.类图
类名+(-) 属性名:数据类型+(-)    参数——>返回值类型8.构造方法
访问修饰符   构造方法名(可以指定参数){
//初始化代码
}
9.自定义构造方法(系统不再提供默认无参构造方法)
this关键字是对一个对象的默认引用,这里用以区分同名成员变量
10.方法重载
方法名相同
参数项不同
与返回值、访问修饰符无关
11.方法重载的判断依据
必须在同一个类里;
方法名相同;
参数列表(方法参数的个数或参数类型)不同;
与方法返回值和方法修饰符没有任何关系。
12.static可以用来修饰属性、方法和代码块
13.static修饰和非static修饰的区别
   属性类属性、类变量(new.对象)实例属性、实例变量方法类方法实例方法调用方式类名.属性
类名.方法()
对象.属性
对象.方法对象.属性
对象.方法()归属类单个对象14.分封装的步骤
修改属性的可见性;
创建公有的geter/setter方法
在getter/setter方法中加入属性控制语句
15.封装的好处:
隐藏类的实现细节;
方便加入控制语句
只能通过规定方法访问数据
方便修改实现
16.静态块在加载的时候初始化
第二章继承
1.继承的优点
方便修改代码;(子类与父类是is——a的关系)
减少代码量。
2.编写父类
编写父类class Pet{//公共的属性和方法};
编写子类,继承父类class Dog extends Pet{(只能继承一个直接父类)//子类特有的属性和方法}
注:Object所有类的跟类
3.子类访问父类成员(使用super关键字,super代表父类对象)
访问父类的构造方法;
super();
super(name);
访问父类的属性;
super.name;
访问父类方法;
super.print
4.不能被继承的父类成员
private成员;
子类与父类不在同包,使用默认访问权限的成员;
构造方法
5.访问权限(有小到大):
private(私有的)——>frierdly(默认)——>protected(受保护的)——>public(共有的)
6.访问修饰符protected
可以修饰属性和方法;
本类、同包、子类可以访问
7.多重继承关系的初始化顺序
父类属性——父类构造方法——子类属性——子类构造方法
8.语法
修饰符Subclass extendsSuperclass{ //类定义部分}
9.继承条件下构造方法的调用规则
如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。
如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。
如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。
特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。
10.在何处使用继承
符合is——a关系的设计使用继承;
继承是代码重用的一种方式(将子类共有的属性和行为放到父类中)
11.方法重写(使用继承后效果)
调用父类的print()方法,不能显示Dog的strain信息和peguin的sex信息(构造方法不能被重写)
12.方法重写的规则
方法名相同;
参数类表相同;
返回值类型相同或者是其子类;
访问权限不能严于父类。
13.方法重载与方法重写
 位置方法名参数表返回值访问修饰符方法重写子类相同相同相同或是其子类不能比父类更严格方法重载同类相同不想同无关无关14.super关键字来访问父类成员
super只能出现在子类的方法和构造方法中;
super调用构造方法时,只能是第一句;
super不能访问父类的private成员
15.匿名调用
newPet().print();
16.抽象类:没有实际的意义类
17.Java中使用抽象类,限制实例化(每个子类的实现不同)
注:抽象方法必须在子类中被实现,除非子类是抽象类
18抽象方法
抽象方法没有方法体;
抽象方法必须在抽象类里;
抽象方法必须在子类中被实现,除非子类是抽象类
19.final修饰符
  修饰的类,不能再被继承;
 修饰的方法,不能被子类重写;
  修饰的变量将变成常量,只能在初始化时进行赋值;


1 0