zoukankan      html  css  js  c++  java
  • java中的Object、封装类(J2SE入门8)

    java中的根类Object

    java中所有的类的父类或直接或间接的或隐含的都是Object类。
    java不允许循环继承,也就是互相继承是不可以的。

    Object类中的finalize()一个对象被垃圾收集的时候,最后会由JVM调用这个对象的finalize方法

    Object类中有一个String toString()方法,返回该对象的字符串表示。Object类中的toString()方法他返回的是类名加上他的地址的一个字符串。在子类中推荐覆盖toString()方法。

    Object类中的boolean equals(Objecto)方法是用来比较对象的内容是否相等,其返回值是boolean类型的值,相同为真,不同则为假。实际上还是比较对象地址是否相同。String类覆盖了equals()方法,他比较是对象中的内容是否相同。子类中也推荐覆盖Object类中继承的equals()方法

    equals()的覆盖原则:
    自反性:x.equals(x) 为true
    对称性:y.equals(x) 和 x.equals(y) 的值要相同,要么都为true,要么都为false。
    传递性:x.equals(y)为true, y.equals(z)也为true ,那么x.equals(z)一定也为true。

    覆盖equals()方法的步骤:

    boolean equals(Object o){
    if(this==o) return true; //1,看看是不是一个对象
    if(o==null) return true; //2,看看对象是不是空
    if(!(o instanceof 本类类名)) return false; //看看是不是本类对象

    ...... //根据本类设计。
    }


    封装类

    java为每一个简单数据类型提供了一个封装类,使每个简单数据类型可以被Object来装载。

    除了int(Integer)和char(Character),其余类型首字母大写即成封装类类型名。

    转换字符的方式:
    int I=10;
    String s=I+” ”;
    String s1=String.valueOf(i);

    Int I=10;
    Interger I_class=new integer(I);

    封装类、字符串、基本类型间的转换

    Interger--------------------(Double(x.toString))------------>Double
    String -----------------(Integer.valueOf() )---------------->Integer
    Integer-----------------(x.toString() )--------------------->String
    int----------------------(100+””)------------------------->String
    String------------------(Integer.parseInt() )--------------->int
    Integer-----------------(Integer.intValue() )--------------->int



    学会查看javadoc的帮助文档。要先关注要使用方法的返回值类型,也就是要获得内容的类型,然后看方法名,JDK中的方法名基本上是见名知义,参数表,就是看需要什么才可以获得的需要的那些内容,也要看自己能够提供什么。

    注意:==在任何时候都是比较地址,这种比较永远不会被覆盖。

    程序员自己编写的类和JDK类是一种合作关系。(因为多态的存在,可能存在我们调用JDK类的情况,也可能存在JDK自动调用我们的类的情况。)

    注意:类型转换中double\Interger\String之间的转换最多。

    (注:所有使用内部类的地方都可以不用内部类,但使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。

    内部类是指在一个外部类的内部再定义一个类。
    *内部类可为静态,可用protected和private修饰。(而外部类不可以:顶级类只能使用public和default)。


  • 相关阅读:
    我和杨兄的不同的Code First简单权限设计
    JavaScript&JQ 004_JS闭包
    省市区三级联动[JSON+Jquery]
    JavaScript 005_JS数组的CRUD
    linq头脑风暴001_聚合函数
    类成员函数指针的特殊之处
    模拟手算,计算组合数C(m,n)
    命令行版扫雷(vc08)
    UNICODE,GBK,UTF8:编码格式的区别
    画高频PCB的心得
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197233.html
Copyright © 2011-2022 走看看