
5继承
Whaleson
这个作者很懒,什么都没留下…
展开
-
5.8 继承设计技巧
将公共操作和域放在超类;不要使用受保护的类。不使用protected的原因:(访问域)子类集合无限制,会破坏封装性。同一个包中的所有类都可以访问protected域。使用继承实现"is-a"关系除非所有继承的方法都有意义,否则不要使用继承。覆盖方法时,不要改变预期行为。使用多态,而非类型信息。//对于下main这种形式的代码:if(x is of type1) acti...原创 2019-07-06 09:11:14 · 129 阅读 · 0 评论 -
5.7 反射
能够分析类能力的类称为反射(reflective)。反射可以用来:运行时分析类的能力。在运行时查看对象。实现通用的数组操作代码。使用反射的人主要是工具构造者。5.7.1 Class类 //获取Class的方式。 e.getClass();//第一种方式 String className = "java.util.Random";//第二种方式 ...原创 2019-07-03 23:28:57 · 164 阅读 · 0 评论 -
5.6 枚举类
ordinal方法返回enum声明中枚举常量的位置,从0开始计数。 Size.MEDIUM.ordinal();java.lang.Enum < E>int compareTo(E other)如果枚举常量出现再other之前,则返回一个负值。...原创 2019-07-03 19:26:07 · 150 阅读 · 0 评论 -
5.5参数数量可变的方法
Object… args;Object… 参数类型与Object[]完全一样。原创 2019-07-03 07:47:45 · 175 阅读 · 0 评论 -
5.4 对象包装器与自动装箱
包装器类 Integer Long Float Double Short Byte Character Void Boolean(前六个类派生于公共的超类Number)。对象包装器是不可变的。对象包装器类还是final的,因此不能定义它们的子类。ArrayList<Integer> list = new ArrayList<>();由于每个值都包装在对象中,所以A...原创 2019-07-03 07:44:36 · 104 阅读 · 0 评论 -
5.3 泛型数组列表
ArraryList,使用起来有点儿像数组,但在删除和添加元素时,具有自动调节数组容量的功能。如果调用add且内部数组已经满了,数组列表就将自动地创建一个更大的数组,并将所有的对象从较小的数组中拷贝到较大的数组中。如果已经清楚或者估计出数组可能存储的元素数量,就可在填充数组之前调用ensureCapacity方法。 list.ensureCapacity(100);还可以把初...原创 2019-07-03 07:26:51 · 155 阅读 · 0 评论 -
5.2 Object:所有类的超类
如果没有明确的指出超类,Object就被认为是这个类的超类。Object类型的变量只能用于作为各种值的通用持有者。要相对其中的内容进行具体的操作,还需要清楚对象的原始类型,并进行相应的类型转换。在Java中只有基本类型不是对象,如数值、字符和布尔。5.2.1 equals方法如果两个对象的状态都相等,就认为这两个对象是相等的。子类定义equals方法时,先调用超类的eq...原创 2019-07-02 22:26:40 · 172 阅读 · 0 评论 -
5.1 类、超类和子类
5.1.1 定义子类派生于 == 继承于。已经存在的类称为父类(parent class)、基类(base class)、超类(superclass);新类称为子类(subclass)、派生类(derived class)或孩子类(child class)。在通过扩展超类定义子类的时候,仅需要指出子类与超类的不同之处。因此在设计子类的时候,应该将通用的方法放在超类中,而将具有特殊用途的方...原创 2019-07-01 23:02:25 · 1812 阅读 · 0 评论