从题目中可以看出来,今天只是java面向对象的入门级探讨。看看今天的内容。


为什仫说英语呢?我的英语从三年级都不好,一直到现在,但我们的未来职业要求我们必须懂英语,就算不能像马云一样溜吧,但最起码能看懂英语版的专业书籍。其实,专业上的英语挺简单的,如果你能静下心看看那些书,你会发现,书上的语法很简单,词汇还都是高中的,只有极个别的专业词汇有点难,记住就好啦,反正不多,所以,这里说几个英语名词。

面向对象三大特性:encapsulation:封装  inheritance:继承  polymorphism:多态

还有两个词用的比较多:arguments 和 parameters : 实参 和 形参。

编程语言的函数或方法都只能放回一个值(我只学过的几个,语言之多,不知有没有特例),有时想返回多个值,可以数组(当我刚学c语言的时候,我都不知道这样做),python好像能返回多个,直观上如此,但其实python返回的是一个元组,把你的多个返回值构成一个元组返回的。


一、封装

刚学面向对象时,对封装思想不甚了解,特别是从面向过程转过来的人。为什么要对属性进行封装呢?外部直接调用不是很方便吗?

其一原因:通过封装,外部只能通过你的getter() ,setter()来间接访问你的属性,那你不是可以在gette and setter 中做些什么了吗。比如:你写了个Person类,其中一个属性是年龄age,age的范围肯定是 age>= 0的(不知有没有长生的人),如果你不封装,外部可以把 -100 赋值给 age,显然这是不合理的,但通过setter来赋值时,你可以对传进的值进行判断如果小于 0,就抛个异常给调用者。是不是很好,通过封装你可以对传进的值进行一些判定或其他的操作啦。

你可能要反驳说啦,我见过一些setter or getter,就是最简单的赋值啊,没啥功能啊。下面就是另一个重要的使用封装的原因啦。

其二:The point to setters (and getters, too) is that you can change your mind later,without breaking anybody else’s code! 你写了个一款游戏,刚开始时你对游戏充钱的范围设置应该很低,假设充钱的下限是 一毛(哈哈),等过了一段时间,你的游戏大火,为了make more money,你要提高充钱的下限啦(反正总会有人充的,毕竟玩家多嘛),设为price >= 100。你想想,如果开发时你的公司员工都是把属性设置为public,如果想进行更改,你就的在原来需要给price赋值的地方做个if(money >= 100){//ok } else{//buy failure}判断,或者写setter(getter也一样),进行对传进的值判断,然后,在原来使用price的地方调用setter().看见了没有不用封装,以后想改都很麻烦,所以还是使用封装吧,别看现在可能没啥用,以后你有别的想法想改时,就很方便啦。记住这句话:you can change your mind later,without breaking anybody else’s code!


插一段关于对象属性和局部变量初始值的问题:


二、“==”与equals方法的区别:

“==”比较的是两个变量在内存中的 bits 是否相等不关心你的类型是否相等,比如 int a = 1, b = 1; a == b //true  byte c = 1; a == c //also true,因为a,c在内存中的bits都是0000 0000 0000 0001。对于对象引用变量来书,他们比较是是否指向相同的对象,其实还是一样的,指向相同的对象,他们的bits就是相同的。所以,“==”,主要还是比较两个变量是否指向相同的对象(基本变量没啥好说的)。

有时,你不关心两个变量是否指向同一个对象,你只是关心两个变量指向的对象的内容是否完全一样。上代码,具体看看:

你猜结果是true or false:

想想为什么.

再看一个对比的:

再猜猜结果:

奇妙的事情发生啦,str1 和 str2的值都是“hello",为什么他两相比的结果是false。因为,str1,str2指向的对象不同,虽然对象中的内容是相同的,但"=="只关心变量的二进制数是否相同,因为指向不同的对象,所以,他们之间的bits不可能相同。

那我想看两个字符串是否相同咋办?那就要用equals方法啦。

把判断语句稍微一改:

结果就是想要的啦:

记住这两句话:

Use == to compare two primitives, or to see if two references refer to the  same object.
Use the equals() method to see if two  different objects are equal.

留个问题,自己写个类,用“==” 和 equals()方法来比较一下,结果可能会出乎你的意料。具体如何,且看不知多少下回的分析。


When everything seems to be going against you, remember that the airplane takes off against the wind, not with it.

只有通过逆境,你才能变得强大。(我都被自己给翻译服啦,呵呵)

data:image/jpeg;base64,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

走进java对象的门口的更多相关文章

  1. Java对象序列化剖析

    对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...

  2. 通过JAXB完成Java对象与XML之间的转换

    Java对象转换XML的过程叫marshal. XML转换到Java对象的过程叫unmarshal. 一.Java对象转化为XML 这里省略getter和setter方法 通过标注@XMLRootEl ...

  3. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  4. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  5. 理解Java对象序列化

    http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...

  6. java对象与XML相互转化

    起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...

  7. java 对象序列化与反序列化

    Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化  Java序列化是指把Java对象转换为 ...

  8. Java对象大小计算

    这篇说说如何计算Java对象大小的方法.之前在聊聊高并发(四)Java对象的表示模型和运行时内存表示 这篇中已经说了Java对象的内存表示模型是Oop-Klass模型. 普通对象的结构如下,按64位机 ...

  9. Java基础学习总结——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

随机推荐

  1. "mkimage" command not found - U-Boot images will not be built

    编译内核的时候出现错误:"mkimage" command not found - U-Boot images will not be built 参考链接 http://blog ...

  2. 对System.ComponentModel.DataAnnotations 的学习应用

    摘要 你还在为了验证一个Class对象中很多数据的有效性而写很多If条件判断吗?我也同样遇到这种问题,不过,最近学了一项新的方法,让我不在写很多if条件做判断,通过给属性标注特性来验证数据规则,从此再 ...

  3. iOS导航栏的正确隐藏方式【转】

    简介:在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如 ...

  4. 导入csv文件到mysql

    原文 给自己做备份的,高手们请忽略. 数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧. 1.指定文件路径. 2.字段之间以逗号分隔,数据行之间以\r\n分隔(我这里文件是以\n分隔的 ...

  5. C语言数据类型取值范围

    一.获取数据类型在系统中的位数 在不同的系统中,数据类型的字节数(bytes)不同,位数(bits)也有所不同,那么对应的取值范围也就有了很大的不同,那我们怎么知道你当前的系统中C语言的某个数据类型的 ...

  6. Leetcode: Range Addition

    Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...

  7. <table>标签隐藏内边框与外边框

    属性名称                属性值                        说明 frame                    void               不显示表格的 ...

  8. My family No.1

    Ok, in my family, there are seven people including my father, mother, three sisters, one brother and ...

  9. Android -- 常见控件的小效果

    1,EditText控件 ① 修改光标颜色 自定义drawable 创建cursor.xml文件 <?xml version="1.0" encoding="utf ...

  10. 用canvas画环形圆形图片

    效果如图自动绘制不停歇 代码如下 var canvas = document.getElementById('myCanvas'),width = canvas.width,height = canv ...