01、带包的类的编译和运行
带包编译
格式 : package 包名(全部小写,可以单级包也可以多级包)
一 如果需要带包编译和运行的话从上到下的顺序?
package 包名>>import 导包>>定义类 class
-----------------------------------------------------------------------------------------------------------------
02、不同包下类之间的访问和导包问题
常见问题:
提示:找不到Demo类
解决方案:使用全路径名
提示:Demo类无法访问
解决方案:对类使用public修饰
-----------------------------------------------------------------------------------------------------------------
03、四种权限修饰符的作用
记住:成员变量 private
成员方法 public
-----------------------------------------------------------------------------------------------------------------
04、修饰符可以修饰哪些内容
类 成员变量 成员方法 构造方法
private Y(内部类) Y Y Y
默认 Y Y Y Y
protected Y Y Y
public Y Y Y Y
abstract Y Y
static Y(内部类) Y Y
final Y Y Y
private 修饰内部类:
-----------------------------------------------------------------------------------------------------------------
05、内部类概述
内部类概念:
将一个类定义在另一个类中,那么这个类就可以成为内部类(嵌套类,内置类)
内部类访问特点:
A:内部类可以直接访问外部类的成员,包括私有成员。
B:外部类想要访问内部类的内容,必须创建内部类对象.
-----------------------------------------------------------------------------------------------------------------
06、成员内部类的使用
一 内部类的分类:
A:定义在成员位置的内部类成为成员内部类
B:定义在方法中的类,就叫局部内部类
二 如果想在测试类中,直接使用成员内部类。那么请按照如下格式:
外部类名.内部类名 变量名 = 外部类对象.内部类对象;
-----------------------------------------------------------------------------------------------------------------
07、成员内部类的修饰符(private和static)
成员内部类的修饰符
A: private 修饰是为了考虑安全性
B: static 修饰是为了方便调用
如果成员内部类用 static 修饰那么调用的方式是
外部类名.内部类名 变量名 = new 外部类名.内部类名();
-----------------------------------------------------------------------------------------------------------------
08、局部内部类的使用
注意:局部内部类如果访问方法中的局部变量,那么这个变量必须用final修饰(是为了延长它的生命周期)
-----------------------------------------------------------------------------------------------------------------
09、内部类字节码文件命名规则
-----------------------------------------------------------------------------------------------------------------
10、匿名内部类的使用
一 匿名内部类定义:
没有名字的局部内部类
二 前提条件:
要有一个类,或者抽象类,或者接口(应用比较多的是抽象类和接口)
三 格式:
new 类名或接口名()
{
重写抽象类或接口中的抽象方法
也可以自己定义一些特有的功能
};
解释:通过匿名对象其实就是获取到了一个该接口的子实现类对象
以后遇到匿名内部类的形式是,一个方法的形参位置要求传递一个接口类型的对象.
有一个接口叫 Inter
public void show(Inter i)
{}
public class Test1 {
public static void main(String[] args){
DogShout(new Dog(){
public void shout(){
System.out.println("55555555");
}
});
}
public static void DogShout(Dog d){
d.shout();
}
}
interface Dog
{
void shout();
}
-----------------------------------------------------------------------------------------------------------------
11、什么时候使用匿名内部类
所有父类出现的地方完全可以使用子类去替代
-----------------------------------------------------------------------------------------------------------------
|
|