面向对象编程(OOP:Object-OrientedProgramming)
个人理解:就是把复杂的问题看作一个整体,即对象;然后再去面向过程,在对象里面去实现方法,语句啥的。
面向对象的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据。
从代码运行的角度考虑是先有类后有对象。类是对象的模板。
个人理解:在编程过程中,一定是先创建一个类,然后就可以用类去创建很多个对象!妙啊!!
break和return的区别:break:跳出switch,结束循环;return结束方法,返回一个结果。
回顾方法的调用
区分:
- 静态方法的调用:有static关键字的方法,可以直接用类去点方法名;
- 非静态方法的调用:没有static关键字的方法,需要先将类实例化(比如:Student student = new Student();),然后再去点方法名(比如:student.方法名();)
- 静态方法可以调用静态方法,非静态方法不可以调用静态方法
构造器(必须掌握)
Alt + Insert 快捷键,生成有参函数无参函数
默认存在一个无参构造方法,生成一个有参构造方法之后,默认存在的无参构造方法就没了,需要重新手动去生成它。
面向对象三大特性
-
封装
- 程序设计追求“高内聚,低耦合”;高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法给外部使用。
- 封装(数据的隐藏):通常应该禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问,这称为信息隐藏!
- 记者这句话就够了:属性我私有(private),get/set
-
继承
-
多态
super和 this:
方法重写:重点
重写都是方法的重写,和属性无关
因为:定义的是什么类,就调用什么类的静态方法
快捷键:Alt + Insert ----->选择Override Methods...
多态
static final private 这些修饰符修饰的方法没有多态,因为它们重写都不能被重写,更别谈多态了啊!!!
个人理解:当父类引用指向子类对象时:
- 当某一个方法,在父类和子类中都存在,如果此时用父类创建的对于像去点这个方法,那么执行的就是子类中的方法;(执行的是子类对父类中的方法重写之后的同名方法);
- 当子类中有一个独有的方法,父类中并不存在同名的方法,如果此时用父类创建的对于像去点这个方法,那么就会报错
instanceof(类型转换) 引用类型
个人理解:
我们学这里的类型转换,是为了在父子继承中,去使用子类中特有的方法,而不是重写的方法;
(其实就是父类不能直接使用子类中特有的方法,所以强转一下,把自己伪装成子类,然后就可以去使用子类中的方法了,哈哈,妙啊!