Java部分关键字理解及解析
【摘要】
推荐资源站:https://zhimalier.com/
关键字说明 assert //用来进行程序调试 do //用在do-while循环结构中 break //提前跳出一个代码块 byte //基本数据类型,字节类型 case //用在switch中,表示其中的一个分支 catch //用在异常处理中,用来捕捉异常 abstract //...
推荐资源站:https://zhimalier.com/
关键字 | 说明 |
---|---|
assert |
//用来进行程序调试 |
do |
//用在do-while循环结构中 |
break |
//提前跳出一个代码块 |
byte |
//基本数据类型,字节类型 |
case |
//用在switch中,表示其中的一个分支 |
catch |
//用在异常处理中,用来捕捉异常 |
abstract |
//表明类或者成员方法具有抽象属性 |
enum |
//枚举 |
final |
//用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变 |
finally |
//用来处理异常情况,用来声明一个基本肯定会执行到的语句块 |
instanceof |
//用来测试一个对象是否是指定类型的实例对象(父类转子类向下转型) |
interface |
//接口 |
native |
//用来声明一个方法是由计算机相关的语言(c/c++等)实现的 |
synchronized |
//表明一段代码需要同步执行 |
throws |
//声明在当前定义的成员方法中所有需要抛出的异常 |
transient |
//声明不用序列化的成员域 |
volatile |
//表明两个或者多个变量必须同步地发生变化 |
-
/**
-
abstract
-
abstract 关键字可以修改类或方法。
-
abstract 类可以扩展(增加子类),但不能直接实例化。
-
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。
-
采用abstract方法的类本来就是抽象类,并且必须声明为abstract。
-
仅当abstract类的子类实现其超类的所有abstract方法时,才能实例化abstract类的子 类。这种类称为具体类,以区别于abstract类。
-
如果abstract类的子类没有实现其超类的所有abstract方法,该子类也是abstract类。
-
abstract关键字不能应用于static、private或final方法,因为这些方法不能被重写,因此,不能在子类中实现。
-
final类的方法都不能是abstract,因为final类不能有子类。**/
-
-
public abstract class MyClass{}
-
-
public abstract String myMethod();
-
/**
-
catch
-
catch关键字用来在try-catch或try-catch-finally语句中定义异常处理块。
-
开始和结束标记{和}是catch子句语法的一部分,即使该子句只包含一个语句,也不能省 略这两个标记。
-
每个try块都必须至少有一个catch或finally子句。
-
如果某个特定异常类未被任何catch子句处理,该异常将沿着调用栈递归地传播到下一个封闭try块。
-
如果任何封闭try块都未捕获到异常,Java解释器将退出,并显示错误消息和 堆栈跟踪信息。
-
-
finally
-
finally关键字用来定义始终在try-catch-finally语句中执行的块。
-
finally块通常包含清理代码,用在部分执行try块后恢复正常运行。
-
开始和结束标记{和}是finally子句语法的一部分,即使该子句只包含一个语句,也不能省略这两个标记。
-
每个try块都必须至少有一个catch或finally子句。如果执行try块的任何部分,
-
不论是否出现异常,也不论try或catch块是否包含return、
-
continue或break语句,都一定会执行finally块中的代码。 如果不出现异常,
-
控件将跳过try块,进入finally块。
-
如果在执行try块期间出现异常,并且相应的catch块包含break、continue或return语句 ,
-
控件将首先穿过finally块,之后再执行break、continue或return。
-
**/
-
-
try{
-
// <可能引发异常的块>
-
} catch(<java.lang.Exception或子类>e){
-
// <处理异常e的代码>
-
}
-
try{
-
// <可能引发其他异常的块>
-
} catch(FooException e){
-
// <处理FooExceptione的代码>
-
}catch(BarException e){
-
//<处理BarExceptione的代码>
-
}finally{
-
//<有异常或无异常情况下都执行的语句>
-
}
-
/**
-
final
-
final关键字可以应用于类,以指示不能扩展该类(不能有子类)。
-
final关键字可以应用于方法,以指示不能重写任何子类中的方法。
-
一个类不能同时是abstract又是final。abstract意味着必须扩展类,final意味着不能
-
扩展类。
-
一个方法不能同时是abstract又是final。abstract意味着必须重写方法,final意味着不能重写方法。**/
-
-
-
public final class MyFinalClass{
-
-
}
-
-
public class MyClass{
-
public final String myFinal Method()
-
{
-
<statements>
-
}
-
-
}
-
/**
-
implements
-
implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称
-
所指定的接口中所声明的所有方法的实现。**/
-
-
public class Son implements Father{ }
-
-
/** 在上例中,Son类必须提供在Father接口中所声明的所有方法的实现。否则,Truck类将是独立的;
-
它可以声明其他方法和变量,并扩展另一个类。
-
一个类可以实现多个接口。
-
-
instanceof
-
instanceof关键字用来确定对象所属的类。**/
-
-
-
if(node instanceof TreeNode){
-
<statements>
-
}
-
-
/**在上例中,如果node是TreeNode类的实例,或者是TreeNode的子类的实例,则 instanceof表达式的值将为true。
-
-
interface
-
interface关键字用来声明新的Java接口,接口是方法的集合。
-
接口是Java语言的一项强大功能。任何类都可声明它实现一个或多个接口,这意味着它实 现了在这些接口中所定义的所有方法。**/
-
-
public interface IPolygon{
-
public float getArea();
-
public int getNumberOfSides();
-
public int getCircumference();}
-
-
/** 实现了接口的任何类都必须提供在该接口中的所有方法的实现。
-
一个类可以实现多个接口。**/
-
/**
-
static
-
-
static特点:方法区,第一次使用类是就会在方法区中给static变量分配空间,非static变
-
量是创建对象才分配
-
static非static区别
-
--存储位置不同
-
--在内存中份数不同
-
--访问方式不同
-
--生命周期不同(分配空间的时间不同,消失时间不同)
-
staic内存图
-
static方法
-
static方法的作用和访问方式
-
静态方法只可以访问静态变量和静态方法,非静态方法可以访问静态和非静态的方法和变量--内存分配图
-
注意:this属于对象,是非静态变量所以不能出现在静态方法中
-
static代码块 局部代码块及其特点 代码块及特点 static代码块及特点
-
--第一次加载类的时候只执行一次
-
static关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。**/
-
-
public class MyPublicClass{
-
public final static int MAX_OBJECTS=100;
-
static int_numObjects=0;
-
static class MyStaticClass{
-
}
-
static int getNumObjects(){ } }
-
/**
-
通常,static关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。
-
static(内部)类可以被其他类实例化和引用(即使它是顶级类)。在上面的-示例-中,
-
另一个类中的代码可以实例化MyStaticClass类,方法是用包含它的类名来限定其名称, 如MyClass.MyStaticClass。
-
static字段(类的成员变量)在类的所有实例中只存在一次。
-
可以从类的外部调用static方法,而不用首先实例化该类。这样的引用始终包括类名作为
-
方法调用的限定符。在上面的示例中,MyClass类外部的代码以MyClass.getNumObjects ()的形式调用getNumObjects()static方法。
-
-
模式:
-
-
publicfinalstatic<type>varName=<value>;
-
-
通常用于声明可以在类的外部使用的类常量。在引用这样的类常量时需要用类名加以限定 。**/
文章来源: zhima.blog.csdn.net,作者:芝麻粒儿,版权归原作者所有,如需转载,请联系作者。
原文链接:zhima.blog.csdn.net/article/details/51902389
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)