面向对象

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 {
   @Override
   public void run() {
?
  }
?
   @Override
   public void timer() {
?
  }
?
   @Override
   public void shabi(String name) {
?
  }
}
?

 

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器