一.修饰符总结
1.权限修饰符
public:当前类;相同包下的类;不同包下的类
default: 当前类;相同包下的类;不同包下的类
private: 当前类
protected: 当前类;相同包下的类
注意:default和protected的区别:
default:当前包下使用
protected:可以让子类对象使用
例如:A类里面有两个方法分别是default和protected修饰,然后在B类里面,B类继承了A类,此时可以用super关键字去调用protected修饰的方法,但不能调用default修饰的方法
2.权限修饰符:
a.public:可修饰类、成员变量、成员方法、构造方法
b.default:可修饰类、成员变量、成员方法、构造方法
c.protected:是修饰成员的,不修饰类,他所修饰的成员专门为子类所提供,所以它可以修饰成员变量、成员方法和构造方法。
d.private:私有不能用来修饰类,用来修饰成员
3.抽象 abstract:
可以修饰类,不可修饰成员变量;可以修饰方法,不可以修饰构造方法。
4.static:
静态所修饰的成员可以被类名直接调用,所以他是用来修饰成员的,可修饰成员变量、成员方法、不可修饰构造方法。
5.final
可修饰类、成员变量、成员方法、但不能修饰构造方法。
6.常用规则:
a.以后我们使用public来修饰类,一个java文件只能有一个类,如果一个文件中有多个类,其中有一个类名和文件名一样的类,那它就必须用public来修饰,其他的类不能使用public修饰。
b.所有的方法也用public修饰
c.所有的成员变量由private修饰
d.所有的构造方法用public修饰,但是如果不想让其创建对象,便使用private修饰
二.内部类
1.内部类分类:a.成员内部类
b.局部内部类
c.匿名内部类
共性:内部类任然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。
2.成员内部类:
在类的成员位置,和成员变量以及成员方法所在位置是一样的
在内部类中,可以直接访问外部类的成员,包括私有成员
例:public class InnerDemo{
public static void main (String [ ] args) {
//Outer o = new Outer( );
//o.method( );
Outer.Inner i = new Outer( ).new Inner( );
//要创建一个Inner类型的一个变量,而Inner属于Outer类,所以需要Outer的修饰,有了变量后要创建对象,要创建Inner对象此时就必须先创建Outer对象。
i.function( );
}
}
class Outer{
private int num = 10 ;
public void method ( ){
Inner i =new Inner( );
i.function ( ) ;
}
class Inner{
public void function ( ){
System.out.println(num);
}
}
}
网友评论