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);
}
}

Object类、包装类、内部类详解的更多相关文章

  1. Object类中方法详解

    目录 概述 hashCode方法 getClass方法 toString方法 equals方法 clone方法 finalize方法 概述 Object 是类层次结构的根类.每个类都使用 Object ...

  2. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  3. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  4. 【转】Java内部类详解

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...

  5. Java内部类详解 2

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  6. String类的构造方法详解

    package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...

  7. Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  8. JAVA基础——内部类详解

    JAVA内部类详解 在我的另一篇java三大特性的封装中讲到java内部类的简单概要,这里将详细深入了解java内部类的使用和应用. 我们知道内部类可分为以下几种: 成员内部类 静态内部类 方法内部类 ...

  9. Java内部类详解(一)

    (转自:http://blog.csdn.net/wangpeng047/article/details/12344593) 很多人对于Java内部类(Inner Class)都十分陌生,甚至听都没听 ...

  10. 【Java_基础】Java内部类详解

    1.四种内部类 java中的四种内部类:成员内部类.静态内部类.局部内部类和匿名内部类.其中匿名内部类用到的最多. 1.1.成员内部类 若一个类定义在另一个类的内部作为实例成员,我们把这个作为实例成员 ...

随机推荐

  1. ARM安装ROS- indigo

    Ubuntu ARM install of ROS Indigo 溪西创客小屋 There are currently builds of ROS for Ubuntu Trusty armhf. T ...

  2. cmd命令行中的errorlevel和延迟赋值

    最近用到了命令行,一点心得: 1.errorlevel返回的确实是上一条命令的返回值,但不同命令的表现完全不同.比如: dir echo %errorlevel% //显示0 dir aldkalf ...

  3. 'NSInteger' (aka 'long') to 'int32

    怎么去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32 ...

  4. AngularJS结构简介

    AngularJS是MVC架构,M是C里面的属性-值,C是js的class,V是DOM 各个关键特性的结构如下图所示: http://my.oschina.net/tommyfok/blog/2970 ...

  5. Eclipse版本及其代号

    1.维基百科介绍 http://zh.wikipedia.org/wiki/Eclipse 2.版本及其代号

  6. java基础之 创建对象的几种方式

    有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor ...

  7. [转]建立swap分区

    1,fdisk 时设置id号82(t选项中L可查) 2,mkswap  /dev/sdXx 3,swapon /devsdXx 4,cat /proc/swap or swapon -s 就可以看到了 ...

  8. C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)

    强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...

  9. IOS开发中--点击imageView上的Button没有任何反应

    点击imageView上的Button没有任何反应:    解决方法:设置图片的userInteractionEnabled为YES,使该imageView可以与用户进行交互

  10. 移动设备和SharePoint 2013 - 第5部分:自定义应用

    博客地址:http://blog.csdn.net/foxdave 原文地址 在该系列文章中,作者展示了SharePoint 2013最显著的新功能概观--对移动设备的支持. 该系列文章: 移动设备和 ...