年一过完学习起来特精神感受一下java修饰符的应用于区别
访问修饰符的使用权限:最大的是public修饰符的属性他可以在任意的地方调用
其次是protected修饰符它不除不能再非不同包的子类调用外其他的都可以
默认的修饰符不能再不同包之间调用 同包的情况下不同类子类非子类均可调用、
privatie是私有的只能在本类中调用
包 |
同包 |
不同包 |
使用限制 |
|||
关系 |
本类 |
子类 |
非子类 |
子类 |
非子类 |
|
private |
O |
X |
X |
X |
X |
私有的 |
默认 |
O |
O |
O |
X |
X |
默认 |
protected |
O |
O |
O |
O |
X |
受保护的 |
public |
O |
O |
O |
O |
O |
公共的 |
构造器和访问器 将修饰符设置为private时我们可以使用get Xxxx setXxxx来在别的类中调用和修改 其属对象的属性值
通过使用修饰符,根据修饰符的不同属性可以将类的方法及属性进行封装和隐藏
Static 修饰符 静态的情况下是不可以访问非静态的,非静态的是可以访问静态的
非static 是可以操作有static类中的任何方法和属性的但是同样受访问修饰符的限制。
调用时:类名.方法()调用 对象引用名.方法()调用
Static不能修饰构造器因为它与对象无关,构造是专门产生对象的
Static可以修饰类也可以修饰方法 、属性也可以修饰初始化块
修饰属性时该属性就是静态的属性 在使用时首先被加载并提升为全类的一个属性在整个类里面都可以共用, 修饰初始化块时该初始化块即为静态初始化块在类加载的时候首先执行 但是执行一次,在父类时子类调用父类执行一次 和对象无关
内部类
内部类就是在一个类中创建新的类一共有四种方式:
第一种是静态内部类 作为类的静态成员,在本类的任意方法中都可以new出来;在第三方类中要new出来,无需产生外部类对象,只需用外部类类名.的方式就可以了
第二种是成员内部类 它是一个完整的独立的类 也可以使用修饰符,在本类的任意非static方法中都可以new出来;在第三方类中必须用外部类对象.new的方式产生内部类对象 其class文件的名字:外部类类名$内部类类名.class
第三种是局部内部类 存在于某个方法的内部 是一个完整的独立的类不能有访问修饰符 在本方法内可以产生对象然后使用,
class文件的文字:外部类类名$序号+内部类的类名.class
第四种是匿名内部类 存在于某个方法的内部,但是没有名字 它是局部类的特例,只能用一次用了就被垃圾回收了在用时就得重写。