A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

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、代理设计模式

  代理设计模式的核心结构:一个主题操作接口而后分别有两个实现子类,这两个实现子类一个负责真实的核心业务操作,而所有与核心业务主题有关的操作都应该交给代理类完成。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马