黑马程序员-Java例题分析

来源:互联网 发布:一键领取cf装备源码 编辑:程序博客网 时间:2024/04/28 00:59
------- android培训、java培训、期待与您交流! ----------


第一题:写出下列程序的结果

代码如下:

class Demo{public static void func(){try{throw  new Exception();}finally{System.out.println("B");}}public static void main(String[] args){try{func();System.out.println("A");}catch(Exception e){System.out.println("C");}System.out.println("D");}}

结果:编译失败,因为在func函数中抛出了Exception异常而函数上却没有声明,所以编译失败

假设在func()函数上加上了 throws Exception的话,那么程序的运行结果就是:

打印→ → D,下面是执行流程图:



第二题:写出程序结果

程序代码如下:

class Test{Test(){System.out.println("Test");}}class Demo extends Test{Demo(){System.out.println("Demo");}public static void main(String[] args){new Demo();new Test();}}

程序运行结果:

打印: Tset → Demo → Test

考的子类的实例化过程。

下面是流程分析图:


第三题:写出程序结果

代码如下:

interface A{}  class B implements A{public String func(){return "func";}}class Demo{public static void main(String[] args){A a=new B();System.out.println(a.func());}}

结果:编译失败,因为 interface A 没有定义func方法

如果在 interface A中定义func方法的话,程序执行结果是:

打印 “func”

父类引用指向子类对象,func()返回的是文本”func”,所以程序是打印”func”

 

 

 

 

第四题:写出程序结果

代码如下:

class Fu{boolean show(char a){System.out.println(a);return true;}}class Demo extends Fu{public static void main(String[] args){int i=0;Fu f=new Demo();Demo d=new Demo();for(f.show('A'); f.show('B')&&(i<2);f.show('C')){i++;d.show('D');}}boolean show(char a){System.out.println(a);return false;}}

程序运行结果

打印: A → B

 

分析:

Fu f =new Demo(); //这里是穆雷引用指向子类对象,所以运行时是运行Demo里的show();

Demo里的show返回的是flase 

所以for循环的流程是 :

先执行了f.show('A');  然后执行了f.show('B') 由于这里返回了false ,所以for循环结束,结果:

f.show('B')

打印: A → B

 

 

 

 

第五题:写出程序结果

代码如下:

interface A{}class B implements A{public String test(){return "yes";}}class Demo{static A get(){return new B();}public static void main(String[] args){A a=get();System.out.println(a.test());}}

程序结果编译失败,因为接口A中没有定义test方法,如果给接口A定义test方法的话

编译成功,程序打印:"yes"


未完待续.....
0 0