一 接口中实现方法:
(1)用修饰符static修饰方法
定义:
public interface IMessage { static int add(int a,int b){ return a + b; } }
调用:
public static void main(String[] args) { int a = 3, b = 3; int add = IMessage.add(a, b); System.out.println(add); }
(2)用修饰符default 修饰方法
定义
public interface IMessage { default int add(int a,int b){ return a + b; } }
实现
public class IMessageImpl implements IMessage { }
调用:
public static void main(String[] args) { IMessage iMessage = new IMessageImpl(); int a = 1, b = 9; int c = iMessage.add(a, b); System.out.println(c); }
(二)lamde表达式
匿名函数
package com.java.demo; public class TestDemo { public interface IMessage { public void print(); } public static void main(String[] args) { fun(new IMessage() { @Override public void print() { System.out.println("Hello!"); } }); } public static void fun(IMessage msg) { msg.print(); } }
Lamde表达式主要用于解决匿名函数的繁琐
package com.java.demo; public class TestDemo { public interface IMessage { public void print(); } public static void main(String[] args) { fun(()->System.out.println("Hello!")); } public static void fun(IMessage msg) { msg.print(); } }
Lamda 表达式语法
(1)(参数)->单行语句
package com.java.demo; public class TestDemo { public interface IMessage { public void print(String arg); } public static void main(String[] args) { fun((arg)->System.out.println(arg)); } public static void fun(IMessage msg) { msg.print("Hello!"); } }
(2)(参数)->{代码块}
package com.java.demo; public class TestDemo { public interface IMessage { public void print(String arg); } public static void main(String[] args) { fun((arg)->{ arg = arg.toLowerCase(); System.out.println(arg); }); } public static void fun(IMessage msg) { msg.print("HELLO!"); } }
(3)(参数)->表达式
package com.java.demo; public class TestDemo { public interface IMessage { public int print(int x, int y); } public static void main(String[] args) { fun((x,y)-> x+y ); } public static void fun(IMessage msg) { System.out.println(msg.print(1,2)); } }
(三)方法的引用
(1)引用静态方法:类名称::static 方法名;
package com.java.demo; public class TestDemo { public interface IMessage<P,R> { public R header(P p); } public static void main(String[] args) { IMessage<Integer,String> msg = String::valueOf; String arg = msg.header(1000); System.out.println(arg); } }
(2)引用对象的方法::实例化对象::普通方法;
package com.java.demo; public class TestDemo { public interface IMessage<P> { public boolean header(P p); } public static void main(String[] args) { IMessage<String> msg ="wewe"::equals; boolean header = msg.header("wewe"); System.out.println(header); } }
(3)引用特定类型的方法:特定类::普通方法;
package com.java.demo; public class TestDemo { public interface IMessage<P> { public boolean header(P p,P r); } public static void main(String[] args) { IMessage<String> msg =String::equals; boolean header = msg.header("wewe","wewe"); System.out.println(header); } }
(4)引用构造方法:类名称::new;
package com.java.demo; interface IMessage<P>{ public P create(String name,int age); } class Student{ private String name; private int age; public Student (String name ,int age){ this.name=name; this.age = age ; } public String toString(){ return "姓名:"+ this.name + "年齡:"+this.age; } } public class TestDemo { public static void main(String[] args) { IMessage<Student> msg = Student::new; Student student = msg.create("張志東", 27); System.out.println( student.toString()); } }
相关推荐
1. **lambda表达式**:这是Java 8最显著的特征之一,它允许函数作为一等公民,即可以赋值给变量、作为参数传递和作为返回值。Lambda表达式使得编写简洁、易读的代码成为可能,特别是对于处理集合的操作。 2. **函数...
总的来说,"java8中文api"这个文档涵盖了Java 8的所有新特性和重要API,包括Lambda表达式、Stream API、函数式接口、日期和时间API、Optional类以及并发改进等。无论你是初学者还是有经验的开发者,这个文档都将是你...
1. **lambda表达式**:这是Java 8最显著的特征之一。Lambda表达式允许开发者以简洁的方式定义匿名函数,使得函数式编程在Java中变得更加便捷。例如,可以使用`()->System.out.println("Hello, World!")`来创建一个...
这是基于Java8的官方文档,使用Easy CHM制作成的CHM文档。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...
1. **Lambda表达式**:Java 8引入了函数式编程的概念,Lambda表达式是最显著的特征之一。它允许开发者以简洁的方式处理集合,简化多线程编程,并在需要时定义匿名函数。 2. **方法引用和构造器引用**:与Lambda...
在这个“java8 demo源代码”压缩包中,我们可以期待看到一系列演示了Java 8新特性的示例代码。以下是这些示例可能涵盖的一些关键知识点: 1. **lambda表达式**:Java 8引入了函数式编程的概念,其中lambda表达式是...
8. **Date/Time API改进**:JDK 8对日期和时间的处理进行了重大改进,引入了新的`java.time`包,替代了过时的`java.util.Date`和`java.util.Calendar`,使日期和时间操作更加直观和灵活。 9. **默认方法**:在接口...
《OnJava8-Examples-master》是一个关于Java 8编程实践的资源库,它包含了大量示例代码,旨在帮助开发者深入理解和应用Java 8的新特性。这个压缩包中的内容主要是为了展示如何在实际项目中有效利用Java 8的功能,...
Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的"形式和感觉",但它要比C++语言更易于使用,而且在编程时彻底采用了一种"以对象为导向...
JAVA8新特性总结及案例 JAVA8 中引入的 Lambda 表达式、方法引用和函数式接口是三个重要的新特性,它们之间有紧密的联系,都是为了简洁代码、提高编程效率和灵活性。 一、Lambda 表达式 Lambda 表达式,也称为...
在Java开发领域,Java8是一个重要的里程碑,引入了许多新的特性和功能,极大地提高了开发效率和代码的可读性。在这个“Java8应用封装,手写ORM,LOG,framework”的项目中,开发者显然专注于利用Java8的新特性来构建...
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向...
默认方法使接口有点像Traits(Scala中特征(trait)类似于Java中的Interface,但它可以包含实现代码,也就是目前Java8新增的功能),但与传统的接口又有些不一样,它允许在已有的接口中添加新方法,而同时又保持了与旧...
综上所述,《Beginning Java 8 Language Features》是学习Java 8新特性的理想教材,它不仅详细介绍了语言的基本特征,还深入讲解了如何在实际开发中应用这些特性来解决各种编程问题。读者通过阅读本书,不仅可以了解...
Lambda表达式是Java8最显著的特征之一,它允许我们以简洁的方式编写匿名函数。Lambda可以作为方法参数,或者存储在变量中。例如,我们可以用lambda来实现Comparator接口,进行列表排序: ```java List<String> list...
16. **面向对象的特征**:封装、继承、多态是面向对象的三大特征。 17. **多态的实现**:Java通过方法重写(Override)和向上转型(Upcasting)实现多态。 18. **抽象类与接口的区别**:抽象类可以包含实现方法,...
通过创建`Dataset`对象,我们可以操作特定类型的数据,如创建一个新的矢量数据集。 ### 2. 添加数据 添加数据涉及将地理对象(Geometry)添加到数据集中。首先,需要创建一个`Feature`对象,设置其几何形状...
### Java求矩阵的特征值和特征向量:AHP层次分析法计算权重 #### 一、引言 在计算机科学领域,特别是在数据处理与决策支持系统中,特征值与特征向量是线性代数中的核心概念之一。它们在解决各种问题时发挥着重要...
这个名为"java8视频高清.7z"的压缩包显然包含了关于Java 8的高清教学视频,旨在帮助新手快速掌握这个版本的新特性。以下是对这些关键知识点的详细解释: 1. **Lambda表达式**:Lambda表达式是Java 8最显著的特征之...