实例

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

静态方法引用

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

   调用

    

    //静态引用
    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. java映射(map用法)

    主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...

  2. java获得路径的多种方式

    本文讲解java语言中获得运行时路径的多种方式,包括java项目.java web项目.jar.weblogic等多种场景. 一.this.getClass().getClassLoader().ge ...

  3. JSON 解析工具的封装(Java)

    JSON 解析工具的封装(Java) 一直想有一个属于自己的JSON工具,今天终于弄好了..... 1.添加pom依赖包 <!--json解析--> <dependency> ...

  4. (函数封装)获取class名称

    使用原生JavaScript,获取类操作符时:即使使用getElementByClassName,在Firefox和IE9以下是不兼容的.Firefox下是可以用它获取的到元素而IE不行,一般框架都会 ...

  5. bzoj1898 [Zjoi2005]沼泽鳄鱼

    Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几 ...

  6. 前端模块化——seaJS

    1.seaJS手记 一:Bower获取 要安装bower Npm install -g bower Bower install seajs 二:Use方法是整个项目的入口方法,通常一个项目中只调用一次 ...

  7. 产品经理学Python:for循环、while循环

    Python中有两种循环,分别为:for循环和while循环. 1. for循环 for循环可以用来遍历某一对象(遍历:通俗点说,就是把这个循环中的第一个元素到最后一个元素依次访问一次).for循环的 ...

  8. javascript函数作用域及this指向详解

    一.先说一个简单的概念--变量提升: 通过function+函数名的方式,声明的函数,可以在代码中的任何位置调用: 通过var定义变量的方式,声明的函数,则必须在声明之后进行调用,原因就是在变量定义之 ...

  9. AutoFac学习摘要

    依赖注入(控制反转)常见的依赖注入工具:AutoFac,Spring.Net,Unity等依赖注入的方式:1.通过构造函数进行注入2.通过属性进行注入 注意:在项目中AutoFac的注入有两次,第一次 ...

  10. 思考一个关于Lambda表达式做为linq条件的问题

    有一个集合如下 List<User> users = new List<User> { new User{Name = "1",Aget = 12}, ne ...