1、什么是内部类(Inner Classes)

        在Java中,允许在一个类(或方法、语句块)的内部定义另一个类,成为内部类。内部类和外层封装他的类属于所属关系,一般只用在定义她的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称。

        优点:使源代码更加清晰,减少命名冲突,提高可视性。

public class Out{
    class Inner{
        //这里定义了一个内部类。
    }
}

        内部类特点:

        1、内部类可以体现逻辑类的从属关系,同时对于其他类可以控制内部类对外不可见。

        2、外部类的成员变量作用域是整个外部类,包括嵌套类。但外部类不能访问嵌套类的private成员

        3、逻辑上相关的类可以在一起,可以有效地实现信息隐藏。

        4、内部类可以直接访问外部类的成员。可以用此实现多继承

        5、编译后内部类也为单独的类,不过名称为outclass$inclass的形式。

public class Outer {
    class Inner{
        public  int a=3;
        private int b=5;
    }
}
class Other{
    public static void main(String[] args) {
        Outer o=new Outer();
        Outer.Inner oi=o.new Inner();//内部类的创建
        System.out.println(oi.a);
        System.out.println(oi.b);//编译异常
    }
}

        内部类的分类:

        类级:成员式,有static修饰。

        对象级:成员式,普通,无static修饰。

        本地内部类:局部式。

        匿名级:局部式。


2、设计模式

        在面向对象的软件设计中,总是希望避免重复设计或尽可能少做重复设计。设计模式使人们更加简单方便的复用成功的设计和体系结构。

        模式四要素:

        模式名称(pattern name):助记名

        问题(problem):描述问题的前因后果以及必须满足的先决条件。

        解决方案(solution):解决问题的抽象描述(元素组合)。

        效果(consequences):描述模式的显示隐式好处和影响。

        常用的设计模式    单例模式:某个类只能有一个实例,提供一个全局的访问点。分为懒汉模式和饿汉模式。

//饿汉模式,先创建。
public class Singleton{
    //私有构造函数,无法主动创建
    private Siingleton(){}
    //静态私有变量,供内部调用。
    private static Singleton instance=new Singleton();
    //公共静态方法,可直接访问,但始终只有一个对象。
    public static Singleton getinstance(){
        return instance();
    }
}
//懒汉模式,使用时再创建,效率高
public class Singleton{
    //私有构造函数,无法主动创建
    private Singleton(){}
    //静态私有变量,供内部调用
    private static Single instance=null;
    //公共静态方法,可直接访问,但始终只有一个对象。
    public static Singleton getinstance(){
        if(instance==null) instance=new Singleton();
        return instance;
    }
}

工厂方法:定义一个创建对象的接口,让子类决定实例化哪个类。

抽象工厂:创建相关或依赖的家族,而无需明确指示具体类。

建造者模式:封装一个复杂对象的构建过程,并可以按步骤构造。

原型模式:通过复制现有的实例来创建新的实例。

适配器模式:将一个类的方法或接口转换为客户希望的另一个接口。

组合模式:将对象组合成树形结构以表示“整体-部分”的层次结构。

装饰模式:动态的给对象添加新的功能。

代理模式:为其他对象提供一个代理以便控制这个对象的访问。

享元(蝇量)模式:通过共享技术来有效地支持大量细粒度的对象。

外观模式:对外提供一个统一的方法,来访问子系统中的一群接口。

桥接模式:将抽象部分和实力部分分离,使他们都可以独立的变化。

模板模式:定义一个算法结构,而将一些步骤延迟到子类实现。

解释器模式:给定一个语言,定义他的文法的一种表示,并定义一个解析器。

策略模式:定义一个算法,把他们封装起来,并且使他们可以相互替换。

状态模式:允许一个对象在其对象内部状态改变时改变他的行为。

观察者模式:对象间的一对多的依赖关系。

备忘录模式:在不破坏封装的前提下,保持对象的内部状态。

中介者模式:用一个中介对象来封装一系列的对象交互。

命令模式:将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。

访问者模式:在不改变数据结构的前提下,增加作用于一组对象元素的新功能。

责任链模式:将请求的发送者和接受者解耦,使的多个对象都有处理这个请求的机会。

迭代器模式:一种遍历访问聚合元素中各个对象的方法,不暴露该对象的内部结构。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐