趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧。

1.java 7的增强包装类

这些包装类就是java上的基本类型,只不过人人基本都是C过来的,那么不可避免的有一些惯性的思维。除了int和char类型之外,其余的都是把首字母大写,我靠,这个有点太坑了吧,你哪怕都用JA打头也比这样强,一点特色都没有啊。为了让C语言的基本的类型和包装类之间能够好好的转化,java也很聪明的提供了一些默认的方法,比如xxxvalue()...,有一点要说一下,这个方法会用到缓存的原理,这样避免产生太多的内存分配,是一种不错的策略。

2.toString

如果用过OC的朋友们,可以参考descrbtion方法来理解。这个玩意就是对类的一种描述,可以进行重写,没有什么特殊的意思,可以用来作为类的说明和注释。

3.==和equals

这两个方法但从语言本身来说意思是一样,比较是否相等。不一样的地方在于,==用于变量的时候只要数值一样大,就是返回ture,否则为false。equals是用来作为对象比较的,如果==也用来比较对象呢,很不幸,这个两个意思是一样的,比较两个对象是否是相等,对象怎么才能相等呢,很显然我认为,内存上面地址一样,那就肯定是相等了。书中例子说了一个常量池和新生对象之间比较的问题,这个还是要注意的,毕竟常量还是比较low一点的。

4.类成员

类成员在各种面向对象的编译性语言里面几乎都会涉及,这个玩意就像是给类加了一个尾巴一样,所有的类都有这么一根,而且是唯一的一根尾巴,根据这个特性,单例可以被创造了,单例是很有用的东东,很多的工程都会用到,打个比方说,单例就像是一个收费站一样,只有一个收费入口,每次大家都只能从这个一个地方进,而且你还只有这么一个收费站可以进。

5.final

以前上学的时候感觉这么个东西,简直就是在抄袭C、C++里面的const变量,说白了这个玩意修饰常量的时候,一般就是直接赋值,然后不可改变,如果是修饰对象的时候,那么就不一定了,你不能对这个对象进行简单粗暴的改变,比如直接赋值给这个实例,但是你可以去改变这个实例俩面的某个变量的值,还有一点如果想深入理解,我建议看看const *和* const的区别。在对于局部变量的时候,final的变量是可以先声明,再赋值的。如果修饰方法,那么这个方法就不能被重写了。如果这个方法是私有方法,那么子类依然可以重写,因为私有的方法的范围只能是本类。

6.抽象类

有抽象方法的类一定是抽象类,抽象类里面可以没有抽象方法。这个就比方说,你喜欢吃饼干就是喜欢吃货,但是你是吃货,不一定喜欢吃饼干,就是这么个道理。抽象用abstract来修饰。当你定义了一个抽象方法的时候,必须有子类来进行实现,那么也就是说必须有子类重写实现这个方法,那么这个有什么用呢。比如说你像定义一个交通工具类,那么这个类有个驾驶的方法,但是汽车,自行车的驾驶方法是不一样的,很显然的,你制定了一个标准,让子类们知道要特事特办,而不是千篇一律。同样,还有一点很重要,要说到多态,也就是说,让父类的实例通过子类来进行初始化,而且父类可以直接调用子类的这个实现的抽象方法,这个也就是说上次说的多态。这些都是先生鸡再有蛋的关系,有时候既然有个玩意出现了,那么它肯定是有自己的安排的。

好吧,这个章实好长啊,不看了,碎觉去了。

(疯狂java)第四课(上)的更多相关文章

  1. Java实验--关于课上找“水王”问题分析

    问题的表述就是说有那么一个人,他在一个论坛上发帖,然后每贴必回,自己也发帖.那么这个人在发帖的数目上就超过了整个论坛的帖子数目的一半以上. 我对这个问题一开始的思路是,用SQL语句获取整个列表中的数据 ...

  2. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  3. 疯狂JAVA——第四章 流程控制与数组

    4.5 数组类型 数组也是一种类型.它本身是引用类型.例如int是一种基本类型,int[]就是引用类型. 两种定义数组的方式: 1.type[] arrayName; 2.type arrayName ...

  4. (疯狂java)第三课

    最近很忙,都没有看书,罪过... 第五章(面向对象上) 1.类是一种对数据结构的封装,也就是说,一个类在在理解上事存在实际的含义的,比如一个人类,人类也是个类,表明这个类不是家禽类,是有人的特点的生物 ...

  5. java第四课:数组

    1.数组声明时,必须有中括号,但不指定数组的元素个数2.初始化时,必须指定元素个数3.数组元素内容仅能用于声明时初始化,不能用于赋值.如:char[] week; week={'1','2','3'} ...

  6. Java 第四课 对象 类

    1.构造方法可以为private public 2.抽象类可以有构造方法,但是必须在子类中调用(super.构造方法)

  7. 关于转入软件工程专业后第二次java课上作业的某些体会

    今天是第二周的java课. 自从转入了软件工程专业后,在我没有学习c++的基础上,直接开始了学习java的过程.不得不说过程很艰辛.今天下午老师让编写一个随机产生作业的软件.而我的基础差到都不知道如何 ...

  8. 20155205 《Java程序设计》0510课上实践博客

    20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...

  9. 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制

    Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

随机推荐

  1. bzoj 1079 DP

    比较容易看出来是DP,但是如果我们记录每一种颜色还剩多少种的话,消耗的转移的时间复杂度5^15,但是我们考虑到每一种颜色,如果数量相同的话,其实是等效的,所以我们用w[a][b][c][d][e][l ...

  2. python模块subprocess学习

    当我们想要调用系统命令,可以使用os,commands还有subprocess模块整理如下: os模块: 1. os.system 输出命令结果到屏幕.返回命令执行状态. >>> o ...

  3. URI设计原则

    以下是与 REST API 相关的重要术语: 资源(Resource) 是一个对象或对某物的表示.它有一些相关联的数据,并有一组方法进行操作. 例如:动物,学校和员工是资源.这些资源都有着删除,添加, ...

  4. a标签的嵌套

    1.a标签的嵌套 a标签不能嵌套,若a标签中嵌套了a标签,浏览器会自动添加结束符号,故不能嵌套 2.例子 编辑器中的代码 <a href="#">外层a标签<a ...

  5. Linux-进程间通信(三): 共享内存

    1. 共享内存: 共享内存方式可以在多个进程直接共享数据,因为其直接使用内存,不要多余的拷贝,是速度最快的IPC方式: 共享内存有两种实现方式,使用mmap和shm方式,如下图: (1) mmap方式 ...

  6. 25个Linux相关的网站【转】

    转自:http://www.cnblogs.com/Lindaman/p/4552805.html 下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件, ...

  7. Android 开发之避免被第三方使用代理抓包

    现象:charles抓不到包,但wireshark,HttpAnalyzor可以抓到包. 关键代码: URL url = new URL(urlStr); urlConnection = (HttpU ...

  8. 剑指offer-高质量的代码

    小结: 规范性:书写清晰.布局清晰.命名合理 完整性:完成基本功能.考虑边界条件.做好错误处理 鲁棒性:采取防御性编程.处理无效输入 面试这需要关注 输入参数的检查 错误处理和异常的方式(3种) 命名 ...

  9. JS监控手机或APP返回事件

    做微信项目的时候,发现在Ios微信浏览器左上角有个返回按钮,但是点击返回时不稳定,跳到不该跳的页面.网上搜了一个捕获返回事件的JS代码,记录下来,便于以后查看. <span style=&quo ...

  10. ASP .NET CORE 部署linux 系统上的所需要的sdk 使用链接

    https://www.microsoft.com/net/learn/get-started/linuxopensuse