Java day10

╄→尐↘猪︶ㄣ 提交于 2020-01-07 14:18:21

文档说明的简单制作

步骤
1) 定义类ArrayTool 单独操作数组
2) 将构造方法私有化,外界不能创建对象,保证数据安全性
3) 给ArrayTool的方法都是加上static修饰,通过类名调用
4)给每一个方法上加入文档注释
该功能描述什么意思
有参数:参数表示的是什么
有返回值:返回值返回的是什么
5)进入dos控制台
在当前目录下,使用javadoc 目录名(文件夹名称) -author -version ArrayTool.java

代码块

在Java中使用{ }包起来的内容,称为代码块.

代码块分为:

  • 局部代码块
    在内中局部位置(方法定义中)
    限定变量生命周期,及早释放,提高内存利用率
  • 构造代码块
    在类中的成员位置使用{ }定义,每次执行构造方法之前,如果有构造代码块先执行构造代码块
    作用:可以将多个构造方法的相同的代码块可以放到构造代码块中,给对象进行初始化
  • 静态代码块
    在类中的成员位置,static{ },特点是每次只执行一次,优先于对象存在
    作用:给类进行初始化

静态代码块只加载一次

优先级 静态代码块>构造代码块>构造方法

Java中的继承

格式:class 子类名 extends 父类名 { }

将多个类中的共同代码单独提取出来,形成一个独立的类,多个类和当前独立的类产生一种关系:继承关系 extends

  • 继承的好处:
    1.提高代码的重复性
    2.提高了代码维护性
    3.类和类产生这种关系,是多态的前提条件
  • Java中继承的特点:
  1. 在Java中,只支持单继承,不支持多继承,在别的语言中可能有多继承存在
  2. 在Java中,虽然不支持多继承,但是可以多层继承!(分层初始化:先让父类初始化在让子类初始化)

在Java中,所有的Java类(自己定义的,jdk提供的)都继承自Object类(上帝类)

  • Java中继承的注意事项
    子类只能继承父类所有非私有的成员 (成员变量,成员方法) ,但是可以通过公共方法简介的访问 其实这也体现了继承的另一个弊端:打破了封装性
    子类不能继承父类的构造方法 ,但可以通过super关键字访问父类构造方法
    == 不要为了部分功能而去继承==
  • 继承中成员的组成
    1>成员变量
    2>成员方法
    3>构造方法
    继承中成员变量的关系
    在子类方法中访问一个变量
    首先在子类局部范围找
    然后在子类成员范围找
    最后在父类成员范围找(肯定不能访问到父类局部范围)
    如果还是没有就报错。(不考虑父亲的父亲…)
  • Super关键字

this和super的使用
访问成员变量
this.成员变量 : 访问的当前类的成员变量
super.成员变量 : 访问的父类的成员变量
访问构造方法:
this()/this(…) : 访问本类中构造方法
super()/super(…): 访问父类中的构造方法
访问成员方法
this.成员方法名() : 访问本类中的成员方法
super.成员方法名() : 访问父类中的成员方法

  • 继承中构造方法的关系

继承中构造方法初始化的特点(分层初始化!)
继承中,子类不能继承父类的构造方法,但是可以通过super访问父类的构造方法

子类的构造方法中(无参/有参),都会默认访问父类的无参构造方法,
由于子类继承父类,子类可能会用到父类中数据, 所以先让父类进行初始化,再让子类初始化!(分层初始化!)
关于super():访问无参构造方法,必须写在子类构造方法中第一句话

继承中使用构造方法的注意事项:
子类继承父类的时候,子类的构造方法都会默认访问父类的无参,如果父类中不存在无参构造
会出现什么现象?
编译报错
解决—>
1.手动显示的给出父类的无参构造方法
2.如果父类的无参构造方法不给出,只能通过super(…)间接的访问父类的有参构造
3.可以在子类有参构造方法中通过this(),访问本类的无参,然后在通过本类的无参间接的通过super(…)访问父类的有参

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!