• java基础二(阅读Head First Java记录)


    写在前面的话
    本部分是在语法基础上的一些内容,比如内部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.可以更改存取权限
     
     
  • 相关阅读:
    【Git】常规操作指令
    SourceTree Push 代码报错:remote: Support for password authentication was removed on April 26, 2022.
    【Vue】事件修饰符
    leetcode 周赛290
    如何通过接口工具,和复制浏览器的请求参数,来模拟调式接口
    Unreal 输入系统 解析
    Poco API精讲之 等待 wait
    Poco API精讲之点击click()、long_click()、double_click()
    Airtest的前世今生
    2022年最新版本QT安装教程
  • 原文地址:https://www.cnblogs.com/meitian/p/5592591.html
Copyright © 2020-2023  润新知