面向对象
Posted lee-leo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。
面向对象的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
面向对象就是一个框架,具体实施还是靠面对过程(即方法)。
三大特性:
封装;
继承;
多态。
从认识的角度:
先有对象(实例)后有类(后抽象出一个类)。对象,是具体的事物。类,是抽象的,是对对象的抽象。
例子:
先有小明、小红、小强这样的学生,再有学生类Student。
从代码运行的角度:
先有类后有对象,类是对象的模板。
静态方法和动态方法
加 了static之后的静态方法,是跟类一起加载的,可以直接调用;而没有加static的动态方法,实际上只是做了一个声明,需要实例化之后才能调用。
构造器
构造器名字和类名一样。
作用:1、可以实例化属性的初始值,不让其为null,0等默认值;
2、使用new关键字,本质是在调用构造器;
注意:如果定义了一个有参构造器,如果需要用一个无参构造,必须显示的定义一个无参构造(即默认生成的构造器无用);在IDEA中构造器生成快捷键Alt+insert。
封装
程序设计追求“高内聚,低耦合”,高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合,仅暴露少量的方法给外部使用。
代码方面记住:属性私有 get/set。
作用:1、提高程序的安全性,保护数据
2、隐藏代码的实现细节
3、统一接口
4、系统可维护增加了
Super函数
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中
3、super和this不能同时构造方法
VS this:
代表的对象不同:
this:本身调用者这个对象
super:代表父类对象的应用
前提:
this:没有继承也可以使用
super:只能在继承条件才可以使用
构造方法:
this:本类的构造;
super:父类的构造。
多态
父类引用类型指向子类对象,但是父类引用的对象只能得到只属于父类的属性和方法,以及子类所重写的方法。
理解:对子类进行类型转换,Father (Son) a=new Son(); 类似于 float (int) a = 10
注意事项:
1、多态是方法的多态,属性没有多态。
2、父类和子类,有联系 类型转换异常!
3、存在条件:继承关系,方法需要重写,父类的引用指向子类对象! Father f1=new Son()
多多练习,即可理解!!!
接口
接口:只有规范,自己无法写方法;在公司编程也就是面向接口编程(码农)。
接口本质是契约,即人间的法律,大家都能遵守。
//接口都需要实现类
public interface UserService {
void run();
void shabi(String name);
}
//抽象类 extends 单继承
//接口可以实现伪多继承
//实现类 里需要重写接口的方法,即实现具体的功能
public class UserServiceImpl implements UserService,Timer {
以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章