匿名对象 * 没有名字的对象 * 堆区的那个地址,没有用变量来保存 匿名对象的使用场景 * 快速访问 (测试) * 传参
public class test01 {
public static void main(String[] args) {
new mi();
new mi().a=18;
new mi().q();
Q(new mi());
}
public static void Q(mi m) {
System.out.println("tom");
}
}
class mi{
int a;
public void q() {
System.out.println(17);
}
}
内部类(外部类$内部类)
内部类
- 类中方法外 (成员内部类)
- 外部类.内部类 变量名 = new 外部类().new 内部类();
- 方法中(局部内部类)
public class test02 {
public static void main(String[] args) {
AK.B b = new AK().new B();
System.out.println(b);
AK A = new AK();
A.kk();
}
}
class AK{
int a;
class B{
int b;
}
public void kk() {
class R{
public void z() {
System.out.println("fafa");
}
}
new R().z();
}
}
匿名内部类
*快速的实例化接口,或者抽象类
public class test03 {
public static void main(String[] args) {
map ma =new map(){
public void ma() {
System.out.println("我是匿名内部类");
}
};
ma.ma();
}
}
interface map{
public void ma();
}
代码块 构造代码块(类中方法外) * 在创建对象的时候调用 * 优于构造方法 局部代码块(方法内) 静态代码块,在代码快加static;常用 * 加载数据 * 加载驱动 * 媒介 : 系统软件和硬件的连接者
public class test04 {
public static void main(String[] args) {
Y y = new Y();
y.G();
}
}
class X{
static {
System.out.println("父类静态代码块");
}
public X(){
System.out.println("父类的无参构造方法");
}
{
System.out.println("父类的普通d代码块");
}
public void G() {
{
System.out.println("父类方法中的代码块");
}
}
}
class Y extends X{
static {
System.out.println("子类静态代码块");
}
public Y(){
System.out.println("子类的无参构造方法");
}
{
System.out.println("子类的普通d代码块");
}
public void G() {
{
System.out.println("子类方法中的代码块");
}
}
}
修饰符
public | protected | 空白 | private | |
---|
同一个类 Y | Y | Y | Y | | 同一个包(子类/无关类) Y | Y | Y | | | 不同包(子类) Y | Y | | | | 不同包无关类 Y | | | | |
|