当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java入门

Java编程那些事儿74——java.lang包介绍

    Java编程那些事儿系列文章(全集目录)

    9.4 JDK API包名综述

    在整个JDK API中,大约包含1、200个包,总体来看,包名第一个名称主要有三种:java、javax和org.其中以java开头的包名是JDK的基础语言包,以javax开头的属于JDK扩展包(其中x是extend的简写),而以org开头的则是第三方组织提供的功能包(org是organization的简写)。而在JDK API中还包含了一些以com.sun开头的包名,这些是SUN公司提供的一些功能包,由于这些包中的类随着JDK版本的更改变化很大,不具备兼容性,所以未在标准的JDK API文档中进行公开。

    在本章接下来的内容中,首先介绍常用的类的功能以及基本使用,这些介绍主要涵盖java.lang包和java.util包中的内容。

    9.5 java.lang包

    java.lang包是Java基础语言包(其中lang是language(语言)的简写),该包中包含Java语言所需要的基本的功能类、接口等信息,是进行Java语言编程的基础。

    由于在进行Java语言编程时,该包的使用特别频繁,所以在Java语言中,该包是被默认引入的。

    下面就介绍一下该包中常见类的功能以及相关使用。

    9.5.1 Object

    Object类Java语言的灵魂,因为所有的类(除了Object类),都是该类的子类,即使不书写继承,系统也会自动继承该类,所以Object是整个Java语言继承树的唯一一个根,这就是Java语言特色的单根继承体系。包括数组也实现了该类中的方法。

    由于Java语言的这种单根继承体系,所以整个Java语言的结构中很方便的实现了很多复杂的特性,例如多线程等控制,也可以很方便的对于整个Java语言体系进行更新。

    由于Object类是Java语言中所有类的父类,所以Object类中的方法将出现在每个类的内部,熟悉该类中的常见方法中的使用,是每个程序员学习的基础。

    1、equals方法

    equals方法实现的功能是判断两个对象的内容是否相同。Object类中该方法的实现很简单,Object类中equals方法实现的代码如下(说明:该代码可以从JDK安装目录下的src.zip中找到):

                            public boolean equals(Object obj) {

                                     return (this == obj);

                       }

    在Object类中方法的实现比较简单,如果真正需要在项目中进行比较时,这个equals方法的作用是无法达到实际的要求的。所以如果在项目中涉及的类需要比较该类型的对象时,则必须覆盖equals方法。

    下面以一个简单的类为示例,编写一个简单的equals方法,源代码如下:

                            /**

 * equals 方法编写示例

 */

public class MyEquals {

                                     /** 对象成员变量 */

                                     String name;

                                     /** 基本数据类型成员变量 */

                                     int n;

        

                                     /**

                                      * 判断对象内容是否相同

                                      * @param obj 需要比较的对象

                                      */

                                     public boolean equals(Object obj){

                                               // 如果比较的内容是自身

                                               if(obj == this){

                                                        return true;

                                               }

                  

                                               // 对象类型不同

                                               if(!(obj instanceof MyEquals)){

                                                        return false;

                                               }

                                               // 转换成当前类类型

                                               MyEquals m = (MyEquals)obj;

                           

                                               /* 依次比较对象中每个变量 */

                                               //name 属性不同

                                               if(!name.equals(m.name)){

                                                        return false;

                                               }

                                               //n 属性不同

                                               if(!(n == m.n)){

                                                        return false;

                                               }

                  

                                               // 如果都相同,则返回 true

                                               return true;

                                     }

}

    在实际比较时,首先判断是否是自身,然后再判断对象的类型是否符合要求,可以使用instanceof关键字进行判断,该运算符的语法格式为:

    对象名 instanceof 类名

    如果对象名是后续类名类型的对象,则结果为true,否则为false.

    如果类型符合要求,然后就可以依次比较对象中每个属性的值是否相同了,如果有一个属性的值不相同则不相等。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接