Object类、包装类、内部类详解
来源:互联网 发布:js设置div文本内容 编辑:程序博客网 时间:2024/05/16 08:04
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、列举表:
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); }}
1 0
- Object类、包装类、内部类详解
- Object类、包装类、内部类详解
- 内部类和包装类
- Core Java第十章知识点总结——Object类 包装类 内部类
- 面向对象(高级篇之Object类与包装类与匿名内部类)
- 12-20java面向对象之Object类&包装类&匿名内部类
- 面向对象高级——Object类、包装类以及匿名内部类
- Core Java第十章知识点总结——Object类 包装类 内部类
- 继承,接口,内部类,包装类
- 包装类及匿名内部类
- 包装类和内部类--简单讲解
- 内部类,object(超类
- Java重修之路(十)面向对象之多态详解,Object类,内部类,匿名内部类详解
- Java面向对象 Object类 内部类
- Java基础---Object类、内部类
- 黑马程序员--内部类、Object类
- 内部类 Object类 final关键字 多态
- 黑马程序员_内部类_包装类(基本数据类型)
- CNTK学习笔记 -- Computation Network part4 -- Recurrent Connection
- MySQL性能优化二之SQL的优化
- 常用微信集成(第三方sdk集成套路)-- 微信登录
- UE4 HTC Menu Map
- SuperMap iServer使用数据服务查询并进行动态投影
- Object类、包装类、内部类详解
- Longest Common Subsequence 最长公共子序列
- rplidar进行hector-slam
- queue.h的链表使用
- Nougat多窗口支持
- Web服务器的工作原理
- 对于某时区的mock的例子
- Scala Hello World
- java和c、c++中数组的区别