java object对象的方法_Java常见对象Object类中的个别方法

Java常见对象Object类

public int hashCode() : 返回该对象的哈希码值。

注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值。你可以理解成地址值。

packagecommon_object;public class Demo extendsObject{

}packagecommon_object;public classDemoTest {public static voidmain(String[] args) {

Demo d= newDemo();

System.out.println(d.hashCode());//1887400018

Demo d2 = newDemo();

System.out.println(d2.hashCode());//285377351

}

}

public final Class getclass() : 返回此Object的运行时类

Class类的方法:public String getName() : 以String 的形式返回此Class对象所表示的实体。

packagecommon_object;public class Demo extendsObject{

}packagecommon_object;public classDemoTest {public static voidmain(String[] args) {

Demo d= newDemo();

Class c=d.getClass();

System.out.println(c.getName());//common_object.Demo

String str = newDemo().getClass().getName();

System.out.println(str);//common_object.Demo

}

}

public String toString() : 返回该对象的字符串表示。

Integer类下的静态方法:public static String toHexString(int i) : 把一个整数转成一个十六进制表示的字符串。

packagecommon_object;public class Demo extendsObject{

}packagecommon_object;public classDemoTest {public static voidmain(String[] args) {

Demo d= newDemo();

System.out.println(d.hashCode());//1887400018

System.out.println(d.getClass().getName()); //common_object.Demo

System.out.println("-----------------------");

System.out.println(d.toString());//common_object.Demo@707f7052//toString() 方法的值等价于//getClass().getName() + '@' + Integer.toHexString(hashCode())//就等于//this.getClass().getName() + '@' + Integer.toHexString(this.hashCode())

System.out.println("-----------------------");

System.out.println(d.getClass().getName()+ '@' +Integer.toHexString(d.hashCode()));

System.out.println(d.toString());//common_object.Demo@707f7052//common_object.Demo@707f7052

}

}

这个信息的组成我们讲解了,但是这个信息是没有任何意义的,所以,建议所有的子类都重写该方法。

把该类的所有成员变量的值组成返回即可。重写的最终版方案就是自动生成toString()方法。

注意:直接输出一个对象的名称就是调用该对象的toString() 函数。

如何自动生成toString()方法。-------   .java 程序界面上,点击右键,选择 Source (Alt + Shift + S),在选择Generate toString...就可以了。

//重写toString() 方法。

packagecommon_object;public class Demo extendsObject{privateString name;private intage;publicDemo() {super();//TODO Auto-generated constructor stub

}public Demo(String name, intage) {super();this.name =name;this.age =age;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}

@OverridepublicString toString() {return "Demo [name=" + name + ", age=" + age + "]"; //这里就是toString()方法的重写。

}

}packagecommon_object;public classDemoTest {public static voidmain(String[] args) {

Demo d= newDemo();

System.out.println(d.hashCode());//1887400018

System.out.println(d.getClass().getName()); //common_object.Demo

System.out.println("-----------------------");

System.out.println(d.toString());//Demo [name=null, age=0] 在这里改变//toString() 方法的值等价于//getClass().getName() + '@' + Integer.toHexString(hashCode())//就等于//this.getClass().getName() + '@' + Integer.toHexString(this.hashCode())

System.out.println("-----------------------");

System.out.println(d.getClass().getName()+ '@' +Integer.toHexString(d.hashCode()));

System.out.println(d.toString());//common_object.Demo@707f7052//Demo [name=null, age=0] 这里也有改变

}

}

public boolean equals(Object obj) : 指示其他某个对象是否与此对象“相等”。

这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们又要重写这个函数。

一般都是用来比较对象成员变量值是否相同。

重写最终版可以利用 eclipse 自动生成。 -------   .java 程序界面上,点击右键,选择 Source (Alt + Shift + S),在选择Generate hashCode() 和 equals()... 就可以了。

packagecommon_object;public class Demo extendsObject{privateString name;private intage;publicDemo() {super();//TODO Auto-generated constructor stub

}public Demo(String name, intage) {super();this.name =name;this.age =age;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}

@Overridepublic inthashCode() {final int prime = 31;int result = 1;

result= prime * result +age;

result= prime * result + ((name == null) ? 0: name.hashCode());returnresult;

}

@Overridepublic booleanequals(Object obj) {if (this ==obj)return true;if (obj == null)return false;if (getClass() !=obj.getClass())//另一种表示方法://格式:对象名 instanceof 类名//表示:判断对象名是否是该类名一个对象//if (!(obj instanceof Demo))//return false;

return false;

Demo other=(Demo) obj;if (age !=other.age)return false;if (name == null) {if (other.name != null)return false;

}else if (!name.equals(other.name))return false;return true;

}

}packagecommon_object;public classDemoTest {public static voidmain(String[] args) {

Demo d1= new Demo("白",21);

Demo d2= new Demo("黑",20);

System.out.println(d1.equals(d2));//false

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

很认真地聊一聊程序员的自我修养

最近看了《浅谈程序员的英语学习》,对于文章中的观点我非常认同,英语是非常重要的,但文章站的高度还是太高,具体表述的学习方法我不是很认同,也认为不太实际,恰好之前有一篇一直没有发表的文章想重新发布&a…

Java设计模式教程

课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法。 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被改编为其他各种学科,包括计算机科学。 设计模式是在软件设计中给定上下文中对常见问题的通…

java字符串学习_java之字符串学习记录

java之字符串学习记录public class StringDemo {public static void main(String[] args) {//静态初始化字符串String s1 "hello china!";String s3 "Hello China!";System.out.println(s1);//动态初始化字符串String s2 new String("hello china!…

IMPDP导入实例(oracle)

【IMPDP导入实例】: su - oracle sqlplus /nolog conn /as sysdba select * from dba_directories; 开始 通过Xshell连接linux服务器后: Connecting to 10.149.56.40:22... [rootoracle ~]# su - oracle [oracleoracle ~]$ sqlplus /nolog SQL> conn …

java中解密技术是什么_详解Java 加密解密技术的分类和归纳

这篇文章主要介绍了Java加密解密基础分类方法汇总的相关资料,需要的朋友可以参考下Java 加密解密基础:密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学&#xff1b…

三级菜单的三个版本

1.这是我们通过一般方式进行的,就是按照正常的思路来写的,一步一步走 1 #_author:sangshijia2 #date:2016/8/243 menu_map{4 "河南":{5 "郑州":["新密","登封","中牟"],6 "…

java实现细胞自动机_Java自动机实现

java实现细胞自动机这篇文章将解决在Java中实现有限状态机的问题。 如果您不知道什么是FSM或在什么地方可以使用FSM,您可能会热衷于阅读本 , 本和本 。 如果您发现自己在设计上使用FSM的情况,则可能已经开始为实现相同接口的每个状态编写类。…

代理设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

调研《构建之法》指导下的历届作品

项目名称:未视APP学校:吉首大学团队:北京必趣科技有限公司 简介:发现未知的视界http://plus.jlu.edu.cn/item.php?id377 延续电影瞬间的感动,发现视界未知的温暖 理由:无优势,很多劣势,可是延续电影瞬间的感动&#x…

java图形旋转动画_Java动画:旋转图像

我将假设您了解如何旋转图像一次.如果你不这样做,你可以通过快速谷歌搜索找到它.您需要的是一个为您旋转它的后台进程.它的工作原理如下:/*** Warning - this class is UNSYNCHRONIZED!*/public class RotatableImage {Image image;float currentDegrees;public Rot…

java golang速度_golang思考之运行速度

有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢。学习吧测试发现golang的运行速度和Java差不多。首先,使用各种语言编写同一个CPU密集的程序sum。C(或C)#include #include #include int main(void){int iN;int64_t jN;scanf(&quo…

java 中的正则表达式_Java中的正则表达式–软介绍

java 中的正则表达式正则表达式是一种可以应用于文本(Java中的String)的模式。 Java提供了java.util.regex包,用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似,并且非常易于学习。 正则表达式匹配文本&…

HTML5移动端触摸事件

工作了近一个月了 因为公司是主要偏向于移动端,开始不懂移动端事件 一直用的click click在安卓端没有什么问题 但在IOS端就有问题了点击之后会延迟半秒 多亏旁边大神指点 原来 iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS…

用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...

基于Java的教师信息管理系统的设计与实现论文职场大变样社区():下载毕业设计成品全套资料,全部50元以下毕业设计(论文)任务书第1页毕业设计(论文)题目:基于java的教师信息管理系统的设计与实现毕业设计(论文)要求及原始数据(资料)&#xff1a…

春云边车

我有一个部署到基于NetflixOSS的云的应用程序,该应用程序具有以下结构: 本质上是一种将信息持久保存到Cassandra群集的服务。 所有应用程序都已注册到Eureka –因此,在本例中,该服务以及Cassandra节点都已在Eureka中注册&#xf…

java json写入内存_如何在客户端上减少JSON.stringify使用的内存量?

使用JSON.stringify将大型javascript对象转换为字符串时,有没有办法减少客户端上的内存使用量?我正在寻找解决下面问题的东西,但是对于客户端上的javascript .当我尝试一个简单的JSON.stringify(big_object)时,它会迅速占用所有RA…

GridView的一些常用属性:

GridView的一些常用属性:android:numColumns”auto_fit” //GridView的列数设置为自动android:columnWidth”90dp " //每列的宽度,也就是Item的宽度android:stretchMode”columnWidth" //缩放与列宽大小同步android:verticalSpacing…

activemq端口好_ActiveMQ已准备好黄金时段

activemq端口好ActiveMQ项目始于2005年-在很大程度上,它一直是Apache Software Foundation的顶级项目。 ActiveMQ项目的目的一直是提供世界一流的企业消息传递解决方案,使经纪人能够提供从支持IP的智能设备一直到企业后端的高可用性的连通性。 ActiveMQ提…

js创建节点,小试牛刀

实现如下的功能 非常简单的一个小训练。 思想&#xff1a; 1.首先创建text和一个button 代码如下、 1 <body> 2 <input type"text" id"text1"/> 3 <input id"btn1" type"button" value"创建" /> 4 <u…

java 8是指什么_java中8个基本数据类型到底是指什么?是什么意思,有什么作用?我需要权威的回答,...

在java中一共有八种基本数据类型&#xff0c;他们分别是byte、short、int、long、float、double、char、boolean整型其中byte、short、int、long都是表示整数的&#xff0c;只不过他们的取值范围不一样byte的取值范围为-128~127&#xff0c;占用1个字节(-2的7次方到2的7次方-1)…