Java中的类修饰符
资料主要来源于网络(http://60.28.60.3/zy/java-new/zhishidian/chap3/3.htm)
之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了。。。只要把类的属性改成默认的就可以了,也就是前面什么控制符都不加,采用默认的方式。
Java语言程序设计中,定义类时除了要使用class 关键字说明所定义的数据类型是类,还可以在 class 之前增加若干类的修饰符来限定所定义类的操作特性,说明类的属性。
类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是: 公共类修饰符 public
非访问控制符有:抽象类修饰符 abstract
最终类修饰符:final
不加修饰符的时候 即直接声明 class A{ }
在这种情况下,class前面没有加任何的访问修饰符,通常称为“默认访问模式”,在该模式下,这个类只能被同一个包中的类访问或引用,这一访问特性又称包访问性。
公共类的修饰符 public
一个java的源文件中,规定最多只能有一个public 类,当然也可以一个都没有。如果有public公共类,则规定文件名只能public 公共类的类名称一致,若是没有,则文件名可以任意。作为一个java程序的入口(javaSE)的类必须为public类。
所谓公共类是指这个类可以被所有的其它类或其它包中的类访问和引用,也就是说这个类作为一个整体,是可见的、可以使用的,程序的其它部分可以创建这个类的对象、访问这个类内部公共的 (用可访问控制符 public 定义的 )变量和方法。
哪些类应定义为公共类呢?
(1)个Java程序的主类都必须定义为公共类,用 public 修饰;
(2)作为公共工具供其它类和程序使用的类应定义为公共类,用 public 修饰。
抽象类修饰符 abstract
凡是用修饰符 abstract修饰的类,被称为抽象类。接口是一个100%的纯抽象类。
最终类修饰符 final
当一个类不可能有子类时(final类是不可以被继承的)可以用修饰符 final把它说明为最终类。
被定义为 final类通常是一些有固定作用、用来完成某种标准功能的类。如Java系统定义好的用来实现网络功能的InetAddress、Socket等类都是 final类。
如果把有继承关系的类用树表示出来,不难看到树的叶结点应该被定义为final最终类。
将一个类定义为 final 类。就可以把它的属性和功能固定下来,与它的类名形成稳定的映射关系,从而保证引用这个类时所实现的功能正确无误。
注意:修饰符abstract和修饰符final 不能同时修饰同一个类,因为abstract类是没有具体对象的类,它必须有子类,即就是是用来被继承的;而 final类是不可能有子类的类,所以用abstract和final修饰同一个类是无意义的。