`
yajie
  • 浏览: 212576 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java常用类 Object类简单用法和深入

阅读更多
  在JAVA 开发,也许我们常常调用各种类库,很少用到java.lang.Object,至少到现在我是很少用到哦,也许是自己的水平问题吧,不过做为JAVA程序员,还是有必要去了解下
Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

1.Object类
java.lang.Object
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
常用方法:
public native int hashCode();
返回该对象的哈希码值

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
返回该对象的字符串表示。建议所有子类都重写此方法。

public boolean equals(Object obj) {
return (this == obj);
}
返回其他某个对象是否与此对象“相等”。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
String类重写了equals()和hashCode()方法,可以参考

protected void finalize() throws Throwable {}
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。

protected native Object clone() throws CloneNotSupportedException;
创建并返回此对象的一个副本.所有要进行"克隆"的对象所属的类必须实现java.lang.Cloneable接口.下面给出一个实例实现深度拷贝功能:

/**
* clone()方法的应用
*/
package com.java.basic;

/**
* @author Administrator
*
*/
class Person implements Cloneable {

private String name;
private int age;

public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}

public Person() {
  super();
}

public Person(String name, int age) {
  this();
  this.name = name;
  this.age = age;
}


@Override
public String toString() {
  // TODO Auto-generated method stub
  return "Name:" + this.name + "\tAge:" + age;
}
@Override
public Object clone() {
  Person p = null;  
  try {
   p = (Person) super.clone();
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
  return p;
}
}



/**
* clone()方法的应用
*/
package com.java.basic;

/**
* @author Administrator
*
*/
public class Book implements Cloneable {

String bookName;
double price;
Person author;

public Book(String bookName, double price, Person author) {
  super();
  this.bookName = bookName;
  this.price = price;
  this.author = author;
}

@Override
public Object clone() {
  Book book = null;
  try {
   book = (Book) super.clone();
  } catch (CloneNotSupportedException e) {  
   e.printStackTrace();
  }
  book.author = (Person) this.author.clone();
  return book;
}

@Override
public String toString() {
  // TODO Auto-generated method stub
  return "bookName:" + bookName + "\t" + "price:" + price + "\t" + author;
}

}

/**
* 深度clone()方法的测试
*/
package com.java.basic;

/**
* @author Administrator
*
*/
public class TestDeepCopy {

/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  Book b1 = new Book("Java编程", 30.50, new Person("张三", 34));
  Book b2 = (Book) b1.clone();
  
  b2.price = 44.0;
  b2.author.setAge(45);
  b2.author.setName("李四");
  b2.bookName = "Java开发";
  
  System.out.println(b1);
  System.out.println(b2);
}

}
分享到:
评论

相关推荐

    Java 常用类 的介绍

    在Java编程语言中,了解常用的类是非常重要的,因为它们构成了Java基础框架的重要组成部分。这里我们将详细讨论几个核心的Java类...通过深入了解和熟练使用这些类,开发者能够更好地构建复杂的应用程序并解决实际问题。

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    在Java中,`Object`类是最基础的类,所有其他类都直接或间接继承自它。因此了解并掌握`Object`类的方法对于深入理解Java编程至关重要。 1. **toString() 方法**: - **用途**:提供了一个方便的方式来打印或展示...

    开发十六年的积累(java常用类)

    以上只是Java常用类的一小部分,实际上还有许多其他类和库,如正则表达式Pattern和Matcher,多线程并发工具类CyclicBarrier、CountDownLatch等,这些都是在开发过程中频繁使用的工具。通过深入理解和熟练运用这些类...

    IBM-ETP-java培训09.Java 常用类讲解.ppt

    在这个“IBM-ETP-java培训09”部分,我们将重点关注Java中的常用类,这些类构成了Java标准库的基础,对于日常编程工作至关重要。 Java的标准库,也称为Java API,包含了大量预定义的类和接口,涵盖了输入输出、网络...

    Java的Object类讲解案例代码 equals()、hashCode()、finalize()、clone()、wait()

    本案例代码将详细展示Object类的使用方法,并提供一些实际场景下的案例,以帮助开发者更好地理解和运用这些方法。 这份案例代码适合以下人群: Java初学者:如果你是刚开始学习Java编程,那么Object类是一个重要的...

    java常用util工具类

    Java中的`util`工具类是Java Standard Edition (Java SE)库中的重要组成部分,它们提供了许多实用功能,极大地简化了开发工作。在这个主题中,我们将深入探讨`StringUtil`、`FileUtil`、`MD5`、`JsonUtil`以及`...

    day009Java常用类.doc

    本课程将深入探讨Java中常用的类,包括8个包装类、System和Runtime类以及String、StringBuffer和StringBuilder的使用。 首先,我们要明白学习Java常用类的重要性。在实际开发中,这些类被广泛使用,因为它们已经由...

    java中的String类常用方法解析(一)

    本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符串。 - `String(char[] value)`:根据字符数组创建字符串。 - `String(String ...

    Java基础知识-day01【Object类、常用API】.pdf

    本章将深入探讨Object类的一些核心方法,如toString()和equals(),以及日期类和StringBuilder类的使用,同时涵盖包装类的概念和自动装箱、拆箱。 1. Object类 - **概述**:Object类位于java.lang包下,它是所有...

    第 7 讲 JAVA常用类及应用2

    本讲主要关注Java内置的常用类,包括Object类、包装数据类、时间日期类、数学类、向量类、字符串类、输入输出类等,并通过实例演示如何将这些类有效地应用于实际项目中。 首先,我们来看Java的Object类,它是所有类...

    Java中的面向对象编程Object-Oriented Programming in Java

    - **框架和库**:了解Spring、Hibernate等流行框架的使用方法。 ##### 3. 对于专业开发者: - **性能优化**:学习如何编写高效的代码,包括内存管理和线程同步等方面的知识。 - **设计模式**:掌握常用的设计模式...

    java常用类总结.docx

    本文档详细介绍了Java中常用的类,包括`String`类、包装类(如`Integer`和`Character`)、枚举类型等。通过学习这些基础知识,开发者可以更加高效地编写出高质量的Java程序。同时,了解如何正确地覆盖`equals`、`...

    Java常用词汇汇总

    1. **类(Class)**:类是Java中的核心构造块,它定义了一组相关的属性和方法,可以看作是对象的模板或蓝图。 2. **对象(Object)**:对象是类的实例,它拥有类所定义的属性和行为。在Java中,一切皆为对象。 3. ...

    Java常用英语单词

    1. **类(Class)**:在Java中,类是面向对象编程的基础,它定义了对象的属性和行为。 2. **对象(Object)**:对象是类的实例,它可以执行类中定义的操作。 3. **方法(Method)**:方法是类中的函数,用于封装...

    java-Common-Tools.rar_common_java ObjectUtil_java comm_java 常用类

    在Java中,`Object`是所有类的基类,它定义了一些基本的方法,如`equals()`、`hashCode()`和`toString()`。`ObjectUtil`可能包含以下功能: 1. **对象比较**:提供一个统一的方法来比较两个对象,避免了空指针异常...

    常用公共JAVA类,基础类

    Java是一种广泛使用的面向对象的编程语言,其丰富的类库为开发者提供了极大的便利。"常用公共JAVA类,基础类"这个...通过深入理解和使用这些类,开发者可以提升代码质量和开发效率,同时也能更好地掌握Java编程的精髓。

    Chp10 Object类与常用类,内部类.pdf

    在Java编程语言中,`Object`类是一个非常关键的类,它...总的来说,理解和掌握`Object`类及其方法、垃圾回收机制、包装类和`String`类以及内部类的使用,对于深入理解Java编程至关重要,也是初学者必须掌握的基础知识。

    java常用工具类

    本篇将详细讲解标题为"java常用工具类"的几个关键组件,如JSONUtil、StringUtil、FileUtil等,并深入探讨它们的功能和使用场景。 首先,JSONUtil是处理JSON(JavaScript Object Notation)数据的工具类。JSON是一种...

    07-《Java常用基础类》.rar

    在这个"07-《Java常用基础类》"教程中,我们将深入探讨Java中的基础类,这些类是构建任何Java应用程序的基础。本教程可能包括了课程案例、课后作业以及相关的PPT讲解,旨在帮助学习者掌握Java编程的核心概念。 首先...

Global site tag (gtag.js) - Google Analytics