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

第五章(面向对象上)

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. velocity & freemarker

    一.Velocity Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅使用简单的模板语言(template language)来引用由java代码定义的 ...

  2. 抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)

    素数判断: 一.根据素数定义,该数除了1和它本身以外不再有其他的因数. 详见代码. int prime() { ; i*i<=n; i++) { ) //不是素数 ; //返回1 } ; //是 ...

  3. 【Sqlite3】sqlite_sequence表(转)

    sqlite_sequence表也是SQLite的系统表.该表用来保存其他表的RowID的最大值.数据库被创建时,sqlite_sequence表会被自动创建.该表包括两列.第一列为name,用来存储 ...

  4. python基础===基于requests模块上的协程【trip】

    今天看博客get了一个有趣的模块,叫做 trip     #(pip install  trip) 兼容2.7版本 基于两大依赖包:TRIP: Tornado & Requests In Pa ...

  5. sicily 1046. Plane Spotting

    1046. Plane Spotting Time Limit: 1sec    Memory Limit:32MB  Description Craig is fond of planes. Mak ...

  6. Median_of_Two_Sorted_Arrays(理论支持和算法总结)

    可以将这个题目推广到更naive的情况,找两个排序数组中的第K个最大值(第K个最小值). 1.直接 merge 两个数组,然后求中位数(第K个最大值或者第K个最小值),能过,不过复杂度是 O(n + ...

  7. hive-group by的时候把两个字段变成map

    源表结构: pcgid               string mobilegid           string value               double 测试数据如下: p1 m1 ...

  8. XAlign—自动对齐代码插件

    XAlign An amazing Xcode plugin to align regular code. It can align anything by using custom alignmen ...

  9. Two Sum ——经典的哈希表的题

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  10. [BZOJ4566][Haoi2016]找相同字符 后缀自动机+dp

    4566: [Haoi2016]找相同字符 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1212  Solved: 694[Submit][Stat ...