Java内部类学习
1.内部类的实例与外部类的实例共享一种特殊的关系,这种特殊的关系为内部类中的代码提供对封装(外部)类成员的访问。其实,内部类就是外部类的一部分。不仅仅是“一部分”,而且是外部类的一个完整的,正式的成员。内部类实例可以访问外部类的所有成员,甚至是那些标识为private的成员。
1.1编写常规内部类
此处的常规表示:内部类不是静态的,局部方法的,匿名的。应是如下形式的:
class MyOuter {
class MyInner{ }
}
编译时会生成两个类文件:
javac MyOuter.java
生成:
MyOuter.class和MyInner.class
常规的内部类不能有任何类型的静态生命。能够访问内部类的唯一方法是通过外部类的一个活的实例。
看如下代码:
class MyOuter {
private int x=7;
class MyInner {
public void seeOuter(){
System.out.println("Outer x is "+x);//可以直接访问外部类的成员,即使是private的
}
}
}
实例化外部类
在外部类中实例化内部类
class MyOuter {
private int x=7;
public void makeInner(){
MyInnner in=new MyInner();
in.seeOuter();
}
class MyInner {
public void seeOuter() {
System.out.println("Outer x is "+x);
}
}
}
可见,MyOuter将MyInner当做其他任何可访问的类一样,它使用类名称【new MyInner()】来实例化。然后再引用变量上调用方法[in.seeOute()]。这种方法能起作用的唯一原因是:外部类实例方法代码正在进行实例化。换句话说,已经存在一个外部类的实例---运行makeInner()的实例。
从外部类实例代码之外创建外部类的对象
没有外部类的实例,就不能从外部类的静态方法实例化内部类(因为静态代码内不存在this引用)。内部类的实例总是拥有一个外部类的隐含引用。编译器负责处理这种隐含关系。
在外部类之外,创建内部类实例,可以这样做:
public s
相关文档:
代码如下:
1 String command = " cmd /c C:/Program Files/MySQL/MySQL Server 5.0/bin>mysqldump -h localhost -u root -p aijia > E:/aijia.dmp " ;
2 try {
3 Process process& ......
一、运行class文件
执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
java Test
如果执行的class文件是带包的,即在类文件中使用了:
package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件 ......
一、什么是Java虚拟机
当你谈到Java虚拟机时,你可能是指:
1、抽象的Java虚拟机规范
2、一个具体的Java虚拟机实现
3、一个运行的Java虚拟机实例
二、Java虚拟机的生命周期
一个运行 ......
装饰器模式主要应用于这样一种场合,当你已经有了一个目标类,并且它是一个接口的实现类,在对该类使用的后期发现需要对相应接口程序的前后做更多的处理,这些处理是变化的,不固定的,但是有不能去修改这个目标类,这时我们就可以使用这个装饰器模式:
比如,我们已经有一个付款的方法 payMoney(long count) ,这个方法只 ......