匿名内部类:

所谓匿名内部类,顾名思义指的就是定义在类内部的匿名类,现有的spring框架开发以及java图形界面都经常用到匿名内部类。

下面来看一个代码:

interface A{
public void fun() ;
}
class B implements A{
public void fun(){
System.out.println("Hello World!!!") ;
}
};
class X{
public void fun1(A a){
a.fun() ;
}
public void fun2(){
this.fun1(new B()) ;
}
};
public class NonameDemo01{
public static void main(String args[]){
new X().fun2() ;
}
};

如果这是实际开发,那么上面的代码存在什么问题?

在了解匿名类之前我们可能只能这样写来实现所需功能,但java语法允许通过设置匿名内部类来去除B类定义(因为B类只会使用一次,单独定义较为浪费)。

interface A{
public void fun() ;
}
class X{
public void fun1(A a){
a.fun() ;
}
public void fun2(){
this.fun1(new A(){
public void fun(){
System.out.println("Hello World!!!") ;
}
}) ;
}
};
public class NonameDemo02{
public static void main(String args[]){
new X().fun2() ;
}
};

包装类:

java遵从一切皆对象的原则,那么基本数据类型也应该可转为对象进行操作,这就是类的包装。

在jdk1.5之前,类的包装需要手工转换,

public class IntegerDemo01{
public static void main(String args[]){
int i = 10 ;
Integer i2 = new Integer(i) ; // 装箱操作
int j = i2.intValue() ; // 拆箱操作
System.out.println(j * j) ;
}
};

jdk1.5之后,可自动执行包装与拆装

public class IntegerDemo01{
public static void main(String args[]){
int i = 10 ;
Integer i2 = i ; // 装箱操作
int j = i2 ; // 拆箱操作
System.out.println(j * j) ;
}
};

三个常用Interger方法

public class IntegerSize {

	public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);//值为 2<sup>31</sup>-1 的常量
System.out.println(Integer.MIN_VALUE);//值为 -2<sup>31</sup> 的常量
System.out.println(Integer.SIZE);//数据类型位数
}
}

将字符串转换成int/float/double类型,借助parse(Int/Float/Double)

public class Integerint {

	public static void main(String[] args) {
String s="123";
int i = Integer.parseInt(s);
System.out.println(++i);
}
}

java学习之匿名内部类与包装类的更多相关文章

  1. Java学习笔记 05 数据包装类

    一.包装类 综述 >>java.lang包中的Integer类.Long类和Short类,分别将基本数据类型int.long和short封装成一个类.这些类都是Number的子类. Int ...

  2. JAVA学习笔记--匿名内部类

    匿名内部类,即没有名字的内部类. 我们在编写JAVA程序时,往往要创建很多类,类是可以被重复使用的.但有时,我们创建了一个类,却只需要使用该类一次,那么单独为其编写一个类就显得有些麻烦,这时可以使用匿 ...

  3. java学习之匿名内部类

    /*匿名内部类 * * 一般用于抽象类和接口 * 因为他们不能实例化对象所以可以通过匿名内部类来帮助他们实例化 * 下面demo是抽象类的例子 * * */ abstract class Cat{ a ...

  4. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  5. Java学习——包装类

    Java学习——包装类 摘要:本文主要介绍了Java中常用的包装类和基本类型之间的转换,包装类或基本类型和String之间的转换. 部分内容来自以下博客: https://www.cnblogs.co ...

  6. JAVA学习第二步,初级知识框架梳理

    回顾往期的学习,才发现已经学习了这么多知识点.这里复制了其他创作者的一些梳理结合自己的梳理.总结了自己在Java学习入门阶段的知识点.笔记自己了也写了详细的两本 第一章 Java面向对象 1-1包的定 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

随机推荐

  1. DataGridview 填写数字

    private DataGridViewTextBoxEditingControl CellEdit = null; // 声明 一个 CellEdit        private void dgv ...

  2. 10个你必须知道的jQueryMobile代码片段

    1.在列表项和按钮上禁用文本截断     如果你的列表项或者按钮上是一个很长的文本,它将会被jQuery Mobile自动截断,要禁用这个截断设置,需要在CSS选择器上添加属性"white- ...

  3. CmdParse

    Procedure URPOSE Uses Dos,Crt; Const VersionNum = 'V1.0 BETA'; ProgNameStr = 'NEWPROJ.EXE'; ProgName ...

  4. android 自定义AlertDialog

    xml: alter_dialog_two <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  5. 《windows核心编程系列》二谈谈ANSI和Unicode字符集 .

    http://blog.csdn.net/ithzhang/article/details/7916732转载请注明出处!! 第二章:字符和字符串处理 使用vc编程时项目-->属性-->常 ...

  6. Unity3d 打包时报错 CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.

    今天打包带有Android插件的unity3d 项目是,报错CommandInvokationFailure: Unable to convert classes into dex format. S ...

  7. Spring、Spring依赖注入与编码剖析Spring依赖注入的原理

    Spring依赖注入 新建PersonIDao 和PersonDao底实现Save方法: public interface PersonIDao { public void save(); } pub ...

  8. leftpad填充函数;

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 我终于解决UM编辑器了 泪......

    气死我了..... 好不容易测试好了....更显得我笨了..... 原来....什么都不用改   只改了2个小位置....真的是.....回首自己 不敢看 0.0 OK  记下步骤  以免以后忘记 将 ...

  10. 第三章SignalR在线聊天例子

    第三章SignalR在线聊天例子 本教程展示了如何使用SignalR2.0构建一个基于浏览器的聊天室程序.你将把SignalR库添加到一个空的Asp.Net Web应用程序中,创建用于发送消息到客户端 ...