今天来谈谈类别中的非主菜部分,没有它们类别同样可以运作,甚至可以说大部分的实务上不会用到这2个东西,但既然我们目标是要考证照,势必需要了解一下的,那就是内部类别以及区块。
class OuterClass{
class InnerClass{
}
}
而如果想要创建出inner class的实例,必须要先创建出外层class的实例後,才可创建inner class实例:
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
以上的情况相当罕见,通常inner class会被定义为private,用来处理比较复杂的结构,不太会让外部直接取用。若真要被外部取用的话,比较常见的是定义为static inner class:
class OuterClass{
static class InnerClass{
}
}
要注意只有内部类别才可以定义为static,外部类别没办法定义为static。而被定义为static的内部类别,就可以直接利用外部类别的类别名称当作命名空间来创建实例:
OuterClass.InnerClass inner = new OuterClass.InnerClass();
class Player{
String name;
{
this.name = "Jack";
}
}
这样的block,代表在正要创建实例但尚未完成之前,就会先执行block里面的内容,所以这个范例中,如果我们直接使用预设建构子来创建一个Player时,name会被指派为"Jack"。
static{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException ce){
ce.printStackTrace();
}
}
>>: 【Day 10】分类(Classification)(上)
资料平台的建构从基础设施建设开始,配合业务需求,以大数据技术作为战略的基石。 基础设施 包括硬体资源...
本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...
写在前面 placeholder for test test placeholder for tes...
Did you have a brilliant concept for a product but...
GIS地理资讯系统(Geographic Information System) 地理资讯系统这个名...