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

第五章(面向对象上)

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. HDU 2199 二分

    我们可以发现这个函数是单增的,那么这样二分就好了. 反思:刚转C++,不会用scanf读入实数.(scanf("%lf",&y)) //By BLADEVIL #inclu ...

  2. python中filter函数

    python中filter()函数   filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断 ...

  3. mssql手工注入1

    强制字符转成数字, 所以报错, 能获得数据 查版本号: http: -- 查数据库版本: http: -- 查当前数据库用户(如果看到dbo 那么多半当前数据库的用户是dba权限): http: -- ...

  4. kimbits_USACO

    StringsobitsKim Schrijvers Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits ...

  5. English——Unit 1

    meditate  v.沉思,冥想:考虑,谋划 medtiation   n.沉思,冥想:深思熟虑 medium elaborate   adj.精心制作的,详尽的,复杂的:v.精心制作:详述(计划, ...

  6. Mui自定义时间格式:

    Mui自定义时间格式: (function($) { $.init(); $(document).on('tap','.btn',function(){ var obj = getFormJson($ ...

  7. display:flex代替float

    昨天做一个css的东西,在开始用js的时候才发现被float占位了 因为float浮动起来了,我清除了浮动,但是还是占位 然后我同事就告诉我其实可以不用float来左右浮动 在父元素上用display ...

  8. phoenix到hbase的应用

    一.phoenix的简介 hbase的java api或者其语法很难用,可以认为phoenix是一个中间件,提供了访问hbase的另外的语法. 二.配置phoenix和hbase 1.下载 phoen ...

  9. SEO优化:WordPress发布文章主动推送到百度,加快收录保护原创

    工作实在太忙,也没时间打理网站.最近公司额外交待了一些网站 SEO 方面的优化任务让我关注(这就是啥都要会.啥都要做的苦逼运维的真实写照了...). 于是抽空看了下百度站长平台,至少看到了2个新消息: ...

  10. WordPress主循环(The Loop)函数have_posts(),the_post()详解

    WordPress中调用文章标题是the_title();调用文章内容时用到the_content();调用文章的作者时用到the_author();等等这些函数,都需要在主循环中使用,下面就介绍一下 ...