Java内部类和类变量、实例变量的理解

我今天在敲一个程序的时候犯了一个错误,先特意把次错误整理下来,希望大家引以为戒……

Java内部类

局部内部类

局部内部类的知识:局部内部类不能有访问控制符,它的作用于只是在声明它的方法块中。

匿名内部类

如果只创建内部类的一个对象,并且仅此一次,就可以省略它的类名。这样的内部类称作匿名内部类(naonymous inner class

匿名内部类定义的一般形式为:

                   new 父类名(构造参数) {

         内部类的属性和方法定义

}

 

             new 接口名() {

         内部类的属性和方法定义

}

静态内部类

1、  在内部类中使用静态方法

2、  发内部类定义在接口中

3、  在一个静态方法中构造内部类对象

类变量和实例变量【转】

可以通过两种方法在类中存储数据──作为实例变量和类变量.实例变 量是特定于对象的,如果你有两个对象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的类变量均指向 相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享,类变量在声明时比实例变量多一个static.
class Data{
                 public int intdata=0;//intdata
在这儿是实例变量
}
public class Test{
        public static void main(String[] args){
        Data a,b;
        a=new Data ();
        b=new Data ();
        a.intdata=1;
        System.out.println("b.indata="+b.intdata);
        }
}
行结果:
b.intdata=0
结果分析:
可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是如 果在data类中声明intdata,在其前面加上static就变成类变量了(:public static int intdata=0;),则此时运行结果会变为:b.intdata=1
这次a.intdata值的改变可把b.intdata影响了,事实上, 对象ab的类变量均指向相同的数据,所有值一样,这就是类变量的作用.

 

你可能感兴趣的:(java,String,url,存储,Class,behavior)