面向对象(OOP)

1.面向对象和面向过程的区别:

    面向对象  优点:易维护、易拓展、易复用,由面向对象的三大特征可以设计出低耦合的系统,使系统更加灵活,更易于维护;

                     缺点:性能比面向过程要低。

    面向过程  优点:性能比面向对象要高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素;(简单一句话就是性能要比面向对象要高)

                    缺点:没有面向对象的易维护、易拓展、易复用。

2.面向对象的特征:

   封装:把相关的数据封装成一个“类”组件,增强代码的安全性;

   继承:子类自动共享父类公共的属性和方法,提高代码的复用性;

   多态:父类引用指向子类对象,提高代码的灵活性;

3.访问权限控制符:

子类任意
public
protected
default
private


4.封装:

通过private关键字实现,被private修饰的资源只能在本类中访问,想要修改只能对外提供get()和set()方法;

5.构造方法:

 构造方法是与类名相同的方法,用来对象的初始化和成员变量的赋值,构造方法也可以构成重载;

默认存在无参构造,当提供了含参构造时最好也要声明一个无参构造;

6.this和super:

this代表本类对象的引用,构造方法中必须放在第一行,当局部变量和成员变量重名时用this来区分;

super代表父类对象的引用,用于区分本类变量和父类变量;

this和super不可以同时出现在同一个构造方法里,他们两个只要出现都得放在第一行

7.静态static:

特点:可以用来修饰方法和属性;

           随着类的加载而加载,优先于对象加载,可以被类名直接调用;

           只加载一次,就会一直存在

           全局唯一,全局共享

           静态资源只能调用静态资源,非静态资源可以随意调用;

           static不能与this和super共用,因为static时还没有创建对象

static修饰方法可以被继承但不能别重写;

8.静态代码块,构造代码块,局部代码块:

静态代码块:在类加载时就会被执行,而且只会执行一次,通常用于项目的初始化;

构造代码块:在类里方法外,每次调用构造方法时都会先执行构造代码块,通过用来提取构造方法的公共代码;

局部代码块:在方法里,调用方法时会执行局部代码块,通常用于控制变量的范围

执行顺序:静态资源——构造代码块——构造方法——局部资源

9.final关键字

final修饰的类不能被继承,修饰方法不能被重写,修饰变量是常量

10.继承(extends)

java中只支持单继承,子类可以继承父类全部的公共资源;

接口可以多继承和多实现;

继承抽象类的时候如果不重写抽象方法的话,也是一个抽象的子类

11.重写和重载

发生在同一个类中,存在方法名相同但是参数列表不同的方法就构成了重载,重载提高了代码的灵活性

重写是发生在继承关系时,子类修改父类的方法时就是重写;重写时子类的修饰符要大于等于父类的修饰符,方法的返回值(基本类型要相等,引用类型的话要等于小于),方法名相同但方法体不同,重写是多态的表现

12.多态:

多态的前提是继承,要用方法的重写

父类引用指向子类对象,编译看左边吗,运行看右边

如果方法重写了就会执行子类的方法体,

如果想用子类拓展的方法可以向下造型

Animal  animal = new Dog();

Dog d  = (Dog)animal;

13.抽象类和接口区别

抽象类中可以有抽象方法也可以没有,继承的时候不重写抽象方法就是抽象的子类;

抽象类只能单继承,接口可以多继承和多实现;

抽象类中有抽象方法,普通方法和变量;

接口中全都是抽象方法,接口只有常量,JDK1.8以上才提供了默认的方法;

抽象类中有构造方法,接口中没有构造方法;

接口中的变量简写为 public static final int a = 1;

接口中的抽象方法简写为 public abstract void get();没有方法体

接口中的默认方法public default  void get(){};

      

   

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值