Java Class Object
Object类
- 它是所有类的基类。
public class Person
{
}
//实际上是
public class Person extends Object
{
}
Object类的方法
toString方法
- 返回值是一个描述当前对象有关信息的字符串。默认定义是:“类名+@+哈希编码”。
- 推荐每个类对toString方法重写。
public class TestToString
{
public static void main(String args[])
{
Dog d = new Dog;
System.out.println("d:="+d); //系统会调用toString方法
}
}
class Dog
{
public String toString() //重写
{
return "I'm a cool Dog!";
}
}
哈希编码
- 在Java程序中,会有很多个对象,程序执行的过程中会不断地使用这些对象。
- Java虚拟机就要找到这些对象的地址。显然是不可能在内存中来回搜索。
- 往往采取措施就是,用一张表来记录每个对象的位置,而这张表一般用哈希编码来记录,每个对象都有自己独一无二的哈希编码,根据这个编码就可以很快的确定这个对象的位置。
- 它独一无二的代表了这个对象,还可以通过它来找到这个对象的位置
equals方法
- 判断两个对象是否相同,是返回true,否则返回false。
- 默认比较的根据是对象的地址
- 不满足于这种比较方法,可以重写。
public class TestEquals
{
public static void main(String args[])
{
Cat c1 = new Cat();
Cat c2 = new Cat();
System.out.println(c1 == c2);
System.out.println(c1.equals(c2));
//如果不重写,以上两种写法都是比较地址,换汤不换药
}
}
class Cat
{
int color;
int height;
int weight;
//重写equals方法
public boolean equals(Object obj) //千万不能把形参写成Cat,这不符合重写的原则
{
if(obj == NULL) return false; //空引用返回false;
else
{
if(obj instanceof Cat) /判断obj是不是Cat的一个对象
{
Cat c = (Cat)obj; //Object对象强制转化为Cat对象
if(c.color == this.color&&c.herght == this.height&&c.weight == this.weight) //比较
{
return true;
}
}
}
return false;
}
}
总结
每个类从Object继承的时候,可能继承的Object中的方法已经重写。就比如String类中的equals方法已经重写。
Java Class Object的更多相关文章
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- Java class,Object,Class的区别
代码: http://www.cnblogs.com/hongdada/p/6060487.html package com.company; public class Main { public s ...
- centos 解压jdk安装包方式安装jdk 出现 java/lang/NoClassDefFoundError: java/lang/Object 错误
安装完JDK ,设定环境变量后出现这个错误: [root@localhost lib]# javacError occurred during initialization of VMjava/lan ...
- Java总结篇系列:java.lang.Object
从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解. Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java ...
- type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object
今天在进行代码检查的时候出现下面的异常: type parameters of <T>T cannot be determined; no unique maximal instance ...
- 解决本机安装多版本jdk导致The type java.lang.Object cannot be resolved It is indirectly referenced ...
本机开始安装了jdk1.6,然后安装了jdk1.8 当在调自动化的时候,发现传入函数传参String类型,报错The type java.lang.Object cannot be resolved ...
- 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例
ant 命令行方式执行build javac编译class出现 泛型无法转换 无法确定 <X>X 的类型参数:对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最 ...
- Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
本地原来已经安装了JAVA JDK1.7并配置好了环境变量; 然后又安装了JDK8,想2个版本并存. 然后发现eclipse 打不开,闪退.然后查看环境: 发现 C:\Users\Administra ...
- 转!!java中Object转String
Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString ...
- eclipse中java文件报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
问题:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class fi ...
随机推荐
- Ubantu 更新时间方法
1.首先查看时区: swfsadmin@swfsubuntu:~$ date -RTue, 17 Dec 2013 18:23:01 +0800 如果要修改时区,执行sudo tzselect 2.选 ...
- HTML5中的拖拽与拖放(drag&&drop)
1.drag 当拖动某个元素时,将会依次触发下列事件: 1)dragstart:按下鼠标键并开始移动鼠标时,会触发该事件 2)drag:dragstart触发后,随即便触发drag事件,而且在元素被拖 ...
- burp实时获取token
在一些web网站里 会加入token来限制用户的一些操作 如果用户的请求里面没有这个token 那么我们的一些操作就会很麻烦 现在 我来演示一下burp如何自动更新token 首先 需要dvwa ...
- 谁能笑到最后,约瑟夫环-Josephus问题求解
一. 简述Josephus问题 N个人站成一环,从1号开始,用刀将环中后面一个人“消灭“”掉,之后再将刀递给下一个人,这样依次处理,最后留下一个幸存者. 二. 求解方法 1. 约瑟夫问题如果使用 ...
- NUCLEO-L053R8 RCC时钟树 MCO输出
RCC时钟配置实验 最近玩了一下Nucleo-L053R8板子,即STM32L053R8T6.浏览了RCC章节后,顺便做了个小实验,现在给大伙分享一下. 实验非常简单,配置一下系统时钟,可以通过肉眼观 ...
- Java虚拟机(JVM)内存区域
Java虚拟机内存区域分为五部分:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区.其中程序计数器.Java虚拟机栈.本地方法栈属于线程私有内存区,其生命周期与线程相同,随线程的产 ...
- java入门---对象和类&概念详解&实例
Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 这篇文章,我们主要来看下: 对象:对象是类的一个实例(对象不是找个女朋友),有状态 ...
- Java设计模式(6)——创建型模式之原型模式(Prototype)
一.概述 概念 // 引用自<Java与模式> UML图 第二种:登记式 二.实践 先导知识 对象的拷贝: 直接赋值:此时只是相当于a1,a2指向同一个对象,无论哪一个操作的都是同一个对象 ...
- [Jmeter]用Jmeter做压力测试(分布式)
Jmeter 是Java应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具提 ...
- memory引擎和innodb引擎速度对比
ysql> insert into innodb_test (name) select name from innodb_test; Query OK, rows affected ( min ...