写在前面的话
本部分是在语法基础上的一些内容,比如内部java函数库,继承多态等
 
“与”和“或”运算符
1.短运算符(&&,||)
   &&与,必须表达式两边都为true表达式才会为true,如果左侧为false了,就不会去计算右方的算式直接返回false,可以用&&来避免操作内容为null指针变量的情况if(refVar!=null&&refVar.isValidType()){}
   ||同理,如果左侧已经返回true了,不会再去计算右侧就直接返回true了
2.长运算符(&和|)
   &和|使用在boolean表达式时,强制要求计算运算符两边的算式
3.可以用括号将表达式括起来来控制运算优先级
 
包
1.类会用包来组织
2.类的完整的名称是由包名和类名组成的,比如ArrayList实际叫做java.util.ArrayList
3.除了java.lang之外,使用其他包的类都需要指定全名(System和String等是java.lang下的),java.lang是个预先被引用的包
4.import不会把包或类包进去,只是剩下了写类前面的包名而已
5.javax开头的包说明他以前是个扩展包,后来才变成标准包的
 
继承
1.继承的范例
public class subclass extends parent class{
    可以定义自己的实例变量
    可以定义自己的方法,也可以重写父类的方法
}
2.调用方法时java虚拟机会选中最近的方法,从下向上找,所以如果子类覆盖过父类的方法,调用时会使用子类中的方法
3.判断继承是否合理,遵循X IS-A Y,即x是y是正确的。IS-A是单向的
4.子类通过extends继承父类,子类会继承父类所有public的实例变量和方法(不会继承private的变量和方法)
5.继承的方法可以被覆盖掉,但实例变量不会被覆盖。
6.子类要实现不完全覆盖父类方法时,可以使用super来先执行父类的方法,然后在追加子类的不同的内容,例如:
     public void roam(){
          super.roam();
          接下来是子类单独要实现的部分
     }
7.被能被继承的类:
     存取控制,非public的只能被同一包的类继承;
     使用final的类被认为是继承树的末端,不能被继承;
     只拥有private构造程序的类不能被继承
8.使用final修饰的方法不能被覆盖
9.java只支持继承1个类,因为如果继承多个类可能差生致命方块的问题(继承的两个类都重写了同一方法,会造成子类不知道使用哪个方法来实现)
 
多态
1.多态实现方式:继承并对父类的方法进行重写
2.对父类的方法进行覆盖重写时,必须参数与父类相同,返回值与父类兼容(与父类一致或是父类返回值的子类),否则不算重写而是过载
3.子类覆盖重写不能降低方法的访问权限,比如父类中是public,子类变为private是不合法的
4.父类型的引用可以指向子类型的对象,例如:
     animal  my dog=new dog()
     注意:使用多态调用方法时会先检查父类中是否有该方法,否则会报错。
5.父子类型上下转换:
    子类型转换成父类型,不需要强转,直接转换:
     dog a =new dog();
     animal b =a;
     父类型转换成子类型,需要强制转换,使用(子类名)来强转,且父类型的引用必须指向子类的对象:
     animal a=new dog();
     dog b=(dog)a;
 
方法重载
重载的意义是定义方法名相同,但是参数不同。可以返回不同类型值
1.重载和多态没有关系
2.返回类型可以相同可以不同,但是参数一定要不同(类型或个数)
3.可以更改存取权限
 
 

java基础二(阅读Head First Java记录)的更多相关文章

  1. Java入土--Java基础(二)

    Java基础(二) 接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制. 类型转换 首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用. 由于Jav ...

  2. Java面试题总结之Java基础(二)

    Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...

  3. Java基础:三步学会Java Socket编程

    Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛        第一步 ...

  4. [ 转载 ] Java基础二

    前言 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大.这里整理挑选出来供大家面试前拿来看一看,所有题目整理自网络,有一 ...

  5. Java基础二

    1 关键字 定义:被java语言赋予了特殊含义的单词. 特点:关键字中的所有字母都为小写. 用于定义数据类型的关键字 class.interface.byte.short.int.long.float ...

  6. java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  7. Java基础(二) 基本类型数据类型、包装类及自动拆装箱

    我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...

  8. java基础(二)--main方法讲解

    main()函数是如下的固定格式,除了args可以修改名字,其余均不可以修改 public class TestBase02MainMath { public static void main(Str ...

  9. 重学JAVA基础(二):Java反射

        看一下百度的解释:       JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息     ...

随机推荐

  1. LINUX中的RCU机制的分析

    RCU机制是Linux2.6之后提供的一种数据一致性访问的机制,从RCU(read-copy-update)的名称上看,我们就能对他的实现机制有一个大概的了解,在修改数据的时候,首先需要读取数据,然后 ...

  2. json.dumps与json.dump的区别 json.loads与json.load的区别(简洁易懂)

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块 >>& ...

  3. Rancher快速入门

    https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/quick-start-guide/

  4. 免费获取半年 Bitdefender Total Security 2014

    免费获取半年 Bitdefender Total Security 2014,安装后剩余 200 天使用期.安装程序语言是德语,调包下安装语言应该也是可以的? 目前德国活动,Bitdefender T ...

  5. flex布局在垂直居中里,元素超过容器大小后,不能通过滚动条滚动到顶端,这是个flex的bug

    The Problem Flexbox makes centering very easy. By simply applying align-items: center and justify-co ...

  6. php session目录找不到的错误 Error session_start(): open(/var/lib/php/session error

    问题来源 今天安装一个应用,发现提示 Error session_start(): open(/var/lib/php/session error,估计是找不到写不了啥啥啥. 于是我就去该路径下去看看 ...

  7. VMware 虚拟机快照、克隆、磁盘扩容

    1. 快照 快照是虚拟机某个时间点上完整系统的镜像,可以在虚拟机内部通过快照文件恢复系统到之前的节点. 拍摄快照: 恢复快照: 2. 克隆 克隆是原始虚拟机全部状态的一个拷贝,是脱离原始虚拟机独立存在 ...

  8. Windows10解决无法访问其他机器共享的问题

    你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问.这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁. 管理员身份执行sc.exe config lanmanwork ...

  9. TCP和UDP Client 代码

    最近学习要求做网络编程,使用从网上找了一些资料,主要是网络协议的分层等通讯,你可以查看英文版的资料:CScharp网络编程英文版 下面直接给出代码吧,我想一看应该就懂. TCP Client 代码: ...

  10. RabbitMq + Spring 实现ACK机制

    概念性解读(Ack的灵活) 首先啊,有的人不是太理解这个Ack是什么,讲的接地气一点,其实就是一个通知,怎么说呢,当我监听消费者,正常情况下,不会出异常,但是如果是出现了异常,甚至是没有获取的异常,那 ...