实例

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

静态方法引用

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

   调用

    

    //静态引用
    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. .NET产品源码保护,.NET防止反编译,c#/vb.net 防反编译

    .NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管 ...

  2. ubuntu 下安装Angular2-cli脚手架

    一.首先需要安装node,npm. 请到nodejs官网进行下载并跟据提示进行安装 版本号中间偶数为稳定版本建议下载 https://nodejs.org/en/ node相关操作 https://n ...

  3. focus、blur事件的事件委托处理(兼容各个流浏览器)

    今天工作中遇到个问题,问题是这样的,一个form表单中有比较多的input标签,因为form中的input标签中的值都需要前端做客户端校验,由于本人比较懒而且特不喜欢用循环给 每个input元素添加b ...

  4. Postmark介绍

    一. 引言 Postmark是由著名的NAS提供商NetApp开发,用来测试其产品的后端存储性能. Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁.大量 ...

  5. Laravel 中使用 Redis 数据库

    一.前言 Redis 是一个开源高效的键值对存储系统,它通常用作为一个数据结构服务器来存储键值对,它可以支持字符串.散列.列表.集合.有序集合. 1. 安装 predis/predis 在 Larav ...

  6. [Monkey King]

    题目描述 在一个森林里住着N(N<=10000)只猴子.在一开始,他们是互不认识的.但是随着时间的推移,猴子们少不了争斗,但那只会发生在互不认识(认识具有传递性)的两只猴子之间.争斗时,两只猴子 ...

  7. TFS下载文件已损坏问题

    近日在把一个数千人使用的TFS环境进行机房迁移时,从现有的服务器集群中整体迁移到另外一个服务器集群中,经过周密的设计迁移方案,充分验证方案中的各个关键过程,最终在几乎对数千人用户完全透明,没有任何感知 ...

  8. HTML5工具做屏幕自适应的两种方法

    近一两年,HTML5在中国很火,也出了不少HTML5工具和模板.别的先不说,对于不同的H5工具,解决屏幕自适应问题的区别是什么? 简单来说,感应式设计是当用不同设备访问时,能够根据设备的宽度和高度对设 ...

  9. oracle job执行失败

    创建job任务:declare test_job number;begin dbms_job.submit(test_job, 'prc_job_test;', sysdate, 'sysdate+1 ...

  10. zoj3204 Connect them 最小生成树

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3367 题目就是简单的最小生成树的模板的应用,不过最小生成树可能不唯一 ...