当前位置: 首页 > news >正文

【期末复习02】分析题和改错题

文章目录

  • 一、程序分析题(20)
    • 项目结构
    • 分析题01
    • 分析题02
    • 分析题03
    • 分析题04
  • 二、程序改错题(20分)
    • 项目结构
    • 改错题01
    • 改错题02
    • 改错题03
    • 改错题04
    • 改错题05
    • 改错题06

一、程序分析题(20)

项目结构

分析题01

代码

packageProgramAnalysis;/** * 写出这段代码在干什么: * 1、定义一个二维数组arr,包含3行3列的整数。 * 2、使用嵌套循环遍历数组,将所有元素累加起来。 * 3、打印出累加的结果。 */publicclassT1{publicstaticvoidmain(String[]args){int[][]arr={{10,20,30},{11,21,31},{12,22,32}};intsum=0;for(inti=0;i<arr.length;i++){for(intj=0;j<arr[i].length;j++){sum+=arr[i][j];}}System.out.println("sum="+sum);}}

运行结果

分析题02

代码

packageProgramAnalysis;/** * 对数字54321的各位进行处理并累加计算,把数字每一位与递减的t值相加后累计 */publicclassT2{publicstaticvoidmain(String[]args){intA=54321,sum=0,t=10;while(t>0){sum+=A%10+t;A/=10;t/=10;}System.out.println(sum);}}

运行结果

分析题03

代码

packageProgramAnalysis;/** * 演示Java的异常处理机制:通过自定义除法方法主动抛出除数为零的算术异常, * 再在main方法中用try-catch捕获不同类型的异常, * 同时利用finally块保证特定代码无论异常是否发生都会执行。 */publicclassT3{publicstaticvoidmain(String[]args){try{intresult=divideNumbers(4,0);System.out.println("计算结果 = "+result);}catch(ArithmeticExceptione){System.out.println("捕获算术异常: "+e.getMessage());return;}catch(Exceptione){System.out.println("捕获其他异常: "+e.getMessage());return;}finally{System.out.println("执行finally块");}System.out.println("程序继续执行");}privatestaticintdivideNumbers(intdividend,intdivisor){if(divisor==0){thrownewArithmeticException("除数不能为零");}returndividend/divisor;}}

运行结果

分析题04

代码

packageProgramAnalysis;/** * 实现了自定义类的封装、对象实例化,并通过重写toString()改变了对象打印时的输出结果 */publicclassT4{publicstaticvoidmain(Stringargs[]){Dolldoll=newDoll("Kitty",2);System.out.println(doll);}}classDoll{Stringname;intage;publicDoll(Stringname,intage){this.name=name;this.age=age;}publicStringtoString(){returnthis.name;//只返回了name}}

运行结果

二、程序改错题(20分)

项目结构

改错题01

修改前代码

修改后代码

考察知识点:构造函数,构造函数的定义P92:

1、 构造方法的名称必须与类名一致;

2、 构造方法名称前不能有任何返回值类型的声明;

3、 不能在构造方法中使用return返回一个值,但可以单独写return语句作为方法的结束。

改错题02

修改前代码

修改后代码

考察知识点:静态方法p106:

  1. main方法的静态特性
    • main方法是Java程序的入口方法,必须被声明为static,属于类的静态成员,而非对象的成员。
    • 静态方法在执行时,不需要创建类的实例,直接通过类名(或省略类名)调用。

  2. 静态方法调用规则
    • 静态方法只能直接调用同类的静态方法/静态变量,不能直接调用非静态方法/非静态变量(因为非静态成员属于对象,需要先创建对象才能调用)。
    • 这段代码中add方法被声明为static,因此main方法可以直接调用;若add方法去掉static(变为非静态),代码会编译报错。

  3. 方法的访问修饰符与参数
    • add方法用private修饰,表明该方法仅能在T2类内部被访问,外部类无法调用。
    • 方法参数的a:1、b:2是代码中的标注(非Java语法),实际调用时只需传入1和2即可,正确写法为add(1, 2)。

  4. 静态方法的本质
    • 静态方法属于类级别,存储在方法区,类加载时就会初始化;非静态方法属于对象级别,创建对象时才会分配内存。

改错题03

修改前代码

修改后代码

考察知识点:抽象类的方法p123:
1、包含抽象方法的类必须是抽象类。
2、生命抽象类和抽象方法时都要使用abstract关键字修饰。
3、抽象方法只需要声明而不需要实现。
4、如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。

改错题04

修改前代码

修改后代码

考察知识点:throw关键字p155:
1、当throw关键字抛出的异常是编译异常时,有两种处理方式:第一种是在try代码块里使用throw关键字抛出异常,通过try代码块捕获该异常;第二种是在一个有throws声明的方法中使用throw关键字抛出异常,把异常交给该方法的调用者处理。
2、当throw关键字抛出的异常是运行异常时,程序既可以显式使用try…catch语句捕获并处理该异常,也可以完全不理会该异常,而把该异常交给方法的调用者处理。

改错题05

修改前代码

修改后代码

考察知识点:浮点数常量P32:
Java中的浮点数分为单精度浮点数(float) 和双精度浮点数(double) 两种类型。
其中,单精度浮点数后面以 F 或 f 结尾,而双精度浮点数则以 D 或 d 结尾。

改错题06

修改前代码

修改后代码

考察知识点:final关键字P120:
Java中被final修饰的变量为常量,常量只能在声明时被赋值一次,在后面的程序中,常量的值不能被改变。
使用final关键字时需要注意以下几点:
(1) 使用final关键字修饰的类不能有子类
(2) 使用final关键字修饰的方法不能被子类重写
(3) 使用final关键字修饰的变量是常量,常量不可修改

http://www.cnnetsun.cn/news/93455.html

相关文章:

  • MusicFree插件完全指南:解锁个性化音乐体验的终极教程
  • 显卡驱动终极清理方案:Display Driver Uninstaller完整使用指南
  • 5分钟从入门到精通!PandaWiki:零代码小白的AI编程助手
  • 基于JAVA的图书馆图书资源检索借阅系统
  • 原神自动化脚本7大实用技巧:新手也能快速上手的完整指南
  • 基于Java的奖学金评定评优系统的设计与实现
  • 03-编写和运行Playbook
  • 如何用Locale Emulator实现完美区域语言模拟:新手终极指南
  • Java与操作系统常用命令交互全解析
  • Mac微信防撤回插件WeChatIntercept:终极完整使用指南
  • LobeChat能否实现AI律师函撰写?法律文书自动化产出
  • 基于Python的在线零食购物商城系统的设计与实现
  • 小爱音箱AI升级终极指南:三步打造你的智能语音管家
  • 如何设计吸引眼球的放假通知图片
  • Wallpaper Engine终极下载指南:免费获取创意工坊壁纸的完整教程
  • 终极指南:如何用QtScrcpy实现零延迟Android投屏控制
  • 华为认证的证书含金量到底怎么样?谁适合考?谁没必要浪费时间?
  • 六音音源重生之路:让洛雪音乐重获新生
  • QtScrcpy跨平台投屏终极指南:让你的手机在电脑上“活“起来
  • 鸣潮自动化工具终极指南:5分钟实现全自动游戏体验
  • 百度网盘提取码智能获取工具使用全攻略
  • LobeChat日志脱敏处理:避免敏感信息外泄
  • 跨文化团队 brainstorm 没创意?提示工程架构师的提示法,激发灵感
  • 微信朋友圈营销转化,5个技巧轻松提升销售额
  • LobeChat版本升级注意事项与迁移路径
  • Zotero Style插件:如何用5个步骤彻底改变你的文献管理体验?
  • 如何监控LobeChat服务状态并设置告警机制?
  • 企业级文档预览架构深度解析:wps-view-vue高性能集成完整指南
  • Applite终极指南:告别命令行,拥抱可视化Homebrew Cask管理
  • 计算机体系结构中的中断处理机制:硬件响应与软件识别的协同架构