文档章节

《疯狂java讲义2》读书笔记——处理对象

我的夏幸运
 我的夏幸运
发布于 2016/11/13 22:16
字数 604
阅读 18
收藏 0

        java对象都是Object类的实例,都可直接调用该类中定义的方法,这些方法提供了处理java对象的通用方法。

打印对象和toString方法

        

class  Person
{
	private String name;
	public Person(String name)
	{
		this.name = name;
	}
	public void info()
	{
		System.out.println("此人名为:"+name);
	}
}
public class PrintObject
{
	public static void main(String[]args)
	{
		//创建一个person对象,将之赋给p变量
		Person p = new Person("孙悟空");
		//打印p所引用的Person对象
		System.out.println(p);
	}
}

运行上面程序后可能输出不同的结果:@符号后的6位十六进制数字可能发生改变。

        toString()方法是Object类里的一个实例方法,所有的java实例都是Object类的子类,所以所有的java对象都具有toString()方法。

        当java对象和字符串进行连接运算时,系统自动调用toString对象方法的返回值 进行运算。toString方法是一个“自我描述”的方法,通常用于实现一个功能:当程序员直接打印该对象时,系统将会输出该对象的"自我描述"信息,来告诉外界该对象具有的状态信息。

        该方法总是返回该对象实现类的”类名+@+hashCode“值,这个返回值并不能真正实现"自我描述"的功能,需要重写toString方法。

==和equals方法

        ==运算符判断两个基本类型变量的值相等时,返回true;判断引用类型变量时,必须指向同一个对象才返回true。

        equlas方法是一个实例方法,所以所有引用变量都可调用该方法来判断是否与其他引用变量相等。String已经重写了equals()方法,所以只要两个字符串包含的字符序列相同就返回true。正确的重写equals方法应该满足下列条件:

》自反性:对任意x,x.equals(x)一定返回true;

》对称性:对任意x,y,z,如果x.equals(y)返回ture,y.equals(z)一定返回true。

》传递性:对任意x和y,如果对象中用于 等价比较的信息没有改变,那么无论调用x.equeals(y)多少次,返回的结果应该保持一致,要么 一直是true或fals。

》对任何不是null的x,x.equals(null)一定返回false。

这里涉及到反射,可以参考反射方面的知识。

© 著作权归作者所有

我的夏幸运
粉丝 1
博文 7
码字总数 6566
作品 0
运城
程序员
私信 提问
高手问答第 223 期 —— Python 摘下年度编程语言称号,你上车了吗?

OSCHINA 本期高手问答(2019年1月9日 — 2019年1月15日)我们请来了李刚老师@疯狂软件李刚 和大家一起探讨 Python 相关的问题。 李刚,十余年的软件开发从业经验,疯狂软件教育中心教学总监,疯...

局长
01/09
5.3K
54
高手问答第 188 期 — 从 Java 开发说起,聊聊 Java 的现状和未来

OSCHINA 本期高手问答(3 月 7 日 - 3 月 13 日)我们请来了李刚老师@疯狂软件李刚 和大家一起探讨关于 Java 的问题。 李刚,十余年的软件开发从业经验,疯狂软件教育中心教学总监,疯狂 Java...

局长
2018/03/07
12.5K
72
三大java技术牛人齐聚广州传智播客——超强师资,超低价格,超深课程,超真项目

三大java技术牛人齐聚广州传智播客——超强师资,超低价格,超深课程,超真项目 中国的软件教育已经坑害了不少软件工程师苗子,传智播客自成立之日起就立志于改变中国的软件教育。随着传智播...

传智播客java.net培训
2010/03/02
291
1
疯狂java讲义ed3 读书笔记

百度脑图: http://naotu.baidu.com/file/c07a7be593acee73e72451ad1d393f5d?token=ce49cc74688fd5fd 虽然 java 基础看了不下 3 遍了,可是不怎么用 java 写代码 花了几天粗略的看了一下, 算是...

daydaygo
2018/11/08
0
0
读书笔记之《Java并发编程的艺术》-并发编程基础

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
4K
8

没有更多内容

加载失败,请刷新页面

加载更多

JS 打印控制

JS 打印控制 var PrintStartString = "<!--打印开始标示符-->";//设置打印开始区域var PrintEndString = "<!--打印结束标示符-->";//设置打印结束区域var HtmlText = window.do......

DrChenXX
21分钟前
5
0
LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ......

slagga
26分钟前
5
0
《JavaScript正则表达式迷你书》读书笔记

正则基础 常见简写形式 字符组 具体含义 记忆方式 \d 表示 [0-9]。表示是一位数字。 其英文是 digit(数字) \D 表示 [^0-9]。表示除数字外的任意字符。 \w 表示 [0-9a-zA-Z_]。表示数字、大小...

muzi131313
31分钟前
4
0
Git的反悔操作

概述 这次主要来讲讲Git的反悔操作,自己平时在写代码的过程中经常会出现想要弃用所有的改动或回滚到上一次commit的情况。Git上的反悔操作有reset、rebase、revert等,每个操作各有区别和对应...

duduYZ
32分钟前
3
0
实现双向绑定Proxy比defineproperty优劣如何?

前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向...

寻找海蓝
44分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部