包,final和static关键字 内部类

来源:互联网 发布:佳能单反修图软件 编辑:程序博客网 时间:2024/05/16 06:05

所谓的包就是为每个 Java 类提供一个命名空间。处于同一个包中的两个 Java 类可以不需要其他任何语句就相互寻找。类有四种类型, abstract 、 final 、 friendly 和 public ,其中后两种类型和包的定义相关,其中 public 类型的类可以为任何对象所存取,而 friendly 类型的类只有在相同包中的对象才能使用。成员变量或成员方法的 public 和 friendly 类型限制和类的类型限制相同,而protected 类型的方法或变量可以被其同包中的类,子类等访问,与friendly 相似(好像是没有区别的)。 private 类型的方法或变量只可以被自己类的方法所访问。

另外,如果程序位于两个包中,如果之间需要相互调用,则需要使用 import 语句将需要的类包括进来。注意,这种包括,只是保证可以进行范围以内的访问。即如果一个类要访问另外一个包中的公共类,则需要将那个公共类包括进来,但是还是不可以访问那个公共类中的 protected 、 private 和 friendly 类型的变量或是方法。

static 修饰的成员变量叫做类变量,它被所有对象共享,对所有的实例只使用一个备份。同样,有 static 修饰的成员方法叫做类方法。类方法不能使用该方法所在类的实例变量和实例方法,因为类方法也许会在实例化该类之前被调用。另外类方法中不能使用 this 关键字,因为 this 是代表调用该方法的对象,类方法不需要对象来调用,所以 this 不应该存在于类方法内部。

final 用于修饰类的时候,说明类是最终类,不能被其他类继承,也不能进行实例化(这是教科书上一句错误的话); final 修饰的变量是最终变量,即常量;用 final 修饰的方法不能再被子类重写。 main 方法是程序的入口点,它没有返回参数,而入口参数就是应用程序运行时在命令行给出的参数。

所谓内部类,就是在某个类的内部嵌套定义一个类,内部类可以在一个语句块的内部定义,也可以是其他类的成员,还可以在一个表达式内部匿名定义。内部类的特性有: 11 )内部类可以声明为 private 或 protected ; 2 )内部类可以定义为 abstract ; 3 )内部类不能与包含它的类名相同; 4 )内部类可以使用包含它的类的成员变量,包括静态和实例成员变量,也可以使用内部类所在方法的局部变量; 5 )内部类如果被声明为 static ,就变成了顶层类,这样就不能再使用局部变量,也只有内部类是顶层类时,才可以声明 static 成员。通过使用内部类虽然可以大大节省编译后产生的字节码文件的大小(为何可以以后再查询),但是会造成程序结构上的不清楚。

原创粉丝点击