易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关文档:

java 调用命令 备份mysql数据库

 代码如下:
  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& ......

Java虚拟机几个命令行参数说明

一、运行class文件
执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
java Test
如果执行的class文件是带包的,即在类文件中使用了:
package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件 ......

Java虚拟机 和 java虚拟机下的进程

一、什么是Java虚拟机
     当你谈到Java虚拟机时,你可能是指:
     1、抽象的Java虚拟机规范
     2、一个具体的Java虚拟机实现
     3、一个运行的Java虚拟机实例
二、Java虚拟机的生命周期
     一个运行 ......

java设计模式:装饰器模式[Decorator]

装饰器模式主要应用于这样一种场合,当你已经有了一个目标类,并且它是一个接口的实现类,在对该类使用的后期发现需要对相应接口程序的前后做更多的处理,这些处理是变化的,不固定的,但是有不能去修改这个目标类,这时我们就可以使用这个装饰器模式:
比如,我们已经有一个付款的方法 payMoney(long count) ,这个方法只 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号