实例

  直接三角形,通过两边算第三边,目的是为了如何使用这几种方法引用。代码中多有些不合适,尽情原谅。

静态方法引用

   接口的参数列表与类中的具体实现方法的参数列表一样,返回值一致。

   调用

    

    //静态引用
    IStaticSide staticSide = Five::getStaticSize;
    staticSide.getStaticSize(3, 6);
    

  类中定义

  

    //静态引用
    public static double getStaticSize(double s,double s2)
    {
      return Math.sqrt(s*s+s2*s2);
    }

  定义接口

 

    interface IStaticSide{

         double getStaticSize(double s,double s2);
    }

实例引用

  接口的参数列表与类中的具体实现方法的参数列表一样,返回值一致。

  调用

  
  Five five = new Five(3,4);   //实例引用方法
  ILastSide side=five::getTheLastSide;
  System.out.println("实例引用,方法第三边的结果:"+side.getLastSide());
 

  类中定义

   // 类型引用
  public double getFiveLastSide(Five f) {
    return Math.sqrt(this.side1 * this.side1 + this.side1 * this.side1);
  }

  定义接口

  interface ILastSide {
    double getLastSide();
  }

类型引用

    类中定义的方法只有一个参数,就是对比的类,也就是定义接口中的第二个参数
           定义的接口必须是两个参数,第一个参数指的引用的类,第二个参数指的是对比的类
  调用
  //类型引用
  ILastFiveSide typeside = Five::getFiveLastSide;
  System.out.println("类型引用,第三边的结果:"+typeside.getLastSide(five, five));

  类中定义

   // 类型引用
  public double getFiveLastSide(Five f) {
    return Math.sqrt(this.side1 * this.side1 + this.side1 * this.side1);
  }

  接口定义

  interface ILastFiveSide {
    double getLastSide(Five f, Five f2);
  }

构造引用

  引用构造器,通过例子也就是引用后返回的是对象,然后通过对象再调用相应的方法执行。

  调用

   //构造器引用
  IGetInstance instace = Five::new;
  System.out.println("构造器引用,第三边的结果:"+instace.getInstance(1,2).getTheLastSide());

  类中定义

   // 构造器引用
  public Five getInstance(double s, double s2) {
    return new Five(s, s2);
  }

  接口定义

  // 接收引用后的结果接口
  interface IGetInstance {
    Five getInstance(double s, double s2);
  }

后话

  只是自己通过简单的例子总结,如有不对的地方希望大神门指点江山。自己之前都是从事.net开发,java方面的知识确实不足,希望多多谅解,不想坑队友。

java基础-四种方法引用的更多相关文章

  1. Java用四种方法实现阶乘n! (factorial)

    1. 引言 实现阶乘的方法很多,这边介绍四种方法,分别是递归,尾递归,循环和BigDecimal. 2. 代码 public class Test { public static void main( ...

  2. java 基础 四种权限修饰符

    /** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...

  3. Java基础:Java的四种引用

    在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚 ...

  4. 【转载】Java的四种引用

    在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要用到软引用和弱引 ...

  5. 转载:Java的四种引用方式

    原文:https://www.cnblogs.com/huajiezh/p/5835618.html Java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指 ...

  6. 运行jar应用程序引用其他jar包的四种方法

    转载地址:http://www.iteye.com/topic/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个ja ...

  7. Java中四种引用:强、软、弱、虚引用

    这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...

  8. Java的四种引用类型之弱引用

    先说结论: 首先,Java中有四种引用类型:强引用.软引用.弱引用.虚引用.-- 在 Java 1.2 中添加的,见 package java.lang.ref; . 其次,这几个概念是与垃圾回收有关 ...

  9. java中四种引用类型(对象的强、软、弱和虚引用)

    对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2 ...

随机推荐

  1. 基于AngularJS的过滤与排序【转载】

    程序设计分析 首先,如果要是先查询过滤,就要使用到AngularJS中的 过滤器filter 了. 直接在表达式的后面使用管道命令符 | ,按照下面的写法就可以达到一个过滤的效果: {{ person ...

  2. Java多线程中的单例模式

    一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { private static cla ...

  3. FrameBuffer系列 之 介绍

    1.     来由 FrameBuffer是出现在2.2.xx内核当中的一种驱动程序接口.Linux工作在保护模式下,所以用户态进程是无法象 DOS 那样使用显卡 BIOS里提供的中断调用来实现直接写 ...

  4. 蓝桥杯-有理数类-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  5. endsWith is not a function解决方案

    在写javascript脚本时,用某些方法,有时候会碰到"XXX is not a function"之类的报错. 出现这种情况,主要是因为某些方法在低版本浏览器上不支持.比如说& ...

  6. 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List

    最近我为我自己的应用开发框架Apworks设计了一套案例应用程序,并以Apache 2.0开源,开源地址是:https://github.com/daxnet/apworks-examples,目的是 ...

  7. kobo阅读器安装koreader

    动机 kobo阅读器是加拿大的电子阅读器品牌,与kindle类似.问题是这个阅读器在中国无法连接电子书商店,即使是用SS翻出去也不行.一气之下花了一个下午折腾,安装一个开源的阅读器. 安装 代码仓库在 ...

  8. WebSocket实战

    前言 互联网发展到现在,早已超越了原始的初衷,人类从来没有像现在这样依赖过他:也正是这种依赖,促进了互联网技术的飞速发展.而终端设备的创新与发展,更加速了互联网的进化: HTTP/1.1规范发布于19 ...

  9. Spring IOC的使用

    控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性.所谓依 ...

  10. 用 Vue 全家桶二次开发 V2EX 社区

    一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...