趁着周末玩爽了,兴致来了,继续玩玩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. js_页面关闭beforeunload事件

    做圆桌爆文公众号的时候,需要对阅读的文章进行时间统计.是这个公众号的核心功能,客户把文章转发到朋友圈或者转给朋友,记录谁阅读此文章和阅读时长进行记录,从而展示给客户. 功能点是,关闭页面时触发事件,请 ...

  2. hdu 2545 树上战争(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2545 树上战争 Time Limit: 10000/4000 MS (Java/Others)     ...

  3. python进行机器学习(五)之模型打分

    一.画出模型的残差值分布情况 #!/usr/bin/python import pandas as pd import numpy as np import csv as csv import mat ...

  4. 实战手工注入某站,mssql注入

    昨天就搞下来的,但是是工具搞得,为了比赛还是抛弃一阵子的工具吧.内容相对简单,可掠过. 报错得到sql语句: DataSet ds2 = BusinessLibrary.classHelper.Get ...

  5. 【swupdate文档 二】许可证

    许可证 SWUpdate是免费软件.它的版权属于Stefano Babic和其他许多贡献代码的人(详情请参阅实际源代码和git提交信息). 您可以根据自由软件基金会发布的GNU通用公共许可证第2版的条 ...

  6. java===java基础学习(10)---对象构造

    重载 如果多个方法有相同的名字,不同的参数,便产生了重载.编译器必须挑选出具体执行哪个方法,他通过用各个方法给出的参数类I型那个与特定方法调用所使用的值类型进行匹配来挑选出相应的方法.如果编译器找不到 ...

  7. 网络知识===wireshark抓包出现“TCP segment of a reassembled PDU”的解释(载)

    网上胡说八道,众说风云,感觉这篇还算靠谱点. 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS, ...

  8. 2017多校第4场 HDU 6078 Wavel Sequence DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6078 题意:求两个序列的公共波形子序列的个数. 解法: 类似于最长公共上升子序列,对于每个i,只考虑存 ...

  9. vue-cli脚手架引入element UI的正确打开方式

    element UI官网教程:http://element-cn.eleme.io/#/zh-CN/component/quickstart 1.完整引入,直接了当,但是组件文件不是按需加载,造成多余 ...

  10. 微信小程序radio组件 - 如何改变默认样式大小?

    今天在写小程序的时候用到radio组件,但是很懊恼并未提供修改radio组件大小属性,第一感觉准备用css width , height 改变radio的大小,但是怎么搞也无法改变. 但是又不愿意搞个 ...