最近很忙,都没有看书,罪过...

第五章(面向对象上)

1.类是一种对数据结构的封装,也就是说,一个类在在理解上事存在实际的含义的,比如一个人类,人类也是个类,表明这个类不是家禽类,是有人的特点的生物的集合。一个人,是一个实例,而人就是类。在类里有实例方法和属性,还有类方法和属性,前者是属于特定的实例,但是后者是属于该类。

2.修饰符。Public、protected、private、static、final、abstract。这个里面主要就事使用的范围和权限不一样,另外使用不同的修饰符是对类封装的一个基本手段。

3.类的内存占用,这个类似于指针,创建一个类对象。类地址放在栈里面,而真正的内存是放在队里面,使用时时通过去访问地址获取。this关键字这个就是指向自身的一个(地址)指针,通过它类对类实例的相关的属性和方法进行调用,如果想要使用父类的方法就应该是super关键字去调用

4.方法参数传入是是值传递,无论是基本类型还是对象类型。基本类型基本就事int这样的。复制一份,然后进行操作,对原来的数值并无什么影响。对于对象的传入,确实可以改变对象的内容,这是因为在传值的时候传递的时内存的地址,通过这个内存的地址就可以对这个对象进行操作,这点要明白。对于可变形参函数的形式,public static void test(int a,string ... books)。一般蚕蛹这种方法声明,比较直观,前面的a时一个数字,后面的字符串统统归为一个数组。

5.方法重载,就事一个类李阿敏方法名字一样,但是参数的列表不一样,通过参数列表对其进行区分。由于java调用方法是不太注重方法返回值的,所以也就是为什么不能使用返回值类型进行区分,再者说,如果一个方法的参数一样,名字一样,那么怎么区分呢?程序员的工作就是给变量命名,如果所有的都一样,那么结果只能一样。

6.封装就事把该露出来的都露出来,不改露出来的都盖住。通过以接口为标准的封装,有利于实现软件工程。

7.重载构造器,就事为了一步到位的去对实例进行初始化。通过重载去实现,属性初始化的多样性。

8.java里面一个类只能直接继承一个类,至于他的父类有没有父类,这个不一定了了。子类可以获得父类的方法和属性,同时也可以对父类的方法进行重写(不是重载),这时候想要调用原来父类的方法,就应该使用super关键字。在继承的关系中,父类总是要比子类先初始化,就比如说,没有老子,怎么会有儿子呢。

9.多态,就是编译时和运行时类型不一致,就是多态,比如子类运行自己方法和运行父类的方法时候。  多态==晚绑定

  不要把函数重载理解为多态。

  因为多态是一种运行期的行为,不是编译期的行为。

  多态:父类型的引用可以指向子类型的对象。

  比如 Parent p = new Child();

    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;

    如果有,再去调用子类的该同名方法。

  (注意此处,静态static方法属于特殊情况,静态方法只能继承,不能重写Override,如果子类中定义了同名同形式的静态方法,它对父类方法只起到隐藏的作用。调用的时候用谁的引用,则调用谁的版本

10.instanceof就是判断实例是否是某个类

这一节感觉内容还是很多的,很多东西只能通过大量代码实践才能理解。

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

  1. java第三课:分支结构、循环结构

    分支结构 1.if后面可以不加{},但是不建议,容易产生误解2.写程序的时候先防屌丝测试,再写逻辑,否则会出错3.if:一条分支 if else:两条分支 if...else if...:多条分支(结 ...

  2. 疯狂JAVA——第三章 数据类型和运算符

    3.1注释 1.单行注释 2.多行注释 3.文档注释——文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线结束(*/),中间部分都是文档注释,会被提取到API文档中. API文档类似于产 ...

  3. (疯狂java)第四课(上)

    趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...

  4. Java 第三课 数组排序

    1.java.util.Arrays.sort(arr)  //升序 2.冒泡排序:相邻元素比较 for (int i=0; i <arr.length-1; i++){//内部遍历一次,确定最 ...

  5. 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题

    调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...

  6. 马士兵hadoop第三课:java开发hdfs

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  7. 疯狂java讲义 第三版 笔记

      java7新加特性: 0B010101  二进制数 int c=0B0111_1111;   数值中使用下划线分隔 switch 支持String类型   字符串常量放在常量池 String s0 ...

  8. 马士兵hadoop第三课:java开发hdfs(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

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

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

随机推荐

  1. 使用SQL Server连接xml接口,读取并解析数据

    --数据源格式,放到任意程序中部署接口即可--<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmln ...

  2. python模块subprocess学习

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

  3. application.properties 文件的优先级

    bootstrapProperties #来自configServer的值 commandLineArgs #命令行参数 servletConfigInitParams servletContextI ...

  4. linux下删除已经不用的配置文件

    使用命令 dpkg -l | grep -v ^ii 查看当前未安装或者不用了的配置文件 例如我的显示如下

  5. C后端设计开发 - 第6章-武技-常见组件上三路

    正文 第6章-武技-常见组件上三路 后记 如果有错误, 欢迎指正. 有好的补充, 和疑问欢迎交流, 一块提高. 在此谢谢大家了.

  6. Context-Aware Network Embedding for Relation Modeling

    Context-Aware Network Embedding for Relation Modeling 论文:http://www.aclweb.org/anthology/P17-1158 创新 ...

  7. 虚拟机 VMware Workstation12 安装OS X 系统

      Windows下虚拟机安装Mac OS X —– VMware Workstation12安装Mac OS X 10.11 本文即将介绍WIN虚拟MAC的教程.完整详细教程(包含安装中的一些问题) ...

  8. visualvm监控远程机器上的Java程序

    源文:http://hanwangkun.iteye.com/blog/1195526

  9. 确实,k8s的时代,ingress负载用traefik比nginx方便啊

    参考文档: https://mritd.me/2016/12/06/try-traefik-on-kubernetes/#13ingress 由于微服务架构以及 Docker 技术和 kubernet ...

  10. 洛谷P2590 [ZJOI2008] 树的统计 [树链剖分]

    题目传送门 树的统计 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t ...