文章目录
- 一、程序分析题
- 项目结构
- 分析题01
- 分析题02
- 分析题03
- 分析题04
- 二、程序改错题
- 项目结构
- 改错题01
- 改错题02
- 改错题03
- 改错题04
- 改错题05
- 改错题06
一、程序分析题
项目结构
分析题01
代码展示
packageProgramAnalysis;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;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;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;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;}}运行结果
二、程序改错题
项目结构
改错题01
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:p92,构造方法没有返回值,也不能使用void关键字 */publicclassT1{privateintage;privatestaticStringname;privateT1(){//构造方法}// 修正:构造方法不能有返回值(包括void),需去掉void,且可补充访问修饰符publicT1(intage){//构造方法this.age=age;}publicT1(StringuserName){//构造方法name=userName;}}考察知识点:构造函数,构造函数的定义P92
1、构造方法的名称必须与类名一致
2、构造方法名称前不能有任何返回值类型的声明
3、不能在构造方法中使用return返回一直值。但可以单独写return语句作为方法的结束
改错题02
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:静态方法 * main 方法是 静态方法(static), * 但是调用的 add() 是 非静态方法(没有 static)。 */classT2{publicstaticvoidmain(String[]args){System.out.println(add(1,2));}privatestaticintadd(inta,intb){returna+b;}}考察知识点:P64页
1.静态成员的调用限制:静态方法无法直接调用非静态成员方法
2. 静态方法的修饰规则:被静态方法调用的方法需添加 static 修饰符
3. 类成员的访问规则:静态成员属于类,非静态成员属于对象实例
改错题03
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:包含抽象方法的类必须声明为abstract抽象类 */abstractclassT3{abstractfloatcalculateArea(floatw,floath);voidprintInfo(){}staticfloatgetWidth(){return0;}}考察知识点:P123页
1 抽象类的定义要求:包含抽象方法的类必须用 abstract 关键字声明为抽象类
2. 抽象方法的特性:抽象方法仅有方法声明,没有方法体
3. 抽象类的成员规则:抽象类中可同时包含抽象方法和非抽象方法
改错题04
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:1.调用声明抛出异常的方法需捕获/抛出异常;2.除数不能为0需做逻辑判断 */publicclassT4{publicstaticvoidmain(String[]args){try{intresult=divide(4,0);System.out.println(result);}catch(Exceptione){System.out.println("除数不能为0,异常信息:"+e.getMessage());}}publicstaticintdivide(intx,inty)throwsException{if(y==0){thrownewException("除数为0,不允许除法运算");}intresult=x/y;returnresult;}}考察知识点:P154页
1.异常的处理要求:调用声明抛出异常的方法,必须捕获异常或再次抛出异常
2.算术运算的合法性:除法运算中除数不能为0,需提前做逻辑判断
3. 异常的主动抛出:可通过 throw 关键字手动抛出自定义异常对象
改错题05
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:1.float字面量需加f/F后缀;2.变量不能重名定义;3.基本数据类型赋值规则 */publicclassT5{publicstaticvoidmain(Stringargs[]){bytea=-128;intb=-66;floatc=3.14f;doubled=0.618;charch=97;}}考察知识点:P32页
1.浮点型字面量规范: float 类型的字面量必须添加 f 或 F 后缀
2. 变量的命名规则:同一方法作用域内,变量名称不能重复定义
3. 基本数据类型赋值: byte 类型的取值范围为 -128~127 ,赋值需符合范围要求
改错题06
错误代码
修正后代码
packageProgramErrorCorrection;/** * 考察知识点:final修饰的静态常量不可被重新赋值,需移除final修饰符 */publicclassT6{publicstaticStringSCHOOL_NAME="成都文理学院";publicstaticvoidmain(Stringargs[]){changeSchool("电子科技大学");System.out.println(SCHOOL_NAME);}staticvoidchangeSchool(Stringschool){T6.SCHOOL_NAME=school;}}考察知识点:P120页
1.final 关键字的特性: final 修饰的常量一旦赋值,无法被重新修改
2.静态常量的访问规则:静态常量可通过 类名.常量名 的方式访问
3.变量的修饰组合: static final 共同修饰的变量为全局静态常量,不可变更