精华内容
下载资源
问答
  • 1. 匿名内部类其实就是内部类的简写格式 2,定义匿名内部类的前提:  内部类必须是继承一个类或者实现接口 原始写法 package test; abstract class AbsDemo { abstract void show(); } class Outer { ...

    1. 匿名内部类其实就是内部类的简写格式

    2,定义匿名内部类的前提:

         内部类必须是继承一个类或者实现接口


    原始写法

    package test;
    
    abstract class AbsDemo {
    	abstract void show();
    }
    
    class Outer {
    	private int x = 1;
    	public void setX(int x) {
    		this.x = x;
    	}
    	public void function() {
    		new Inner().show();
    	}
    	class Inner extends AbsDemo {
    		void show() {
    			if(x < 0 ) x = -x;
    			System.out.println("abs(x) = " + x);
    		}
    	}
    }
    
    public class InnerClassDemo {
    	public static void main(String[] args) {
    		Outer a = new Outer();
    		a.setX(-10);
    		a.function();
    		
    	}
    }
    //abs(x) = 10
    


    化简写法

    package test;
    
    abstract class AbsDemo {
    	abstract void show();
    }
    
    class Outer {
    	private int x = 1;
    	public void setX(int x) {
    		this.x = x;
    	}
    	public void function() {
    		new AbsDemo() {
    			void show() {
    				if(x < 0 ) x = -x;
    				System.out.println("abs(x) = " + x);
    			}
    		}.show();
    	}
    }
    
    public class InnerClassDemo {
    	public static void main(String[] args) {
    		Outer a = new Outer();
    		a.setX(-10);
    		a.function();
    		
    	}
    }
    //abs(x) = 10
    


    展开全文
  • 一、匿名对象的特点 点击此处返回总目录 二、匿名对象的使用 一、匿名对象的特点 创建一个普通对象: ...

    一、匿名对象的特点                                                                                                           点击此处返回总目录

    二、匿名对象的使用

     

     

     

     

    一、匿名对象的特点

    创建一个普通对象:

    Person p = new Person();

     

    创建一个匿名对象:

    new Person();                     //这种对象只能使用一次,不能使用第二次。

     

    二、匿名对象的使用 

    1.匿名对象,没有引用对象,只能使用一次。如果一个事只做一次,可以使用匿名对象。[例1]

    2.匿名对象可以当作参数传递。[例2]

    3.匿名对象可以当作方法的返回值。[例3]

     

    例1:

    //Person.java

    package cn.itcast.demo01;

     

    public class Person{

          public void eat(){

                System.out.println("eating...");

          }

    }

     

    //Test.java

    package cn.itcast.demo01;

     

    public class Test{

          public static void main(String[] args){

                new Person().eat();                        //eating...  匿名对象。     

          }

    }

     

    例2:

    //Person.java

    package cn.itcast.demo01;

     

    public class Person{

          public void eat(){

                System.out.println("eating...");

          }

    }

     

    //Test.java

    package cn.itcast.demo01;

     

    public class Test{

          public static void main(String[] args){

                fun(new Person());                        //匿名对象当作参数传递。相当于:Person p = new Person(); fun(p); 这两句。

          }

     

          public static void fun(Person p){

               p.eat();

          }

    }

     

     

    例3:

    //Person.java

    package cn.itcast.demo01;

     

    public class Person{

          public void eat(){

                System.out.println("eating...");

          }

    }

     

    //Test.java

    package cn.itcast.demo01;

     

    public class Test{

          public static void main(String[] args){

                Person p = fun();                          //匿名对象当作参数传递。相当于:Person p = new Person();  这一句。

                p.eat(); 

         }

     

          public static Person fun(){

               return new Person();                      //匿名对象当作方法的返回值。相当于:Person p = new Person(); return p;这两句。

          }

    }

     

     


     

     

     

    展开全文
  • package test; interface Inter { void show(); } class Outer { static class Inner implements Inter { public void show() { System.out.println("hello"); } } public static Inner function() {

    package test;
    
    interface Inter {
    	void show();
    }
    
    class Outer {
    	static class Inner implements Inter {
    		public void show() {
    			System.out.println("hello");
    		}
    	}
    	public static Inner function() {
    		return new Inner();
    	}
    }
    
    public class InnerClassDemo {
    	public static void main(String[] args) {
    		Outer.function().show();
    		
    	}
    }

    化简代码

    package test;
    
    interface Inter {
    	void show();
    }
    
    class Outer {
    
    	public static Inter function() {
    		return new Inter() {
    			public void show() {
    				System.out.println("hello");
    			}
    		};
    	}
    }
    
    public class InnerClassDemo {
    	public static void main(String[] args) {
    		Outer.function().show();
    		
    	}
    }


    展开全文
  • 20180410 java java面向对象-匿名内部类分析匿名内部类的定义:就是没有名称的局部内部类,适用于只使用一次的类。在开发中经常有这样的类,只需要定义一次,使用一次,就可以丢弃了。此时就不应该把这种类定义在...

    20180410 java java面向对象-匿名内部类分析



    匿名内部类的定义:就是没有名称的局部内部类,适用于只使用一次的类。


    在开发中经常有这样的类,只需要定义一次,使用一次,就可以丢弃了。此时就不应该把这种类定义在文件中。再javaSE的事件中 或在安卓的事件处理中 这种类用的较多。
    eg:不同的按钮 点击之后会有不同的响应操作,事件响应的代码 就不需要放在文件中定义。这样 就首选 匿名内部类。


    匿名内部类:用的时候就定义它,用完就不要了。




    匿名内部类特点:


    特点1:匿名内部类本身没有构造器,但是会调用父类的构造器。




    特点2:匿名内部类尽管没有构造器,但是可以在匿名内部类中提供一段实例初始化代码块,java虚拟机(JVM)在调用父类构造器后,会执行该代码块。
    语法格式:
    new 父类构造器(实参列表) 或 接口()
    {
      //匿名内部类的类体部分
    }






    eg:


    //指定USB规范
    interface IUSB
    {
      void swapData();
    }


    //USB版本鼠标
    class Mouse implements IUSB
    {
      public void swapData()
      {
        System.out.println("鼠标...");
      }
    }


    //主板(鼠标需要插到主板上工作)
    class MotherBoard
    {
      private static IUSB[] usbs = new IUSB[6];
      private static int index = 0;//表示插入到第几个位置


      //把设备插入到主板中的功能,接受IUSB类型的对象
      public static void pluginIn(IUSB usb)
      {
        if(index == usbs.length)
        {
          System.out.println("USB插槽已经满了");
        }


        usbs[index] = usb;
        index++;
      }


      //取出主板中的每一个USB设备,并工作
      public static void doWork()
      {
        for(IUSB usb:usbs)
        {
          if(usb != null)
          {
            usb.swapData();
          }
        }
      }
    }


    //实例:使用USB设备来工作
    class USBDemo
    {
      public static void main()
      {
        //创建鼠标对象
        MotherBoard.pluginIn(new Mouse());
        //安装打印机
        MotherBoard.pluginIn(new Print());


        //安装USB键盘(只安装一次)
        //创建一个IUSB的匿名实现类对象
        MotherBoard.pluginIn(new IUSB()
          {
            //匿名内部实体
            public void swapData()
            {
              System.out.println(键盘...);
            }
          }
        );
        


        MotherBoard.doWork();
      } 
    }




    特点3:
    //创建一个






    展开全文
  • 一、匿名对象1. 创建的对象,没有显示的赋给一个变量名,即为匿名对象。2. 匿名对象只能调用一次二、匿名对象使用class Phone {private int price;public void sendMail() {System.out.println("send your mail~");}...
  • Java面向对象-匿名内部类 内部类前面我们讲过了 就是类的内部再定义类; 匿名内部类 这里指的是实例化内部对象 就是没有名字的内部类; 作用:假如某个类只使用一次,则可以使用匿名内部类; 我们...
  • java面向对象2-匿名对象,仅供自己学习,希望大家多多指正。
  • 1.匿名对象定义及&amp;使用 匿名对象即无名对象,直接使用new关键字来创建对象 2.final关键字 final: 修饰符,可以用于修饰类、成员方法和成员变量  final所修饰的类:不能被继承,不能有子类  final所修饰...
  • 1、匿名对象:  没有名字的实体,没有引用类型变量指向的对象称作为匿名对象。 2、匿名对象的应用场景  1: 当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。  为什么只对方法,而不调用属性...
  • 2.面向对象的三大特征:封装性、继承性、多态性 3.其它关键字:this\super\static\final\abstract\interface\package\import 类:一类事物的抽象 对象:类的实例 设计类的成员:属性=成员变量=field=域、字段和方法=...
  • 匿名内部类,指的是实例化内部对象 ,就是没有名字的内部类; 作用:假如某个类只使用一次,则可以使用匿名内部类;   先定义一个接口A; package m12d27; public interface A { public void say(); } ...
  • #JAVA#面向对象匿名对象) package 匿名对象; /* 匿名对象:就是没有名字的对象 匿名对象的应用场景: A:调用方法,仅仅只调用一次的时候 注意:调用多次的时候不合适 匿名对象调用完毕就被回收 B:匿名对象...
  • import java.awt.Button; import java.awt.event.ActionEvent; import java.awt.event.... * 匿名内部类:接口是不能被实例化的,但是可以在new接口的同时将接口中的方法实现 * 语法: * button.addActionLi...
  • /**知识点: 匿名内部类题目: 摩托车上装有警报器,当有人碰到摩托车时, 警报器发出报警响声思路:1. 抽象出类:1.1 摩托车(Moto),报警器(Alarm), 人(Person)2. 找出类的关系:2.1 摩托车上装有报警器 Alarm -> Moto(1...
  • 1,当对对象的方法只调用一次时,可以用匿名对象来完成,这样比较简化 2, public class Package { int num =1; String color= "red"; public void running(){ System.out.println(num +"is"+color); } ...
  • Java中,String也是一个类,我们用String这个类来说明问题; new 运算符 public class HelloWorld{ public static void main(String[] args) { String a = "Jack"; String b = new String("Jack"); String c...
  • /** 知识点: 匿名内部类 题目: 摩托车上装有警报器,当有人碰到摩托车时, 警报器发出报警响声 思路: 1. 抽象出类: 1.1 摩托车(Moto),报警器(Alarm), 人(Person) ...
  • /* 匿名内部类: 1,匿名内部类其实就是内部类的简写...4,其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,可以理解为带内容的对象 5,匿名内部类中定义的方法最好不要超过3个。 */ abstract c

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,854
精华内容 741
关键字:

java面向对象匿名对象

java 订阅