1、Object类
1、概念: 
1.1 所有类在创建时都默认继承了java.lang.Object 
1.2 所有类对象都可以声明为类对象的引用
Object ob1=new String();
Object ob2=new Integer();2、子类继承了其方法: 
2.1 equals 
类似于”==”,比较对象的引用 
ps:具体前面blog有详讲,这里就不赘述了 
2.2 toString(): 
返回一个对象的字符串表示形式(可改写) 
源码如下:
public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }2.3、getClass(): 
返回一个对象的实际类型 
ps: 
- 其返回的是具体实例化的类型 
- instanceof判断的是其是否实例化了,包括其父类的判断
2、包装类
1、概念: 
包装类是对基本类型的包装:所以也是8个 
2、列举表:
| 基本类型 | 包装类 | 
|---|---|
| byte | Byte | 
| short | Short | 
| int | Integer | 
| long | Long | 
| float | Float | 
| double | Double | 
| char | Character | 
| boolean | Boolean | 
3、包装类的转换: 
包装类、String、基本类型间两两转换 
具体可参考我前一篇关于String的blog,中有详解
3、内部类*
1、成员内部类 
1.1 访问权限: 
可以访问外部内的静态或非静态的属性和方法 
1.2 实例: 
先实例化外部类,再实例化内部类 
2、静态内部类 
1.1  访问权限: 
可以访问外部内的静态的属性和方法 
1.2实例: 
先实例化外部类,再调用静态类 
3、局部内部类 
1.1 访问权限: 
可以访问外部内的静态或非静态的属性和方法 
1.2 实例: 
在方法中实例化,接着实例化外部类,调用方法 
4、匿名内部类 
1.使用情况: 
1.1 只实例化一次的对象 
1.2 局部内部类要实现接口或继承某些父类
最后贴上练习代码君:
package com.jacob.javase;
/*
 * 内部类分类:
 * 1.成员内部类
 * 2.静态内部类
 * 3.局部内部类
 * 4.匿名内部类
 */
public class InnerClass {
    public static void main(String[] args) {
        // 成员内部类的实例
        // MemberInner.Inner2 mi=(new MemberInner()).new Inner2();
        // mi.doSomething();
        // MemberInner mi1=new MemberInner();
        // mi1.method();
        // 静态内部类的实例(可直接通过类调用)
        // StaticInner.Inner si=new StaticInner.Inner();
        // si.test();
        // 实例局部类
        // LocalInner li = new LocalInner();
        // li.doSomething();
        // 4.匿名内部类:使用条件:
        // 4.1 局部内部类可能就需要创建一个对象
        // 4.2 局部内部类需要实现外部接口或继承某些父类
        new InnerClass();
        new Test() {
            @Override
            public void m1() {
                // TODO Auto-generated method stub
                System.out.println("匿名类test");
            }
        }.m1();
    }
}
interface Test {
    void m1();
}
// 1.成员内部类:
class MemberInner {
    private int a = 4;
    // 访问权限:可访问外部类的的静态与非静态的属性和方法
    public class Inner2 {
        private int a = 5;
        public void doSomething() {
            System.out.println("Hello World!");
            System.out.println(this.a);// 5
            System.out.println(MemberInner.this.a);// 4
        }
    }
    public void method() {
        // 实例化成员内部类
        Inner2 inner = new Inner2();
        System.out.println(inner.a);
    }
}
// 2.静态内部类:
class StaticInner {
    private static int a = 4;
    // 访问权限:只能访问外部类的静态属性和方法
    public static class Inner {
        public void test() {
            System.out.println(a);
        }
    }
}
// 3.局部内部类
// 访问权限:可以访问外部内的静态或非静态属性和方法:
class LocalInner {
    public void doSomething() {
        int b = 1;
        final int a = 4;
        class Inner3 {
            int c = 1;
            public void test() {
                System.out.println(a + b);
            }
        }
        // 只能在方法块中实例
        Inner3 li1 = new Inner3();
        li1.test();
        System.out.println(li1.c);
    }
}
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号