java 项目发布的问题

我更新了sqlDao

发布的时候只发布了sqlDao.class结果项目报错了,错误提示是不能创建StoreDao
下面这些类都是做什么的?我发布的时候也要同时发布这些类吗?
哪位大虾能告诉我class中的$代表是什么意思?

SqlDao$1.class
SqlDao$2.class
SqlDao$3.class
SqlDao$4.class
SqlDao$1StoredProcedureImpl$1.class
SqlDao$1StoredProcedureImpl.class

[color=darkred]1.首先 必须一起发布啊 内部类和本类必须一起发布的,否则会有问题的[/color]
2.SqlDao$1.class $代表sqldao里有内部类

都是SqlDao的内部类

详解参考下文章

http://www.javacto.com/2278.html

内部类:

内部类的好处:可以直接操作私有属性。

封装类:
class1{
class2{} //内部类
}

内部类的分类:

   成员式:
    静态内部类: (课堂代码:StaticInner.java ,TestStaticInner.java) 生成的内部类的字节码文件StaticInner$Inner1.class  

在静态内部类中只能访问外部类的静态成员。构造静态内部类对象不再需要构造外部类对象

    成员内部类:(课堂代码:MemberInner.java ,TestMemberInner.java)
必须要先构造外部类对象,再根据外部类对象构造内部类对象。
生成成员内部类对象形式: Inner2 i2=new MemberInner().new Inner2();
一个外部类对象可以生成多个成员内部类对象,一个成员内部类对象一定是由某一个外部类对象生成的。
成员内部类不能有静态属性

内部类和外部类的实例变量可以共存。
在内部类中访问实例变量:this.属性
在内部类访问外部类的实例变量:外部类名.this.属性。

在外部访问时,外部类.内部类作声明,new 外部类(得到外部类对象).new 内部类(得到内部类对象)
  例:MemberInner.Inner2 i2=new MemberInner().new Inner2();

   局部式:
    局部内部类:定义在外部类的方法中。(课堂代码:MemberInner.java)

与局部变量类似,在局部内部类前只能用abstract或final修饰符,但一般不加此修饰符,避免对继承产生影响。其范围为定义它的代码块。

局部内部类不仅可以访问外部类实例变量,还可以访问外部类的局部常量,但是要求外部类的局部变量是final的。
实际上是为内部类添加了一个属性,这个属性就是外部类的final局部变量
在类外不可直接访问局部内部类(保证局部内部类对外是不可见的)。
在方法中才能调用其局部内部类。

    匿名内部类: 特殊的局部内部类,用来继承一个类或者实现一个接口,我们只需要这个局部内部类的一个对象。
  匿名内部类不能定义构造方法
  匿名内部类在编译的时候由系统自动起名Out$1.class。
  如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。
  因为匿名内部类无构造方法,所以其使用范围非常的有限。

[color=blue][b]当然要一并发布了,那些都是内部类的Class文件。
呵呵,都需要的。一个都不能少!
[/b][/color]