Object:所有类的超类

  Object类是所有类的始祖,但是不用显示的用extends关键字,如果没有extends任何类,Object就会被认为是这个类的超类。

  在Java中,只有基本类型(byte、short、char、int、long、float、double、boolean)不是对象。但是基本类型数组都是拓展于Object类。

Object类中常用的方法:

    public boolean equals:用于检测一个对象是否等于另外一个对象,在Object类中,这个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用。

    instanceof:是Java的一个二元操作符,主要用于判断子类是否为父类的实现

    在Java中包含了150多个equals方法的实现,包括使用instanceof、getClass、捕获ClassCastException等等;

  public native int hashCode方法:

    hashCode(散列码)native方法,是由对象导出的一个整型值。散列码是由对象hash算法得来的。如果x和y是两个不同的对象,x.hashCode()基本上不等于y.hashCode()。hashCode的值为对象的存储地址;

  public String toString方法:

    用于返回表示对象值的字符串,一般在建entity类时可以重写此方法,因为直接调用object类的toString方法获得的字符串是:类名[email protected]+哈希编码;数组也需要重写toString方法:类型缩写[email protected]+哈希编码;

  public final native Class<?> getClass方法:final native方法,返回包含对象信息的类对象。包路径加类名;

  private static native void registerNatives();这需要学习JNI(JavaNative Interface);

  static {

    registerNatives();

  }

  protected native Object clone() throws CloneNotSupportExecption;

  使用这个方法需要实现Cloneable接口,重写子类clone方法调用父类clone方法

  

package fuxi;

import java.util.Date;

public class Employee implements Cloneable {
	private String name;
	private double salary;
	private Date hireDay;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	public Date getHireDay() {
		return hireDay;
	}

	public void setHireDay(Date hireDay) {
		this.hireDay = hireDay;
	}

	@Override
	public String toString() {
		return "Employee [name=" + name + ", salary=" + salary + ", hireDay=" + hireDay + "]";
	}

	public Employee(String name, double salary, Date hireDay) {
		this.name = name;
		this.salary = salary;
		this.hireDay = hireDay;
	}

	public Employee() {
		super();
	}
	/**默认的是protected访问,需要改成public,在这个方法中没有克隆所有可变域,这是浅拷贝*/
	@Override
	public Employee clone() throws CloneNotSupportedException {
		return (Employee)super.clone();
	}
       /**深拷贝,可变域都要拷贝*/
	@Override
	public Employee clone() throws CloneNotSupportedException {
                 Employee cloned = (Employee) super.clone();
                 cloned.hireDay = (Date) hireDay.clone();
		return cloned;
	}

}

  

以下是多线程相关的知识:

  public final native void notify():

  public final native void notifyAll():

  public final native void wait() throws InterruptedException:

  public final native void wait(long timeout) throws InterruptedException:

  public final native void wait(long timeout,int nanos) throws InterruptedException:

  protected void finalize() throws Throwable{}

  

原文地址:https://www.cnblogs.com/mayZhou/p/8516477.html

时间: 2024-07-30 15:15:45

Object:所有类的超类的相关文章

Object(所有类的超类)一些有用的方法讲解与实例演示

Object是所有类的始祖,java中的每个类的都是它拓展而来的. Object的euqals方法.hashCode方法.getClass方法和toString方法在操作对象时是非常有用的方法.     1.euqals方法      euqals方法用于检测一个对象是否等于另外一个对象(两个对象是否指向同一块存储区域),java语言规范要求euqals方法具有以下特性: 自反性.对称性.传递性.一致性并且对于任意的非空引用x,x.equals(null)应返回false. java7在java

我的java学习笔记(9)关于Object:所有类的超类

1.Object类是java所有类的始祖,java中的每一个类都是由它扩展而来的. 2.如果没有明确的指出超类,Object就被认为是这个类的超类. class a extends Object class a //可以缺省 3.可以使用Object类型变量引用任何类型的对象. Object e = new Employee("w1",100,1988,1,1); 4.在java中,只有基本类型不是对象,数组类型,不管是对象数组还是基本而类型的数组都可扩展于Object类. int[]

Object对象类

Object对象类是所有类的祖先,他是默认自动继承的 Java为什么要做一个对象类呢?对象类的目的就是归一了类型,他就是把所有的类所有的对象归纳成为 Object类型.因为对象他认为对象应该拥有一些什么方法和属性全部都定制下来.那么就也就规定了今后的都有哪些方法和属性. toString():String方法是父类留下来的一个方法,如果不重写那么就由Object来实现,如果重写那么这个方法就能写很多的东西.toString()方法其实 是用来打印一些类的信息来说明类的一些问题, toString

5.1 类、超类和子类

5.1 类.超类和子类 子类比超类拥有的功能更加丰富. 在本例中,Manager类比超类Employee封装了更多的数据,拥有更多的功能. 在Manager类中,增加了一个用于存储奖金信息的域,以及一个用于设置这个域的方法: class Manager extends Employee { private double bonus; ... public void setBouns(double b) { bonus = b; } } 如果有一个Manager对象,就可以使用setBonus方法

Core Java (十一) Java 继承,类,超类和子类

Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读书笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 继承关系 两个类之间存在三种关系: 依赖,uses-a,如果一个类的方法操纵另一个对象,我们就说一个类依赖于另一个类. 聚合(关联),has-a,一个对象包含另外一个对象,聚合关系意味着类A的对象包含类B的对象

System.Object 基类

System.Object 基类 System.Object在.Net中是所有类型的基类,任何类型都直接或间接地继承自System.Object.没有指定基类的类型都默认继承于System.Object. 基类特性 正由于所有的类型都继承于System.Object.因此,所有的类型都具有下面这些特性: GetType()方法,获取对象的类型. Equals.ReferenceEquals和==,判断对象是否相等. ToString()方法,获取对象的字符串信息,默认返回对象带命名空间的全名.

Java类、超类、包

定义和实例化与C#相同 特殊变量 super当前对象的父类,用于调用父类的变量和方法 this当前类对象 存取限制有3个 没有C#的interval,其他一样. public protected,类和派生类 private,类内部 继承 与C#一样,不能多重继承,多重继承用接口.用extends 基类.超类就是C#的基类 包 一组类.就是C#的命名空间,引用时用import

Java Object根类

Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起.作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现. Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入.Object类没有定义属性,一共有13个方法,具体的类定义结构如下图: 1.类构造器public Object(); 大部分情况下,Java中通过形如 new A(args..)形式创建一个属于该类型的对象.

继承——类、超类、子类

http://user.qzone.qq.com/1282179846/blog/1470248763 引入一个简单的例子: //Employee类 import java.util.*; public class Employee { private String name; private double salary; private Date hireday; public Employee(String n,double s,int year,int month,int day) { n