1. package com.yang.Test.StaticMethodReference;
  2. /**
  3. * 通过类型引用静态成员方法
  4. * 类已经存在,静态成员方法也已经存在
  5. * 就可以通过类名直接引用静态成员方法
  6. */
  7. public class StaticMethodReferenceStudy {
  8. //定义一个方法,方法的参数传递要绝对值的整数,和函数式接口Calcable
  9. public static int method(int number,Calcable c){
  10. return c.calsAbs(number);
  11. }
  12. public static void main(String[] args) {
  13. //调用method方法,传递计算绝对值的整数和Lambda表达式
  14. int number1 = method(-10, number -> {
  15. //对参数进行绝对值得计算并返回结果
  16. return Math.abs(number);
  17. });
  18. System.out.println(number1);
  19. /**
  20. * 使用方法引用优化Lambda表达式
  21. * Math类是存在得
  22. * abs计算绝对值得静态方法也是存在得
  23. * 所以我们可以直接通过类名引用静态方法得
  24. */
  25. int number2 = method(-10,Math::abs);
  26. System.out.println(number2);
  27. }
  28. }
  1. package com.yang.Test.StaticMethodReference;
  2. @FunctionalInterface
  3. public interface Calcable {
  4. //定义一个抽象方法,传递一个整数,对整数进行绝对值计算并返回
  5. int calsAbs(int number);
  6. }

通过super引用父类的成员方法

  1. package com.yang.Test.StaticMethodReference;
  2. import com.yang.Test.SuperMethodReference.Greetable;
  3. //子类
  4. public class Man extends Human{
  5. @Override
  6. public void sayHello() {
  7. System.out.println("Hello 我是Man!");
  8. }
  9. //定义一个i额方法参数传递Greetable接口
  10. public void methid(Greetable g){
  11. g.greet();
  12. }
  13. public void show() {
  14. // //调用method方法,方法得参数Greetable是一个函数式接口所以我们可以传递Lambda
  15. // methid(() -> {
  16. // Human human = new Human();
  17. // human.sayHello();
  18. // });
  19. //因为有字符类关系,所以存在一个关键字super代表父类所以我们可以直接使用super调用父类得成员方法
  20. methid(() -> super.sayHello());
  21. }
  22. public static void main(String[] args) {
  23. Man man = new Man();
  24. man.show();
  25. }
  26. }
  27. package com.yang.Test.StaticMethodReference;
  28. /**
  29. * 定义父类
  30. */
  31. public class Human {
  32. public void sayHello() {
  33. System.out.println("Hello 我是Human!");
  34. }
  35. }
  36. package com.yang.Test.StaticMethodReference;
  37. @FunctionalInterface
  38. public interface Calcable {
  39. //定义一个抽象方法,传递一个整数,对整数进行绝对值计算并返回
  40. int calsAbs(int number);
  41. }

通过类名引用静态成员方法和通过super引用父类的成员方法的更多相关文章

  1. 继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

    继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的 ...

  2. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

  3. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!

    擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...

  4. iOS静态库的制作与引用

    [iOS静态库的制作与引用] 1.Configuring Exported Headers To configure which headers are exported to clients, se ...

  5. eclipse 引用静态库设置选项

    环境说明: 静态库文件项目:engine C++ 项目:server 在server项目中引用静态库的库文件libEngine.a 需要设置如图选项,才能引用静态库项目里的文件 主要设置: 1.inc ...

  6. 方法引用_通过this引用本类的成员方法和方法引用_类的构造器(构造方法)引用和数组的构造器引用

    package com.yang.Test.ThisMethodReference; /** * 通过this引用本类的成员方法 */ public class Husband { //定义一个买房子 ...

  7. python使用super()调用父类的方法

    如果要在子类中引用父类的方法,但是又需要添加一些子类所特有的内容,可通过类名.方法()和super()来调用父类的方法,再个性化子类的对应函数. 直接使用类名.方法()来调用时,还是需要传入self为 ...

  8. Lambda03 方法引用、类型判断、变量引用

    1 方法引用 1.1 方法引用的好处 方法引用结合 Lambda 可以引用已存在的方法,省略很多编码,而且可读性更强,它可以自动装配参数与返回值. 在编写lambda表达式的时候可以通过方法引用的方式 ...

  9. 强引用(StrongReference)、弱引用(WeakReference)、软引用(SoftReference)、虚引用(PhantomReference)

    1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.如下: Object o=new Object(); // 强引用 当内存空间 ...

随机推荐

  1. 1┃音视频直播系统之浏览器中通过WebRTC访问摄像头

    一.WebRTC的由来 对于前端开发小伙伴而言,如果用 JavaScript 做音视频处理 在以前是不可想象的,因为首先就要考虑浏览器的性能是否跟得上音视频的采集 但是 Google 作为国际顶尖科技 ...

  2. 在博客文章中使用mermaid 定义流程图,序列图,甘特图

    概述 Mermaid(美人鱼)是一套markdown语法规范,用来在markdown文档中定义图形,包括流程图.序列图.甘特图等等. 它的官方网站是 https://mermaid-js.github ...

  3. Jmeter接口测试流程详解(中科软测认证中心)

    1.jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以: Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同 ...

  4. brew常用命令

    Homebrew 常用命令 brew -help # 查看帮助命令 brew config # 查看配置信息 brew list # 查看已安装软件包列表 brew cleanup # 清理所有包的旧 ...

  5. 167. Two Sum II - Input array is sorted - LeetCode

    Question 167. Two Sum II - Input array is sorted Solution 题目大意:和Two Sum一样,这里给出的数组是有序的 思路:target - nu ...

  6. 123_Power Pivot&Power BI DAX函数说明速查

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 说明 1.基于DAX Studio 2.9.2版本导出整理: 2.DAX Studio网站,及时更新下载,DAX学习利器: ...

  7. 学习Java的第十五天——数学运算

    学习内容:数学运算 1.三角函数运算 代码实现: public class 三角函数运算 { public static void main(String[] args) { // TODO 自动生成 ...

  8. 总结 到 GDOI 2021 这个阶段

    截止本蒟蒻第一次体验省选(虽然是普及组) 本蒟蒻已经有了许多收获,却也有很多不足 优点 对一些学过的知识掌握还行 没了 缺点 会却做不出来 有一些题不难,却想不到正解 如 Day2 T1 ,就是移一下 ...

  9. Jenkins之配置GitHub-Webhook

    前提条件1: 运行Jenkins的机器需要安装git,并且git.exe文件在系统的环境变量里面,或者手动在 Manage Jenkins -> Global Tool Configuratio ...

  10. JavaScript与Node.js一起打造一款聊天App

    聊天是我们人与人交流最直接的方式,互联网的加入使我们交流更加便捷.我们手机上的微信.QQ是我们手机必不可少的应用软件.那么,我们是否可以做一款聊天应用呢? 之前我自己闲着没事,研究过一些技术,做了一款 ...