当前位置: 首页 > news >正文

浙江建设监理协会官方网站软件工程师前景及待遇

浙江建设监理协会官方网站,软件工程师前景及待遇,贵阳58同城做网站公司有哪些,哪里有专业的培训机构个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中#xff0c;接口新增了几个重要的特性和方法#xff0c;其中最显著的是默认方法#xff08;Default Methods#xff09;和静态方法#xff08;Static Met… 个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中接口新增了几个重要的特性和方法其中最显著的是默认方法Default Methods和静态方法Static Methods。这些特性使得接口在Java编程语言中变得更加灵活和功能强大。 默认方法Default Methods 默认方法允许在接口中定义具体的方法实现而不再是纯粹的抽象方法集合。主要特点包括 实现方法接口可以包含带有默认实现的方法体兼容性默认方法的引入不会破坏现有的接口实现因为现有实现不需要强制重写新增的默认方法。多继承冲突解决如果一个类实现了多个接口并且这些接口具有相同的默认方法编译器会要求显式重写冲突的方法以明确指定使用哪个接口的方法 注意事项 1. 默认方法不是抽象方法所以不强制重写但是重写时别忘了去掉default关键字。 示例 InterA接口 package com.von.day15b;public interface InterA {public default void showA(){System.out.println(showA);} }InterImpl类 package com.von.day15b;public class InterImpl implements InterA{Overridepublic void showA() {System.out.println(重写showA);} }结果展示  2. 定义默认方法时default不能省略。 3. 如果实现多个接口并且多个接口中有相同的名字子类就必须对该方法重写。  示例  InterA package com.von.day15b;public interface InterA {public default void showA(){System.out.println(A接口中的showA);} }InterB package com.von.day15b;public interface InterB {public default void showA(){System.out.println(B接口中的showA);}public default void showB(){System.out.println(showB);} }InterImpl package com.von.day15b;public class InterImpl implements InterA,InterB{}结果展示 静态方法Static Methods 接口中还可以定义静态方法这些方法可以直接通过接口名调用不需要实现类的实例。 接口中其他新增方法 除了默认方法和静态方法JDK 8中还新增了一些其他方法以增强接口的功能 函数式接口Functional Interface引入了 FunctionalInterface 注解用于标识函数式接口即只包含一个抽象方法的接口。 接口中的方法可以有方法体除了默认方法和静态方法外还可以在接口中直接定义方法体的普通方法。 接口中方法的可访问性接口中的方法可以是 public 或 default 访问级别不允许使用 private 或 protected 访问级别。 示例 FunctionalInterface interface MathOperation {int operate(int a, int b);default void log() {System.out.println(MathOperation interface);}static void info() {System.out.println(Static method in MathOperation interface);} }public class Main {public static void main(String[] args) {MathOperation addition (a, b) - a b;MathOperation subtraction (a, b) - a - b;System.out.println(addition.operate(10, 5)); // 输出 15System.out.println(subtraction.operate(10, 5)); // 输出 5addition.log(); // 输出 MathOperation interfaceMathOperation.info(); // 输出 Static method in MathOperation interface} }在这个示例中MathOperation 接口定义了一个抽象方法 operate一个默认方法 log和一个静态方法 info。Main 类实现了函数式接口并展示了如何使用接口的不同方法。  二、JDK9接口中新增的方法 JDK 9 在接口方面的改进相对于 JDK 8 并不多但是在整体 Java 平台和语言的功能上有一些显著的变化和新增特性。 私有方法Private Methods JDK 9 允许接口中定义私有方法这些方法只能在接口内部使用对实现类和其他类不可见。这使得接口能够更好地组织和重用代码逻辑。 interface MyInterface {default void publicMethod() {// 可调用私有方法privateMethod();}private void privateMethod() {// 接口内部私有方法的实现} }接口中的静态私有方法Static Private Methods 除了实例私有方法JDK 9 还引入了接口中的静态私有方法这些方法可以在接口的静态方法和默认方法中重复使用。 interface MyInterface {static void staticMethod() {// 可调用静态私有方法staticPrivateMethod();}private static void staticPrivateMethod() {// 接口内部静态私有方法的实现} }兼容性注解Deprecated, DeprecatedSince JDK 9 引入了两个新的注解 Deprecated 和 DeprecatedSince用于指定一个方法或接口已被弃用以及自从哪个版本开始弃用。 Deprecated(since9.0) interface MyDeprecatedInterface {Deprecated(since9.0)void deprecatedMethod(); }三、接口的应用 接口在Java中是一种非常重要的概念它提供了一种定义方法签名而不实现方法体的方式这使得接口在Java编程中具有广泛的应用场景和优势。 实现多态 接口允许类在不同的上下文中具有不同的行为。通过实现相同的接口不同的类可以按照自己的方式实现接口中的方法从而实现多态性增加代码的灵活性和可扩展性。 interface Animal {void makeSound(); }class Dog implements Animal {public void makeSound() {System.out.println(Woof);} }class Cat implements Animal {public void makeSound() {System.out.println(Meow);} }实现服务提供者接口 接口可以用于定义服务的契约不同的实现类可以提供不同的服务实现。这种模式在插件化和模块化系统中特别有用。 interface DatabaseConnector {void connect(); }class MySQLConnector implements DatabaseConnector {public void connect() {System.out.println(Connecting to MySQL database...);} }class PostgreSQLConnector implements DatabaseConnector {public void connect() {System.out.println(Connecting to PostgreSQL database...);} }解耦合 接口有助于解耦合即减少代码间的依赖性。程序员可以编写针对接口的代码而不是具体的实现类从而使得代码更容易维护和扩展。 interface Logger {void log(String message); }class FileLogger implements Logger {public void log(String message) {// Log message to file} }class ConsoleLogger implements Logger {public void log(String message) {// Log message to console} }实现回调机制 接口可以用于实现回调机制即某个对象在特定事件发生时调用另一个对象的方法。这在事件驱动编程和异步处理中非常常见。 interface Callback {void onComplete(String result); }class Task {void execute(Callback callback) {// Perform some task and invoke callbackcallback.onComplete(Task completed successfully);} }函数式接口和Lambda表达式 Java 8 引入了函数式接口的概念即只包含一个抽象方法的接口。这种接口可以用Lambda表达式来实现提供了更加简洁和灵活的函数式编程方式。  FunctionalInterface interface MyFunction {void perform(); }public class Main {public static void main(String[] args) {MyFunction func () - System.out.println(Performing function);func.perform();} }四、适配器设计模式 适配器模式Adapter Pattern是一种结构型设计模式它允许接口不兼容的对象可以相互合作。适配器模式通常用于旧接口与新系统之间的适配或者不同接口之间的适配。 结构和角色 适配器模式涉及以下几个角色 目标接口Target 目标接口是客户端期待使用的接口。客户端通过目标接口与适配器交互调用在目标接口中定义的方法。 适配器Adapter 适配器实现了目标接口并且包装了一个被适配者Adaptee。它将客户端的请求转换为对被适配者的相应调用。 被适配者Adaptee 被适配者是原本存在的接口但它与客户端要求的接口不兼容。适配器通过包装被适配者使其与客户端能够兼容。 工作原理和应用场景 适配器模式的工作原理是通过创建一个中间层适配器将客户端的请求转换为被适配者可以理解的请求。这种模式常见于以下几种情况 系统升级与兼容当系统进行升级或者集成时可能需要与旧系统进行适配以保证新旧系统能够无缝衔接。 第三方库或组件的使用当使用第三方库或组件时其接口可能与当前系统的接口不匹配需要通过适配器进行适配。 接口的转换当需要将一个接口转换成另一个接口时可以使用适配器模式。 示例 // 目标接口 interface Smartphone {void charge(); }// 被适配者电子书阅读器 class EBookReader {void powerOn() {System.out.println(EBookReader is powering on.);}void turnPage() {System.out.println(EBookReader is turning the page.);} }// 适配器 class EBookReaderAdapter implements Smartphone {private EBookReader reader;EBookReaderAdapter(EBookReader reader) {this.reader reader;}Overridepublic void charge() {reader.powerOn();System.out.println(Charging EBookReader...);} }// 客户端代码 public class Client {public static void main(String[] args) {EBookReader kindle new EBookReader();Smartphone smartphone new EBookReaderAdapter(kindle);smartphone.charge(); // 使用智能手机充电} }在上面的示例中EBookReader是被适配者它有自己的一些方法但是没有charge()方法。通过EBookReaderAdapter适配器我们实现了Smartphone接口并在charge()方法中调用了EBookReader的方法从而将其适配成了一个智能手机可以使用的接口。
http://www.w-s-a.com/news/452411/

相关文章:

  • 广州建站商城南阳高质量建设大城市网站
  • 网站建设合同封面模板做代炼的网站
  • 外贸网站建站要多少钱南昌优化排名推广
  • 做公司网站的尺寸一般是多大企业管理网站
  • 苏州网站设计公司兴田德润i简介做签证宾馆订单用啥网站
  • 网站页面设计工具做网站租空间
  • 做智能网站系统百度提交入口
  • 网站建设代理商电话网站规划和建设方案
  • 双桥区网站制作seo 首页
  • 电子商务网站建设前期准备wordpress域名指向二级目录
  • 汕头建站网站模板淮北做网站电话
  • 手机做logo用什么网站服务器安全防护
  • 课程分销的网站怎么做北京企业网站建设方案
  • 吴兴区建设局网站湖北企业网站建设
  • 网页与网站的区别是什么2023年8月份新冠
  • 唐山网站建设外包公司安卓手机怎么搭建网页
  • 国内做网站最大的公司计量检测网站平台建设方案
  • 重庆沛宣网站建设网页制作初学者
  • php网站漂浮广告代码网络营销跟网站推广有啥区别
  • wordpress调用图片优化型网站建设的基本要求
  • 郑州模板网站建设策划公司做网站怎么赚钱滑县电
  • 东昌府聊城网站优化秦皇岛市妇幼保健院
  • 做网站能赚钱吗网页升级访问通知天天更新
  • 做网站使用什么软件的免费招聘网
  • 宁波网站建设公司推荐哪家淄博网站制作公司服务
  • 做网站网页挣钱不免费主题wordpress
  • 如何提高你的网站的粘性手机网站整站模板下载
  • 学校网站建设制度网站相关推荐怎么做
  • 昌图网站wordpress 视频外链
  • 企业网站要怎么建设重庆住房城乡建设部网站