一、面向对象思想:
1.面向对象思想是基于面向过程的编程思想
面向过程:强调的是每一个功能的步骤。
面向对象:强调的是对像,然后由对象去调用功能。
2.面向对象的思想特点:
A.是一种耕读he我们思考习惯的思想
B.可以将复杂的事情简单化
C.将我们从执行者变成指挥者
二、成员变量和局部变量的区别
A在类中的位置不同
成员变量:类中,方法中
局部变量:方法中,方法声明上(形参)
B在内存中的位置不同
成员变量:堆内存(对象、数组元素)
局部变量:栈内存(对象引用如数组引用变量、基本类型的变量数据)
C生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
D初始化的问题
成员变量:有默认值
局部变量:没有默认值,必须先定义,赋值,在使用
三、private的由来及使用
通过对象直接访问成员变量,会在数据安全午安上面出现问题,想不让外界的对象直接访问成员变量就又有了private。
针对private修饰的变量,相应的提供getXxx()和setXxx()用于获取和设置成员变量的值。
四、封装
1.概述:是面向对象三大特性之一,是面向对象编程语言对客观世界的模拟,客观世界里成员都是隐藏再对象内部的,外界无法直接操作的修改。
2.原则
把不需要对外提供的内容都隐藏起来。把属性隐藏起来,提供公共方法对其访问。
3.提高代码的安全性,把代码用方法封装,提高了代码的复用性。
五、继承与抽象类
1.这个里面总结的不错,可以看看。
作者:Matrix海子
出处:http://www.cnblogs.com/dolphin0520/
本博客中未标明转载的文章归作者Matrix海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
2.方法的重写的应用场景:
当父类的的方法不能完全满足子类使用,这个时候子类重写父类的方法,并可以在方法中使用关键字super调用父类的方法,这样做即可以保有父类的功能,也可以拥有子类特有的功能。不能重写父类的私有方法,
注意不能重写父类私有的方法,权限必须大于等于父类方法的权限。
3.继承中构造方法的执行顺序
在有子父类继承关系的类中,创建子类的对象,调用子类的构造方法,如果子类的构造方法的第一行代码没有调用父类的构造方法,则会默认的调用父类的无参构造。
4.this和super的区别:
this:当前对象的引用、调用子类的成员变量和方法、调用子类的其他构造方法
super:子类对象的父类引用、调用父类的成员变量和方法、调用父类的其他构造方法
5.继承的优缺点
6. 抽象类的特点:
A抽象方法只能在抽象类里面
B抽象对象不能实例化(不能创建对象)
C抽象类可以有非抽象方法
D一个类继承了抽象类,要么重写(又叫覆盖:方法名和形式参数必须一致)父类所有的抽象方法,要么自己变成抽象类
7.抽象类的成员特点
A可以有成员变量,可以有常量(被final修饰)
B可以有抽象方法和非抽象方法
C可以有构造方法(对成员变量进行初始化)
8.抽象的思想
Reader 和Writer
六、接口
接口是一个比抽象类还抽象的类,接口里所有的方法全是抽象方法,接口的类的关系不再是继承而是实现的关系(implements),一个类实现一个接口必须实现他的所有方法
1.接口的成员特点:
只能有抽象方法,只能有常量(默认public static final修饰)
注意
类与类:单一继承,多层继承
类与接口:实现关系,多实现
接口与接口:继承关系,多继承
2.接口思想:
Collection接口下面的Set和List(实现类
Arrayalist、LinkedList)接口
3.
4.
七、多态
1.实现多态的前提:继承、重写、父类引用指向子类对象(Animal a=new Cat();也就是向上转型)
动态绑定:运行期间调用的方法,必定是使用子类中定义的这些方法
2.向上转型:父类引用指向子类对象,只能访问父类中拥有的方法和属性
向下转型:本身是什么类型才能转换成什么类型(Cat c=(Cat) a;)
3.编译时多态和运行时多态
编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。
八、权限修饰符
九、常用修饰符总结
abstract:修饰的方法没有方法体,修饰的类是抽象类
static:修饰的成员可以使用类名调用,随着类的加载,优先于对象
final:修饰的变量是常量,一旦初始化不能改变,修饰的类不能被继承,修饰的方法不能被重写