1、 static关键字 原则:在定义类的时候很少去使用static定义属性或者方法,如果不确定如何使用,那么有一个最简单的通用原则:一般只会在接口之中定义static属性(全局常量),如果一个类没有任何属性的时候,可以将方法定义为static(目的:既然没有属性就没有必要开辟内存); static属性和方法可以由类名称直接进行调用,并且可以在没有任何实例化对象的时候调用;这样的操作形式很少会在类之中出现,都会在接口之中出现,如果按照实际的应用来讲,以上的操作并不标准。 使用static来定义属性有一个最重要的前提:所有的对象将共同指向同一个static属性,达到属性共享的概念。 使用static定义的方法有一个特征:只允许调用static定义的属性或方法,而不允许调用非static的属性或方法。static定义的方法不受对象控制,可以在没有实例化对象的时候通过类名称进行调用。 现在唯一可以见到static方法出现的场景只有工厂设计模式,因为工厂类不需要保存任何的属性信息,它只是一个负责实例化接口子类对象的方法集合。 使用static定义的内部类就是外部类,外部可以直接进行内部类的操作。 (非static定义的内部类: 外部类.内部类 内部类对象 = new 外部类().new 内部类();) (static定义的内部类: 外部类.内部类 内部类对象 = new 外部类内部类();) 2、接口与现实的应用,分析的思路是怎样的? 接口:从设计上来讲是优先于类设计的,接口定义的是类的操作标准。在进行项目设计的过程中,接口必须首先出来后,才轮到类的编写。而且接口有一个最重要的功能:为两个毫无关联的类进行接耦合操作。(例如:电脑-接口-USB) 3、对象的多态性 基本概念: 向上转型:父类 父类对象 = 子类实例,自动转型,大部分都是以向上转型为主; 向下转型:子类 子类对象 = (子类)父类实例,强制转换,当需要调用子类自己扩充方法的时候使用; 向上转型的最大特征:子类覆写父类中的方法,而后同一个方法根据实例化子类的不同可以得到不同的效果。 向下转型只发生在需要调用子类的某些特征,其中最有代表性的就是使用Object接收数据。 如果在进行父类设计的时候功能足够完善,实际上向下转型的意义不大,而我们现在唯一可以见到的向下转型上(equals())。 向上转型有一个最大的好处:可以实现参数的统一,尤其是有了Object与包装类之后,这一特征非常明显。 4、代理设计模式 代理设计模式的核心结构:一个主题操作接口而后分别有两个实现子类,这两个实现子类一个负责真实的核心业务操作,而所有与核心业务主题有关的操作都应该交给代理类完成。
|