文章目录
- 一、程序分析题
- 项目结构
- 分析题01
- 分析题02
- 分析题03
- 分析题04
- 二、程序改错题
- 项目结构
- 改错题01
- 改错题02
- 改错题03
- 改错题04
- 改错题05
- 改错题06
一、程序分析题
项目结构
分析题01
packageProgramAnalys;/** * 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
/** * 对数字54321的各位进行处理并累加计算,把数字每一位与递减的t值相加后累计 */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
packageProgramAnalys;/** * 异常处理示例:演示除法运算中的异常捕获(除数为0)(P149) * 如果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
packageProgramAnalys;/** *定义了Dool类,定义name和age两个私有字段 toString()方法返回的为name值,不返回age */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(){}publicT1(intage){this.age=age;}publicT1(StringuserName){name=userName;}}考察知识点:P92
1.构造方法的名称必须与类名一致;
2.构造方法名称强不能有任何返回值类型的声明;
3.不能在构造方法中使用return返回一个值,但可以单独写return语句作为方法的结束。
改错题02
packageProgramErrorCorrection;/** * p106 静态方法 * main方法是静态方法(static) * 但是调用add()是非静态方法(没有static) */publicclassT2{publicstaticvoidmain(String[]args){System.out.println(add(1,2));}privatestaticintadd(inta,intb){returna+b;}}考察知识点:P106
静态方法只能访问静态成员。
改错题03
packageProgramErrorCorrection;/** * p123,包含抽象方法的类,必须使用abstr关键字声明为抽象类 */publicabstractclassT3{abstractfloatcalculateAtea(floatw,floath);voidprintInfo(){}staticfloatgetWidth(){return0;}}考察知识点:抽象类的方法p123:
1、包含抽象方法的类必须是抽象类。
2、生命抽象类和抽象方法时都要使用abstract关键字修饰。
3、抽象方法只需要声明而不需要实现。
4、如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。
改错题04
packageProgramErrorCorrection;/** * p154 * 如果不知道如何处理调用方法的异常,可以使用throws关键字继续将异常抛出 */publicclassT4{publicstaticvoidmain(String[]args)throwsException{intresult=divide(4,0);System.out.println(result);}publicstaticintdivide(intx,inty)throwsException{intresult=x/y;returnresult;}}考察知识点:throw关键字p155:
1、当throw关键字抛出的异常是编译异常时,有两种处理方式:第一种是在try代码块里使用throw关键字抛出异常,通过try代码块捕获该异常;第二种是在一个有throws声明的方法中使用throw关键字抛出异常,把异常交给该方法的调用者处理。
2、当throw关键字抛出的异常是运行异常时,程序既可以显式使用try…catch语句捕获并处理该异常,也可以完全不理会该异常,而把该异常交给方法的调用者处理。
改错题05
packageProgramErrorCorrection;/** * p32 * 单精度浮点数后面以F或f结尾 * 变量名不能重复 */publicclassT5{publicstaticvoidmain(Stringargs[]){bytea=-128;intb=666;floatc=3.14f;doubled=0.618;chare=97;}}考察知识点:浮点数常量P32
1.Java中的浮点数分为单精度浮点数(float)和双精度浮点数(double) 两种类型。
2.其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。
改错题06
packageProgramErrorCorrection;/** * p120,final关键字 使用final关键字修饰的类不能用子类 * 使用final关键字修饰的方法不能被子类重写 * 使用final关键字修饰的变量是常量,常量不可修改 */publicclassT6{publicstaticStringSCHOOL_NAME="成都文理大学";publicstaticvoidmain(Stringargs[]){changeSchoole("电子科技大学");System.out.println(SCHOOL_NAME);}staticvoidchangeSchoole(Stringschool){T6.SCHOOL_NAME=school;}}考察知识点:P120,Java中被final园修饰的变量为常量,常量只能在
声明时被赋值一次,在后面的程序中,常量的值不能被改变。
使用 final关键字时需要注意以下几点:
1.使用final关键字修饰的类不能有子类
2.使用final关键字修饰的方法不能被子类重写
3使用final关键字修饰的变量是常量,常量不可修改