Object类、包装类、内部类详解
2017-12-15 16:01
477 查看
Object类、包装类、内部类详解
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 |
包装类、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); } }
相关文章推荐
- Object类、包装类、内部类详解
- 面向对象高级——Object类、包装类以及匿名内部类
- Core Java第十章知识点总结——Object类 包装类 内部类
- 集合(一)之Object类和String类以及包装类详解
- Java重修之路(十)面向对象之多态详解,Object类,内部类,匿名内部类详解
- Core Java第十章知识点总结——Object类 包装类 内部类
- 内部类详解
- java提高篇(八)_详解内部类 转自 http://cmsblogs.com
- JAVA 十九 内部类,Object类,instanceof判断方式
- java提高篇(十)-----详解匿名内部类
- java中的内部类详解和应用
- Java 匿名内部类详解及实例代码
- Django模型层Meta内部类详解 2014
- 内部类详解
- java提高篇(九)-----详解匿名内部类
- java提高篇(七)-----详解内部类
- 4种内部类的详解
- java详解内部类
- Json系列之二 json to bean(JSONObject类详解)
- Java提高篇----详解内部类