匿名对象:
概念:
匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
特点:
①、创建匿名对象直接使用,没有变量名。
②、匿名对象在没有指定其引用变量时,只能使用一次。
③、匿名对象可以作为方法接收的参数、方法返回值使用。
内部类:
概念:
定义在其他类的内部的类就叫内部类,其他的类被称为外部类。在内部类中可以直接访问外部类的所有成员。
分类:
成员内部类、局部内部类。
成员内部类:
成员内部类,定义在外部类中的成员位置。
class 外部类 { 修饰符 class 内部类 { //其他代码 } }
访问方式:
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
就近原则。
局部内部类:
局部内部类,定义在外部类方法中的局部位置。
class 外部类 { 修饰符 返回值类型 方法名(参数) { class 内部类 { //其他代码 } } }
匿名内部类:
new 父类或接口(){ //进行方法重写 };
包:
概念:
java的包,其实就是我们电脑系统中的文件夹,包里存放的是类文件。
java.util 只能使用一次
导包:
import 包名.类名;
访问修饰符:
public | protected | Default | private | |
同一类中 | √ | √ | √ | √ |
同一包中(子类与无关类) | √ | √ | √ | |
不同包的子类 | √ | √ | ||
不同包中的无关类 | √ |
代码块:
静态代码块只执行一次。----只在类加载的时候执行一次!!!不管NEW多少次都执行一次!再创建新对象就不执行了!!!
构造代码块优先于构造方法(创建对象的时候执行)
public class Person {
public Person(){
System.out.println("构造方法");
}
//构造代码块
{
System.out.println("构造代码块");
}
//静态代码块
static{
System.out.println("静态代码块");
}
}
public Person(){
System.out.println("构造方法");
}
//构造代码块
{
System.out.println("构造代码块");
}
//静态代码块
static{
System.out.println("静态代码块");
}
}
public static void main(String[] args) {
new Person();
new Person();
}
执行结果:
静态代码块
构造代码块
构造方法
构造代码块
构造方法