1.包
什么是包?
包就是个文件夹,用于区分相同的文件名
包的格式?
package 包名;
包名一定要全部都是小写的
要符合命名规范
包,导包,定义类的先后的顺序
package --> import --> class
2.访问权限修饰符
private
默认
protected
public
在同一类中:private 默认 protected public
在两个类中(两个类有子父类继承关系),同一个包下面:默认 protected public
在两个类中(两个类没有继承关系),同一包下面:默认 protected public
在两个类中(两个类有子父类继承关系),在不同包下面:protected public
在两个类中(两个类没有继承关系),在不同的包下面:public
3.修饰符
private:成员内部类,成员变量,成员方法,构造方法
默认:类,成员变量,成员方法,构造方法
protected:成员变量,成员方法,构造方法
public:类,成员变量,成员方法,构造方法
static:成员内部类,成员变量,成员方法
final:类,成员变量,成员方法
abstract:类,成员方法
所有的类前面用public
所有的成员变量前面用private
所有的成员方法前面用public
所有的构造方法前面用public
4.内部类
什么是内部类?
一个类定义在另一类的里面,那里面的类就被称为内部类
内部类的特点是什么?
内部类可以直接访问外部类的非私有成员和私有成员
外部类可以访问内部类里的内容,但是,要先创建内部类对象,然后再对其进行访问
内部类分为哪几种?
成员内部类:
如果成员内部类被public修饰的时候:
例:
class Outer {
public class Innner {
int i = 2;
public void eat() {
System.out.println("吃");
}
}
}
class Demo {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
Systme.out.println(oi.i);
oi.eat();
}
}
如果成员内部类被private修饰的时候:
例:
class Outer {
private class Inner {
int i = 2;
public void eat() {
Systme.out.println("吃");
}
}
public void print() {
Inner inner = new Inner();
inner.eat();
System.out.println(inner.i);
}
}
class Demo {
public static void main(String[] args) {
Outer outer = new Outer();
outer.print();
}
}
如果成员内部类被static修饰的时候:
例:
class Outer {
static class Inner {
int i = 2;
public void eat() {
System.out.println("eat");
}
}
}
class Demo {
public static void main() {
Outer.Inner oi = new Outer.Inner();
oi.eat();
System.out.println(oi.i);
}
}
局部内部类:
例:
class Outer {
public void print() {
class Inner {
int i = 2;
public void eat() {}
}
Inner inner = new Inner();
inner.eat();
System.out.println(inner.i);
}
}
class Demo {
public static void main() {
Outer outer = new Outer();
outer.print();
}
}
5.匿名内部类
什么是匿名内部类?
没有名字的局部内部类,就叫做匿名内部类,也叫做匿名子类对象
匿名内部类的格式是什么样的?
new 类名/抽象类名/接口名() {
重写的方法;
自定义的方法;
};
什么时候可以使用匿名内部类?
当一个方法的形式参数是抽象类或者接口的时候,我们就可以考虑使用匿名内部类(匿名子类对象)了
|
|