java基础 多态+时间API+正则+泛型

news/2024/5/5 0:27:32/文章来源:https://blog.csdn.net/weixin_55770974/article/details/126993143

多态

声明方式 向上转型

父类类型  变量名 = new 子类类型;

接口名称  变量名 = new 实现类名称;

向下转型 (在类型转换前 先通过 变量名 instanceof 子类类型)

子类类型 变量名 = (子类类型) 父类对象

实现类名称 变量名 = (实现类名称) 接口名称 

向上转型的意义:当接口中的方法已经能够满足需求时,这样更加安全方便
向下转型的意义:能够访问接口类中的独有方法,这些方法接口中不存在 

访问成员方法:new谁就优先使用谁 没有向上找
访问成员变量
1.直接通过对象名称访问:看等号左边是谁 优先使用 没有则向上找
2.间接通过成员方法访问:看方法属于谁 优先使用 没有则向上找
总结一句话就是:
成员变量)编译看左边,运行看左边
成员方法)编译看左边,运行看右边
类型转换异常:ClassCastException

LocalDate、LocalTime、LocalDateTime

public class Outer {public static void main(String[] args){//now获取当前的年、月、日、时、分、秒//获取当前年月日时分秒LocalDateTime time1 = LocalDateTime.now();//获取当前年月日LocalDate time2 = LocalDate.now();//获取当前时分秒LocalTime time3 = LocalTime.now();//of设置指定的年、月、日、时、分、秒//设置指定年月日时分秒LocalDateTime time1 = LocalDateTime.of(年,月.日,时,分,秒);//设置指定年月日LocalDate time2 = LocalDate.of(年,月,日);//设置指定时分秒LocalTime time3 = LocalTime.of(时,分,秒);}
}

Duration 计算时间间隔

public class Outer {public static void main(String[] args){LocalTime time1 = LocalTime.of(10,15);LocalTime time2 = LocalTime.of(20,30,30);Duration duration = Duration.between(time1,time2);//输出 相隔:10时15分30秒与目标System.out.printf("相隔:%d时 %d分 %d秒",duration.toHours(),duration.toMinutes()%60,duration.toMillis()%60000/1000);}
}

Period计算日期间隔

public class Outer {public static void main(String[] args){LocalDate time1 = LocalDate.of(2022,10,10);LocalDate time2 = LocalDate.of(2020,10,10);Period period = Period.between(time2,time1);//输出 相隔:2年0月0日与目标System.out.printf("相隔:%d年%d月%d日",period.getYears(),period.getMonths(),period.getDays());}
}

正则表达式

 规则

 使用

public class test {public static void main(String[] args) {String check = "1[357]\\d{9}";String phoneNumber = "13206335101";System.out.println(phoneNumber.matches(check));Pattern pattern= Pattern.compile("1[357]\\d{9}");//phoneNumber被检测的文本Matcher matcher = pattern.matcher(phoneNumber);//匹配上的时候返回true,匹配不通过返回falseSystem.out.println(matcher.matches());}
}

 泛型

1、定义:泛型的本质是参数化类型,就是将类型由原来的具体的类型参数化,这种参数类型可以用在类、接口、方法中,分别称为泛型类、泛型接口、泛型方法;

泛型类

public class MyArrayList<E> {public ArrayList arrs = new ArrayList();public boolean add(E val){arrs.add(val);return true;}public boolean remove(E val){arrs.remove(val);return true;}@Overridepublic String toString() {return arrs.toString();}
}
//使用时 E 会自动转换为 <>中的类型
public class test {public static void main(String[] args) {MyArrayList<String> arrs = new MyArrayList();arrs.add("123");System.out.println(arrs);//[123]arrs.remove("123");System.out.println(arrs);//[]}}

泛型方法

public class test {public static void main(String[] args) {String[] arr1 = {"小李","小帅","小王","小张"};toStr(arr1);Integer[] arr2 = {1,2,3,4};toStr(arr2);toStr(null);}//在调用方法时 会自动赋类型public static <T> T[] toStr(T[] arrs){StringBuilder str = new StringBuilder("[") ;if (arrs == null) return null;for (int i = 0; i < arrs.length; i++) {str.append(arrs[i]).append(arrs.length-1==i? "]":",");}System.out.println(str);return arrs;}
}

泛型接口 

//接口
// T 自动转为 Data 
public interface MyInterface<T> {void add(T data);
}
//类
public class Data implements MyInterface<Data> {@Override public void add(Data data) {}
}

通配符

 

 

泛型上下边界

 


public class test {public static void main(String[] args) {ArrayList<BMW> car1 = new ArrayList<>();ArrayList<Benz> car2 = new ArrayList<>();car1.add(new BMW());car2.add(new Benz());game(car1);game(car2);}public static void game(ArrayList<? extends Car> car){car.forEach(item -> System.out.println(item.name+"参加了比赛"));}public  static class Car{String name;}public static class BMW extends Car{public BMW() {name = "宝马";}}public static class Benz extends Car {public Benz() {name = "奔驰";}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_15270.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xcode打包导出ipa

众所周知&#xff0c;在开发苹果应用时需要使用签名&#xff08;证书&#xff09;才能进行打包安装苹果IPA&#xff0c;作为刚接触ios开发的同学&#xff0c;只是学习ios app开发内测&#xff0c;并没有上架appstore需求&#xff0c;对于苹果开发者账号认证需要支付688&#xf…

某团app之mtgsig2.4参数分析

文章转载于&#xff1a;https://blog.csdn.net/heier_blue/article/details/126394023?spm1001.2014.3001.5502 本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 前言 某团…

[Python]搭建虚拟环境与项目的创建(Windows)

前言 系列文章目录 [Python]目录 视频及资料和课件 链接&#xff1a;https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd1234 提取码&#xff1a;1234 文章目录前言1. Django 安装2. 为什么要搭建虚拟环境3. 如何搭建虚拟环境3.1 切换Python版本3.2 安装虚拟环境的命令3.3 …

彻底Sparse!基于稀疏交互机制的端到端检测器

摘要&#xff1a; Sparse R-CNN基于R-CNN框架&#xff0c;其提出了一种一对一稀疏交互的机制&#xff0c;同时借鉴了DETR的可学习候选目标的思想&#xff0c;并且结合二分匹配的标签分配策略和集合预测的形式&#xff0c;实现了端到端目标检测的效果&#xff0c;整个过程无需R…

用户运营|车企运筹七条黄金法则,制胜客户体验管理

本文是中国汽车行业客户体验管理(Customer Engagement)和直连直营(DTC)销售模式三部曲系列的首篇。在随后发布的两篇文章中,我们将探讨如何在用户运营中加强客户体验管理,以及如何通过数字化转型实现客户体验管理和DTC。本文是中国汽车行业客户体验管理(Customer Engage…

玛雅Maya2022-2023最新分享

玛雅Maya专业的三维软件玛雅,帮助专业的动画设计师制作出最丰富最动感的动画作品。Maya(2022-2023)最新分享如下: 玛雅Maya2022 玛雅Maya2022是一款专业的三维软件,用于创建逼真的角色和大片水准的特效。无论您是为逼真的数字双精度动画还是为可爱的卡通角色设置动画,Maya …

MySQL--约束

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 1&#xff1a;非空约束 2&#xff1a;唯一性约束 3&#xff1a;主键约束 4&#xff1a;外键约束 在MySQL中是有着约束的&#xff0c;约束是什么呢&#xff0c;约束又…

springboot在线电子书阅读系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT

springboot在线电子书阅读系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT 【用户功能】 用户注册&#xff1a;填写手机账号和密码&#xff0c;注册新用户 登录功能&#xff1a;注册普通账号登录&#xff1b;登录后可以修改用户的基本信息&#xff0c;也可以退出。 …

C语言之长见识了(函数和一些不常见类型)

C1. strstr2. gets3. strlen4. \r\n5. const char * 与 char const *6. size_t、ssize_t、unsigned char、uint8_t6.1 size_t、ssize_t6.2 unsigned char6.3 uint8_t / uint16_t / uint32_t / uint64_t7. memcpy1. strstr 在字符串 haystack 中查找第一次出现字符串 needle 的…

【汽车ECU开发】------INCA使用教程

对于VCU或者是发动机标定工程师&#xff0c;INCA简直是跟亲人一样熟悉&#xff0c;基本上每天都要跟它打交道。分享一波INCA的基本使用操作。其基本的流程如下图所示&#xff1a; 主要操作步骤&#xff0c;打开软件&#xff1a; 点击菜单栏左上角数据库—>新建&#xff0…

TCS34725颜色感应识别模块

TCS34725颜色感应识别模块前言一、模块介绍二、产品参数三、实物图四、模块引脚介绍五、使用说明工作模式的选择上位机界面说明六、实例应用实物接线所用代码前言 TCS34725传感器模块&#xff0c;使用IIC或者UART通信&#xff0c;可直接输出RGB值。 能当做单纯的简单TCS34725模…

Java入门基础知识

Java入门基础知识概念 关键字:具有特殊用途的单词。 保留字:未使用的关键字(goto const)。 直接量:不可用作标识符(ture false null)。 一、JAVA运行机制 Java程序的运行必须经过编写、编译、运行三个步骤。 编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名…

教你如何使用GPA导出模型,另送一个 GPA CSV2MESH Tool in unity

以前写过一篇&#xff1a;Unity - RenderDoc 抓帧导出 FBX&#xff08;带UV&#xff09; 吐槽 我估计GPA是怕收律师函&#xff0c;因为如果 GPA 将所有资源一键提取&#xff0c;一键导出&#xff0c;那么可能很多开发商会告他 可以看到也好几个帖子问 GPA 官方&#xff0c;都…

【PDN仿真笔记3-电容布局Q3D模型搭建】

PDN仿真笔记3-电容布局Q3D模型搭建 1. 叠层参数及设计要求 2. 变量设置 根据设计要求&#xff0c;将各个参数设置为变量&#xff0c;通过Add添加变量名称及数值&#xff08;下图value应该为1.2mil&#xff09; 部分设置完成的变量 3.搭建平面 引用2节中设置的变量&#xf…

检测网络框架越来越多

搬运工又来了 之前也发过相关 在汇总说一下啊~~ yolo也不在孤单了~~ 出了一大堆了~~ 之前都一一发过 今天在来个大汇总 目标检测是现在最热门的研究课题&#xff0c;也一直是工业界重点研究的对象&#xff0c;最近几年内&#xff0c;也出现了各种各样的检测框架&#xff0c…

PHP第三方易宝支付对接

简言&#xff1a; 最近手头有个数字藏品的项目&#xff0c;需要对接第三方易宝支付&#xff0c;在此整理自己的对接经验&#xff0c;希望对大家有所帮助。 步骤 1&#xff0c;下载sdk PHP第三方支付易宝支付最新sdk包&#xff0c;其中包含回调。-PHP文档类资源-CSDN下载 2&…

树形DP

285. 没有上司的舞会 - AcWing题库 题意是给你每个人的开心值&#xff0c;和每个人的顶头上司&#xff0c;如果每个人与自己的顶头上司不会同时去的前提下&#xff0c;问你最大的开心值是多少 树形dp 注释写在代码下面啦~ #include<iostream> #include<cstring>…

ThinkPHP6.0开启多应用模式的方法

ThinkPHP发展至今已经到了6..0.X版本,整个结构较thinkphp5有了很大的变化,ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级(官方给出了升…

3_1 操作系统

3.01 操作系统概述 接口的区分&#xff1a; 人机之间的接口&#xff1a;命令&#xff0c;窗口应用软件与硬件之间的接口&#xff1a;api的接口 进程管理 3.02 进程管理——进程状态转换图 进程的状态&#xff1a;操作系统当中对进程进行管理的时候&#xff0c;为进程指定了几种…

一个项目的整个流程

1.基本配置 基础配置包括 1.Vuex------------作用:存储公共的数据 2.Vue-router---------作用:配置页面的映射关系 3.node_modules--------作用:包的管理工具 npm i 包的名字 4.vue.config.js-----------配置一些信息 例如配置跨域的问题 5.assets 放一些静态的资源…