1.如何制作帮助文档

个人理解:写一个功能类,然后对其解释说明 注意该功能类必须用public修饰,否则会报错

​ 如class ArrayTools

​ javadoc: 错误 - 找不到可以文档化的公共或受保护的类。

工具使用格式:javadoc -d 目录 -auther -version 功能类名.java

注意:

1.目录就是生成文档存放的路径(会自动生成)

2.功能类必须用public修饰,否则没有访问权限

3.有参数的方法必须使用@param来注释(否则会有警告)

4.有返回值的方法必须使用@return来注释(否则会有警告)

5.加入-encoding utf-8 可以解决中文乱码问题

2.通过JDK提供的API学习Math类

1.API application programming interface(应用程序编程接口) (帮助文档)

2.如何使用?

​ 看字段、构造方法、成员方法

3.Math类

​ A:是针对数学进行操作的类
​ B:没有构造方法,因为它的成员都是静态的
​ C:产生随机数
​ public static double random() : 该方法产生的数范围[0.0,1.0)
​ D:如何产生一个1-100之间的随机数
​ int num = (int)(Math.random()*100)+1 ;
​ E:猜数字小游戏

public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个0-100的整数");while (true) {int x = sc.nextInt();if (x == 23) {System.out.println("right");break;} else if (x > 23){System.out.println("猜大了,请继续输入");}else{System.out.println("猜小了,请继续输入");}}
}

3.代码块

​ 代码块:在Java中,使用**{}**括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

(1)用{ }括起来的代码

(2)分类:

​ A:局部代码块 方法中

​ 用于限定变量的生命周期,及早释放,提高内存利用率。

​ B:构造代码块 类中

​ 把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。

​ C:静态代码块 类中

​ 对类的数据进行初始化,仅仅执行一次

​ 在加载的时候就执行,并且只执行一次。Test t;

(3)静态代码块,构造代码块,构造方法的顺序问题

​ 静态代码块>构造代码块>构造方法

4.继承

(1)把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,这个类就具备了这些内容,这个关系就叫继承。

(2)Java中如何表示继承?

​ A:用关键字extends表示

​ B:格式

​ class 子类名 extends 父类名{ }

(3)继承的好处

​ A:提高了代码的复用性
​ B:提高了代码的维护性
​ C:让类与类产生了一个关系,是多态的前提

(4)继承的弊端

​ A:让类的耦合性增强。

​ B:打破了封装性。

(5)Java中继承的特点

​ A:Java中的类只支持单继承,接口可以多继承

​ B:Java中可以多层(重)继承

(6)继承的注意事项

​ A:子类继承父类所有的成员,只是无法访问到父类的私有成员而已

​ B:子类不能继承父类的构造方法,但是可以通过super去访问

​ C:不要为了部分功能而去继承

(7)Java继承中的成员关系

​ A:成员变量

​ a:子类的成员变量名称和父类中的成员变量名称不一样。

​ b:子类的成员变量名称和父类中的成员变量名称一样。该怎么访问?

​ 子类的方法访问变量的查找顺序:

​ 在子类方法的局部范围找,有就使用。

​ 在子类的成员范围找,有就使用。

​ 在父类的成员范围找,有就使用。

​ 找不到,就报错。

​ B:构造方法

​ a:子类的构造方法默认会去访问父类的无参构造方法(第一句默认super( ))

​ 是为了子类访问父类数据的初始化。

​ b:父类中如果没有无参构造方法,该怎么办?

​ 子类通过super去明确调用带参构造

​ 子类通过this调用本身的其它构造,但是一定会有一个去访问了父类的构造

​ 让父类提供无参构造

​ C:成员方法

​ a:子类的成员方法和父类中的成员方法名称不一样

​ b:子类的成员方法和父类中的成员方法名称一样。该怎么访问?

​ 在子类中找,有就使用。

​ 在父类中找,有就使用。

​ 找不到就报错。

(8)方法重写的注意事项

​ A:父类的私有方法无法被重写

​ B:子类重写父类方法时,访问权限不能更低

​ C:父类是静态方法,子类也必须通过静态方法进行重写。(其实这个也算不上方法重写,但现象确实如此)

(9)两个面试题:
​ A:Override和Overload的区别?Overload是否可以改变返回值类型?

​ 答:Override(重写):在子类中出现了和父类中方法声明一模一样的方法。[返回值,方法名,参数名一样]

​ Overload(重载):在同一个类中出现的方法名一样,参数列表不同的现象。与返回值无关。

​ 可以改变

​ B:this和super的区别和各自的作用?

​ this:代表当前类的对象引用

​ super:代表父类存储空间的标识(可以理解为父类的引用)

​ 场景:
​ 成员变量:
this.成员变量
​ super.成员变量
​ 构造方法
​ this(…)
super(…)
成员方法:
this.成员方法
​ super.成员方法

(10) 一个类的初始化过程

​ a:先对成员变量进行初始化

​ b: 默认初始化

​ c:显示初始化
d:构造方法初始化

面试题1:一个类的初始化过程
看程序写结果:(知识点)
A.访问变量 就近原则
B.this和super的问题
this访问本类的成员
super访问父类的成员
C.子类构造方法执行前默认先执行父类的无参构造方法
D.一个类的初始化过程
先对成员变量进行初始化
默认初始化
显示初始化
构造方法初始化
结果: Fu
Zi
30
20
10

class Fu {public int num = 10;public Fu() {System.out.println("Fu");}
}
class Zi extends Fu {public int num =20;public Zi() {System.out.println("Zi");}public void show() {int num = 30;System.out.println(num);System.out.println(this.num);System.out.println(super.num);}
}
class ExtendsDemo2 {public static void main(String[] args) {Zi z = new Zi(); //输出 Fu //        Ziz.show();      //输出 30//  20//    10}
}

面试题2:子父类的构造执行过程
看程序写结果: (知识点)
A.一个类的静态代码块,构造代码块,构造方法的执行流程
静态代码块 > 构造代码块 > 构造方法
​ B.静态的内容是随着类的加载而加载
静态代码块的内容会优先执行
​ C. 子类初始化之前会进行父类的初始化

​ 当实例化子类对象时,首先要加载父类的class文件进内存,静态代码块是随着类的创建而执行,所以父类静态代码块最先被执行,子类class文件再被加载,同理静态代码块被先执行;实例化子类对象要先调用父类的构造方法,而调用父类构造方法前会先执行父类的非静态代码块

结果:

静态代码块Fu

静态代码块Zi

构造代码块Fu

构造方法Fu

构造代码块Zi

构造方法Zi

class Fu {static {System.out.println("静态代码块Fu");}{System.out.println("构造代码块Fu");}public Fu() {System.out.println("构造方法Fu");}
}
class Zi extends Fu {static {System.out.println("静态代码块Zi");}{System.out.println("构造代码块Zi");}public Zi() {System.out.println("构造方法Zi");}
}
class ExtendsDemo2 {public static void main(String[] args) {Zi z = new Zi();}
}

面试题3:分层初始化

知识点:

​ A.成员变量的问题
int x = 10;//成员变量是基本类型
Student s = new Student(); //成员变量是引用类型
B.一个类的初始化过程
成员变量的初始化

​ 默认初始化

​ 显示初始化

​ 构造方法初始化

​ C.子父类的初始化(分层初始化)
先进行父类初始化,然后进行子类初始化

​ 结果:

​ YXYZ

问题:虽然子类中构造方法默认有一个super()

​ 初始化的时候,不是按照那个顺序进行的

​ 而是按照分层初始化进行的

​ 它仅仅表示要先初始化父类成员,再初始化子类成员

class X {Y b = new Y();X () {System.out.print("X");}
}class Y {Y() {System.out.print("Y");}
}
public class Z extends X {Y y = new Y();Z() {//super();System.out.print("Z");}public static void main(String[] args) {new Z();}
}

Java入门day08(帮助文档、代码块、继承)相关推荐

  1. 第三周 Java语法总结__static关键字__代码块__继承__this和super的区别__重写__final关键字__多态__抽象__接口__形参问题__包__权限修饰符__内部类

    文章目录 6.static关键字 1)静态static关键字的特点: 2)关于static关键字的使用注意事项 3)什么时候将变量定义为成员变量: 7.文档说明书: 8.代码块 9.继承 1)继承的概 ...

  2. world添加水印java,Java添加水印到Word文档

    水印是一种常用于各种文档的声明.防伪手段,一般可设置文字水印或者加载图片作为水印.以下内容将分享通过Java编程给Word文档添加水印效果的方法,即 文本水印 图片水印 使用工具:Free Spire ...

  3. 【Java实现导出Word文档功能 XDocReport +FreeMarker】

    Java实现导出Word文档功能(XDocReport +FreeMarker) 前言 在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表.医院的患者统计报表.电商平台的 ...

  4. Word处理控件Aspose.Words功能演示:从 Java 中的 Word 文档中提取图像

    图像通常用于表示 Word 文档中的重要信息.在文本旁边包含图像使内容更具吸引力.在某些情况下,您可能需要以编程方式提取嵌入在 Word 文档中的图像.为此,本文介绍了如何使用 Java 从 Word ...

  5. Word处理控件Aspose.Words功能演示:使用Java合并MS Word文档

    在各种情况下,可能需要合并多个MS Word文档,例如减少文档数量,在单个文件中保留相似种类的内容(即发票)等.许多在线应用程序使您可以合并两个或多个MS Word文档但是,您可能需要在自己的Web或 ...

  6. Java+freemarker 导出Word文档的实现(包括word for Mac 插入域的方法)-静态数据,动态表格list

    1. 准备环境 1.1 word版本:MacOS系统下的Office360 word for Mac下好多操作和win的不一样啊啊啊,差点栽在Mac word的模版设计上. win版本的word模版设 ...

  7. Java—使用ApiDoc接口文档

    Java-使用ApiDoc接口文档 前言介绍: 之前写过 使用Swagger编写Api接口文档 ,介绍了Java怎么使用Swagger做项目的Api接口文档.也百度过现在生成Api接口文档的工具,看到 ...

  8. java word 水印_如何通过Java添加水印到Word文档

    前言 水印是一种常用于各种文档的声明.防伪手段,一般可设置文字水印或者加载图片作为水印.以下内容将分享通过Java编程给Word文档添加水印效果的方法,即 文本水印 图片水印 Jar导入: 方法1:通 ...

  9. java自动生成接口文档

    java自动生成接口文档 maven依赖 工具类 展示效果 首页 接口页 在平时的开发过程中必定要写接口文档 作为程序员 最烦的2件事 1.别人让你写接口文档 2.接手别人的项目没有接口文档 由此可见 ...

最新文章

  1. python画散点图对散点阴影扩充_Python金融应用之图表制作(三)
  2. 从零开始学习Kafka
  3. 010_多表的表关系
  4. div+css相对定位和绝对定位
  5. 以太坊智能合约编程之带菜鸟入门教程
  6. 深度学习助力异常胸部 X 光片检测
  7. 根文件系统定制【ZT】
  8. Django运行服务报NameError: name ‘os‘ is not defined-已解决
  9. 我们为什么需要SDN?
  10. InnoDB存储引擎介绍-(1)InnoDB存储引擎结构
  11. paip.python错误解决2
  12. html 点击 重置 单选,单选按钮上需要的Html 5不会重置(Html 5 required on radio button wil not reset)...
  13. SpringBoot调用腾讯云短信服务
  14. java工作了7年很迷茫,一个5年Java程序员的年终总结,献给还在迷茫中的你
  15. 5G NR SSB 学习
  16. access 战地1不加入ea_战地1、泰坦陨落2将正式加入EA Access会免阵容
  17. mysql黑盒测试_黑盒测试记录二
  18. MATLAB experiment<3>
  19. 安卓系统刷机怎么刷机_安卓手机解锁是什么意思 安卓手机刷机知识介绍【图文】...
  20. 粒子群优化算法改进之多子群合作粒子群优化算法

热门文章

  1. 孙鑫VC学习笔记:第七讲
  2. sublime text3 镜像下载_Sublime Text3
  3. 快狠准!面试5分钟自我介绍法
  4. serverless架构
  5. 关于灯板上LED灯总是坏的问题
  6. 2018年今日头条白皮书,OPPO品牌用户粘度荣获第一!
  7. flutter安装开发环境-问题记录
  8. 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用
  9. 关于使用UIWebView加载HTTPS站点出现NSURLErrorDomain code=-1202
  10. 记录【狼追兔子问题】