黑马程序员技术交流社区
标题:
优先顺序
[打印本页]
作者:
程有愿
时间:
2012-8-29 18:44
标题:
优先顺序
学了关键字后 我发现了几个功能差不多的关键字,finall ,fiallly,break,return,这个几个关键字的优先执行顺序又是怎么样的呢?
作者:
全海波
时间:
2012-8-29 19:23
这有什么优先执行顺序呢,这些都是个级别的而已,谁放在前面就执行谁,不过有一点,那就是finally这个单词,他应该是异常里的吧。当你在处理异常的时候,例如:
try
{
}
catch
{
}
finally
{
}
复制代码
执行完try与catch的时候,finally是必须执行的,就算不执行try catch的话,那么finally里面的语句是必须执行的
作者:
魏-玉-彪
时间:
2012-8-29 19:43
谁在前面就执行谁,这几个关键字不会同时出现
作者:
曹操
时间:
2012-8-29 20:10
这四个没有什么优先顺序这一说
首先楼主要知道 break和return的区别
用举例子你最容易明白了。如java中你写了一个方法Test
int Test()
{
for(int i=0;i<10;i++)
{
if(i == 5)
{
break;
}
}
return 123;
}
这个方法中返回的需要是个int型的,所以这里返回123.
在for循环中使用了break;跳出循环。
总的来说,return是表示一个方法结束以后返回了一些什么数据给调用它的方法。一个方法执行到return以后就跳转回原来调用这个方法的位置了。比如b方法调用了这个test方法。其中有一句比如是:int avc = a.test();这句就把test方法返回的123传给了调用它的avc并赋值了。
break是表示循环的跳出或者终止某个switch项。在循环中你如果想立即跳出循环,只需要写break就可以了。然后程序就跳出break所在的循环,然后继续往下进行了。
作者:
曹操
时间:
2012-8-29 20:14
然后再了解 final和finally的区别 就会豁然开朗了
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
作者:
吴通
时间:
2012-8-29 22:20
finall ,fiallly,break,return
final是一个修饰符
1.可以修饰类、变量和函数
2.被final修饰的类不可以被继承,某些类为了避免被继承可以加final修饰
3.被final修饰的方法不可以被复写
4.被final修饰的变量是一个常量,只赋值一次,既可以修饰成员变量也可以修饰局部变量
finally是try{} catch{} finally{} 中一定能执行到的部分
return用来返回方法的结果,返回值类型和方法定义一致
break一般用在循环中,用来停止循环的运行。跳出本次循环
由于fianl是修饰符,所以我认为这个是最先执行的,只要类加载就能执行
class Demo
{
final void show1()
{}
void show2()
{}
}
class SubDemo extends Demo
{
void show2(){}
}
class FinalDemo
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
finally一般都会执行到,但顺序不一定
而break和return如果都在一个循环中使用的话,一般
先执行break,再执行return
因为先要停止循环然后再返回数据。
作者:
黑马_许芸
时间:
2012-8-29 22:42
try
{
return; //即时try中有return,也会在return之前先执行finally中的代码。但若是在这里换成system.exit(0),就会直接跳出,不再执行finally中的代码。
}
finally
{
一定会执行的代码;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2