Object类、包装类、内部类详解

原创 2016年08月29日 10:10:45

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);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

java学习之匿名内部类与包装类

匿名内部类: 所谓匿名内部类,顾名思义指的就是定义在类内部的匿名类,现有的spring框架开发以及java图形界面都经常用到匿名内部类。 下面来看一个代码: interface A{ public ...
  • u014492609
  • u014492609
  • 2015年03月15日 16:49
  • 714

JAVA学习笔记(十七)- Object类和包装类

Object类/* * Object类是所有类的根,默认自定义类都继承自此类 */ public class Test08 { public static void main(String...
  • wangzi11322
  • wangzi11322
  • 2015年03月25日 10:56
  • 1322

java入门学习(7)—包装类,object类

一、包装类:在java语言里,一切的东西都是对象,一切的类都是object的子类,但是总有那么那么几个是特殊的,其中基本数据类型是由C语言引用过来,并不是我们自己所说的对象,所以提供一个包装类,对其进...
  • newly123
  • newly123
  • 2016年01月18日 10:03
  • 455

Object类、包装类、内部类详解

Object类、包装类、内部类详解 1、Object类 1、概念:  1.1 所有类在创建时都默认继承了java.lang.Object  1.2 所有类对象都可以声明为类对象...
  • ytaon
  • ytaon
  • 2017年12月15日 16:01
  • 17

JAVA之包装类Double详解

1.构造方法: ①new  Double(double x): Double a = new Double(23.5); new  Double(String str): Double a =...
  • m631521383
  • m631521383
  • 2013年08月08日 15:17
  • 3455

关于Java包装类的理解

在学习了一段时间的Android之后,深知在Java基础体系中部分知识的缺失而使我在学习过程中碰到了许多不能理解的概念,就在最近,我打算重新学习Java语言的一些基础,就我现在大概几个星期系统的学习,...
  • qq_37545133
  • qq_37545133
  • 2017年07月14日 16:03
  • 162

【系列】重新认识Java——基本类型和包装类

Java一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。类型限制了变量可以hold什么样的值,表达式...
  • xialei199023
  • xialei199023
  • 2017年03月18日 10:22
  • 717

JAVA之包装类Byte详解

1.构造方法: ①Byte(byte value):以byte变量作为参数,创建Byte对象。 byte x = 23; Byte b = new Byte(x); ②Byte(String ...
  • m631521383
  • m631521383
  • 2013年08月08日 09:59
  • 2298

JAVA常用类之包装类

JAVA语言包装类把基本数据类型转换为对象。每个JAVA基本类型在java.lang包中都有一个相应的包装类。 基本类型 包装类 boolean Boolean byte Byt...
  • jianggujin
  • jianggujin
  • 2015年12月27日 12:44
  • 3291

Java 八大基本数据类型以及包装类的详解

一、java中八种基本数据类型对应的包装类型:   原始类型 包装类 原始类型所占的字节数    short    Short       2个字节                        ...
  • qq_33642117
  • qq_33642117
  • 2016年07月21日 22:54
  • 2183
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Object类、包装类、内部类详解
举报原因:
原因补充:

(最多只允许输入30个字)