面向对象复习

复习面向对象

理解面向对象

我们知道c语言是面向过程的开发语言,关注解决问题的流程;

那我们举一个比较简单的例子,把大象装进冰箱;

面向过程

1、开门

2、装大象

3、关门

面向对象

冰箱类{装大象()、开门()、关门()}

大象类{,}

面向对象解决问题

抽取出具有共同属性、行为的事物作为类;

对象是真实存在的事物;

类的结构

1、成员变量、局部变量;

成员变量举例:单例模式懒汉和饿汉

//饿汉式类加载就创建
private static SingletonDemo instance = new SingletonDemo();
private SingletonDemo(){
};
private static SingletonDemo getInstance(){
    return instance;
};

2、一般方法、构造方法;

3、代码块、静态代码块;

静态代码块随类加载执行;

实例代码块随对象创建执行;

4、内部类;

内部类举例:ReentrantLock的公平锁和非公平锁使用AQS内部类

abstract static class Sync extends AbstractQueuedSynchronizer
static final class NonfairSync extends Sync
static final class FairSync extends Sync 
重载重写

重载

类的方法中名字相同,参数不同(参数类型、参数个数);

重写

父类的方法不满足子类的需求,我们知道java中所有的类都继承object,我们常见的重写有toString()方法、equals()方法;

需要注意的是重写equals方法必须要重写hashcode方法

否则我们在hash存放引用类型元素会造成值相同的引用对象存放多份;

权限修饰符

public(所有)

private(仅类本身)

default(同类、同包)

protected(同类、同包、不同包子类)

符合设计模式开闭原则,对修改关闭、对拓展开放;

面向对象特性

封装

通过权限修饰符隐藏类的信息,对外提供访问接口;

符合设计模式迪米特原则,对外除了public,尽量不与外界沟通;

继承

提高复用;

重写满足子类个性化需求;

多态

提高扩展,解耦;

重写子类扩展不同的功能;

接口、抽象类

都是处于顶层,制定规则;

接口只能定义声明静态常量、抽象方法,无构造方法;

接口可以继承多个接口、类可以实现多个接口;

servlet举例

我们自己编写的servlet类继承HttpServlet抽象类;

HttpServlet又继承GenericServlet抽象类;

GenericServlet抽象类实现servlet顶层接口;

使用抽象类实现接口,抽象类继承抽象类这样既逐层扩展了功能,又逐层实现一些非必要了解的细节,降低我们的开发难度;我们只需要在开发时重写较少的方法便可实现业务;

我们开发时只需要重写doGet方法,生命周期GenericServlet已经帮我们重写了;

HttpServlet扩展了许多方法

在这里插入图片描述

servlet中只有生命周期方法

package javax.servlet;

import java.io.IOException;

public interface Servlet {

    public void init(ServletConfig config) throws ServletException;
    
    public ServletConfig getServletConfig();
    

    public void service(ServletRequest req, ServletResponse res)
   throws ServletException, IOException;
  

    public String getServletInfo();
    
   

    public void destroy();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值