读Java编程艺术之笔记(接口、带标签的break和continue)

接口:只规定静态常量,方法签名和返回类型,是抽象类完全抽象化的体现,本质是抽象。

public interface InterfaceName{
    public static final varType CONSTENT_NAME = value;
    public abstract returnType methodName(argumentList);
}

其中修饰变量的public static final,其中修饰方法的public abstract都可以省略不写。

Java不允许多重继承,即通过extends只能继承一个类,但Java允许“继承”多个接口,implements interface1, interface2, ...

 

带标签的break和continue,只能用于循环中,且在“嵌套”循环的情况下才有意义。

例:

jmp1:
if(condition==true){
    while(i<5){
        i = a.doSomething();
        if(i<0)
            break jmp1;//直接跳转到someNum=i
    }
    ...
}
someNum=i;
jmp2:
switch(select){
    case 'a':
        for(int x=10; x>0; x--){
            statements
            if(condition == true)
                break jmp2;//直接跳转到obj.doSomething()
        }
    case 'b':
        statements
    ...
}
obj.doSomething();

continue用在循环中,不执行continue之后的语句跳入下一次迭代;带标签的continue用在嵌套循环中,跳入外循环的下一次迭代,例

//这段代码是打印出20以内的素数
int
n=2; outerloop: while(n<=20){ for(int x=2; x<=n-1; x++){ if(n%x == 0){ n++; continue outerloop; } } system.out.print(n+"\t"); n++; }

需要注意的是,continue语句对while循环的循环变量不会像for循环那样自动更新,所以在上面代码中continue outerloop;之前加入对循环变量的更新,即,n++;

 

posted on 2013-03-23 10:01  夜月升  阅读(262)  评论(0)    收藏  举报

导航