javase疑点解惑1(200)

测试1、用类属性测试按值调用。

测试结果:用public标记类属性,可以执行按值调用的方式,但实际上这样做没有任何的意义,因为这种操作会破坏类的封装性

 

测试2、测试自身调用

测试结果:对象可以将自身作为参数进行传递,因为声明只是索要堆空间的使用权。

 

测试3:将类作为另一类的成员变量。

测试结果:同一般属性变量使用规则一样

 

测试4:类中的静态方法与构造方法的执行优先权。

测试结果:静态代码块拥有最高执行权(静态代码块不等于静态方法)。静态方法在对象实列化之前就可以使用构造方法是在实列化对象时使用,所以静态方法的执行优先权更高

 

测试5:构造方法私有化。

测试结果:使用private关键字对类的构造方法进行限定,同时在类的内部实列化该类的私有对象,最后在外部通过静态的getter()方法获得。在使用getter()方法时不能使用this关键字。因为该对象和该setter()方法已经别static标记,从而在该类被实列化之前就可以被调用。而this表示本类,需要在被实列化之后在能使用静态方法中不能使用this,因为this是与实列相关的。(冲突主要是this与static的定义)。

 

测试6:单态/列设计模式。

测试结果:类似于String的匿名对象,实现单态模式后,外部的多个实列化对象实际操作的只是一个堆空间即使用的是一个堆空间的地址。单态设计模式是在构造方法私有化的基础上设计的,是用stactic标记内部实列化的对象。(private static  object = new Object() 

 

测试7:测试抽象方法用自身实列化时,是否立刻实现抽象方法。

测试结果:此时可以成功实列化抽象类。(抽象类之所有不能直接是用,而需要子类进行向上转型实列化,是因为内部存在着为被实现的抽象方法),所以在声明对象的同时实现抽象方法,只是完成了子类需要完成的步骤。

  抽象类   对象  = new 抽象类(){

    抽象方法(){};

   }

 

测试8:

 

posted @ 2018-12-07 21:58  怪兽不纯粹  阅读(91)  评论(0)    收藏  举报