Java实验6 接口、异常处理、注解与反射答案
1.(基础题)分析、运行程序,并回答相关问题。
(1)声明接口的关键字是什么?
关键字:Interface
(2)接口中的方法有无方法体?如果省略不写,接口的方法、变量分别默认包含哪些关键字?
接口中的方法有方法体。
接口的方法默认关键字为public、static。
接口的变量默认关键字为final。
(3)接口能否实例化一个对象?可否定义一个接口变量?
接口不能实例化一个对象;不能定义接口变量。
(4)类是如何实现接口的?怎样利用接口实现多重继承?
static类,必须借用接口的特征创建出来一个新的类,然后用新的类来实例化对象。
创建子接口并且继承父接口中的常量、抽象方法、默认方法。
(5)怎样使用接口引用?
使用 interface 代替了原来的 class
2.(基础题)编程题
程序代码:
interface X{void m1();void m2();
}interface Y{void m3();
}
interface Z extends X, Y {void m4();}class XYZ implements X,Y,Z{@Overridepublic void m1() {System.out.println("1");}@Overridepublic void m3() {System.out.println("3");}@Overridepublic void m2() {System.out.println("2");}@Overridepublic void m4() {System.out.println("4");}}public class Teat {public static void main(String[] args) {XYZ xyz=new XYZ();xyz.m1();xyz.m2();xyz.m3();xyz.m4();}}
3.(基础题)根据catch块处理异常所输出的信息的提示,请在下面程序(1)、(2)、(3)处填入适当的代码:
(1):NullPointerException
(2):NumberFormatException
(3):ArithmeticException
4.(基础题)图6-1是一程序运行的结果,请根据注释填写所缺代码
(1):java.lang.reflect.*;
(2):obj.getClass();//
(3):c1.getMethods()
(4):String methodName = stringMethods[count].getName();
(5):String returnType =String.valueOf(stringMethods[count].getReturnType());
(6):Class[] parameterTypes = stringMethods[count]. getParameterTypes();
(7): i<parameterTypes.length
(8):parameterTypes[i]
(9):count++
问题:
(1)该程序的功能是什么?
反射,取想要输出的内容进行输出
- 请解释一下运行结果前三行各代表什么含义?
获得参数类型后,定义参数下标,通过遍历循环,输出所获得的parameterName
5.(基础题) 注解的理解与使用:分析、运行程序,并回答相关问题:
(1)程序中的@Target(ElementType.TYPE)、@Target(ElementType.METHOD)、@Retention(RetentionPolicy.RUNTIME)、@Documented各表示什么含义?
@Target(ElementType.TYPE):接口、类、枚举、注解
@Target(ElementType.METHOD):方法
@Retention(RetentionPolicy.RUNTIME):标注会一直保留到运行时
@Documented:将记录保存在javadoc中
(2)自定义了几个注解?它们属性有哪些?
自定义了3个注解
@interface Nameoriginate()的属性有:originat、community
@interface Descriptionalue()的属性有: String value
@interface Name的属性有:originat、community
(3)如何使用自定义注解?
①创建一个自定义注解
②写一个类实现项目启动的时候加载自定义注解标记的类
(4)AnnotationDemo.java如何得到Class对象?它表示哪一个正在运行的类?
首先,获取所定义的属性及参数,并且判断布尔值是否为真;创建一个实例化对象,输出想要的结果,把JavaEyer这一类有利用到@Name的全部方法保存到Set中去
(5)如何获得类、方法的注解?
Java获取类上的注解有下面3个方法:
①Class.getAnnotations0获取所有的注解,包括自己声明的以及继承的
②Class.getAnnotation(Class<A>annotationClass)获取指定的注解,该注解可以是自己声明的,也可以是继承的
③Class.getDeclaredAnnotations0获取自己声明的注解
Java获取方法上的注解:修改上面的Annotation与Annotation,使其可以标注在方法上@Target(value=(ElementType.TYPE,ElementType.METHOD]),在它们中分别添加一个test0方法。
6.(提高题)模拟银行ATM完成以下功能:
(1)查询余额 (2)取款 (3)存款 (4)退出
请认真阅读程序代码,并回答相关问题:
- 自定义异常类BankException 继承了什么类?能不能换成其它类?为什么?
自定义异常类BankException继承了 Exception 类;
不能换成其他类,因为定义自定义异常类,抛出该异常条件:取款金额超出帐户余额
(2)类Bank的 menu()方法的功能是什么?menu()方法里调用了哪些方法?
功能:完成查询余额、取款、存款、退出的基本功能.
(3)在取款方法deposit()里声明了哪些异常?当余额不足时,又重新抛出了哪个异常?
异常主要有:obj.deposit() 取款时捕捉余额是否足够; getChoice()选择功能数字时捕捉数字是否为整数型;输入存款金额时捕捉数目是否一致。
当余额不足时,抛出throw new BankException()。
Java实验6 接口、异常处理、注解与反射答案相关推荐
- Java面向对象编程篇6——注解与反射
Java面向对象编程篇6--注解与反射 1.注解概述 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制 Java 语言中的类.方法.变量.参数和包等都可 ...
- Java实验之接口与实现、内部类与异常类
Java实验之接口与实现.内部类与异常类 Java实验之接口与实现 评价成绩 体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考 察一个班级的某科 目的考试情况时,是计算全班同 ...
- Java接口、注解、反射
写在前面 你们好,我是小庄.很高兴能和你们一起学习Java.如果您对Java感兴趣的话可关注我的动态. 写博文是一种习惯,在这过程中能够梳理和巩固知识. 一.接口 什么是接口? 接口( ...
- java 获取接口的注解_java反射注解妙用-获取所有接口说明
前言 最近在做项目权限,使用shiro实现restful接口权限管理,对整个项目都进行了重构.而权限管理需要用到所有的接口配置,包括接口url地址,接口唯一编码等.想要收集所有的接口信息,如果工程接口 ...
- JAVA实验报告九异常处理_JAVA实验报告_Java异常处理
贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.27 指导教师肖源源成绩 实验项目名称Java异常处理 实验目的1)掌握Java异常的概念及工作机制 2)掌握异 ...
- java实验报告8 异常处理
实验目的 了解异常的概念和异常处理机制 掌握捕捉异常的方法 掌握创建自定义异常 实验学时 2学时 实验内容 编写一个程序,要求从键盘输入一个圆的半径(double类型),计算并输出圆的面积.在没有加入 ...
- JAVA实验报告九异常处理_Java课后练习9(异常处理)
动手动脑1: import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j ...
- 【Java】灵活使用自定义注解和反射
完整代码 import java.lang.annotation.*; import java.lang.reflect.Method;@Target(ElementType.METHOD) @Ret ...
- RSS简述 及 Java构造RSS接口
RSS RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章.新闻.音频或视频的网摘.RSS文件包含全文或是节录的文字,再加上发布者所订阅之网摘数据和授权的元数据 ...
最新文章
- Bioinformatics|基于知识图谱嵌入的药物靶标发现
- 杀毒时能否使用计算机,电脑杀毒以后,程序无法使用,电脑杀毒后共享不能使用-...
- JSP传递值给servlet的方式
- MAC地址表满,广播的去向
- C语言 | 使用牛顿法求非线性方程的一个实根(附代码)
- TensorFlow 1.9开始支持树莓派
- 二维绕任意点旋转_二维图形复合线性变换程序设计:三角形绕任意点旋转2wfhbh...
- 优先队列详解(转载)
- matlab运行dxcv,MATLAB imresize 函数和 OpenCV resize 函数结果不同
- 【计算机网络】TCP四次挥手
- java model1和model2_Java项目(4)——探究两种开发模型的异同-Model1与Model2
- 【优化算法】精子群优化算法(SSO)【含Matlab源码 1465期】
- WinCC flexible的版本与安装移植软件
- 让你彻悟人生的555句金玉良言
- C++中 #if #endif 和#ifdef #endif的用法
- 模式识别技术漫谈(2)
- Smart-link 实验(超详细)
- 菜鸟学机器学习,Sklearn库主要模块功能简介
- 计算机找不到无线设备,win10找不到无线设备怎么办_win10电脑找不到无线设备如何解决...
- 离开手机的一天 天才小熊猫_文章《熊猫30天》
热门文章
- 关于矩形的边框,以及边框线偶尔不显示的问题
- android dynamic features 项目笔记
- jQuery Datepicker 日期插件
- Centos 7 下joomla简体中文版安装
- 【codevs 1332】上白泽慧音
- 2022中国深圳国际医疗器械博览会
- Flyback Converter电源基本电路分析
- 地图分幅编号C 语言编程,地图分幅编号实验报告讲解
- handsome主题美化(二)- 底部页脚版权美化
- 【论文笔记】Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers