1.适配器模式

1.类适配器 * (没有关系的类和产生联系 可以扩展功能 增加已有代码的复用性)* 2.对象适配器(io 使用对象进行连接 来扩展功能)* 3.缺省适配器
* iphone6 3.5mm的插口听歌* iphone7 直接使用充电口 ---需要使用转换头**/
public class Demo01 {public static void main(String[] args) {Target iphone6 = new IPhone6();iphone6.connection();// 使用适配器的类 创建接口使用多态的方式创建Target iPhone7 = new Adapter();iPhone7.connection();}
}class IPhone7 {// 听音乐方法public void listenMusic() {System.out.println("直接使用充电口听");}
}// 目标接口
// 当前接口 没有对Iphone7 进行 兼容
interface Target {// 耳机连接抽象方法public abstract void connection();
}class IPhone6 implements Target {// 实现抽象方法@Overridepublic void connection() {System.out.println("使用3.5mm听");}}// 使用继承的关系来实现 让类和接口 产生联系
// 使用一个适配器类(第三方的) 通过这个类
// 类和接口 产生联系 提高接口的兼容性
class Adapter extends IPhone7 implements Target {// 实现抽象方法@Overridepublic void connection() {System.out.println("使用转接头");super.listenMusic();}}

2.缺省适配器

* 缺省适配器(Severlet)
* 健身房规则(接口)
* 跑步机
* 史密斯架(卧推)
* 哑铃
*
* 王龙 实现 健身房
* 健身房规则(接口)
* 跑步机
* 史密斯架(卧推)
* 哑铃
* -----> 死了
* 活着(只能实现跑步机)
*/
public class Demo02 {public static void main(String[] args) {WL wl = new WL();wl.paoBuji();}}
//健身接口
interface JSF{//跑步方法public abstract void paoBuJi();//卧推方法public abstract void woTui();//哑铃方法public abstract void yaLing();
}
//使用一个类作为桥梁 来连接 接口 与 类
//让适配器类 来实现接口 ---空实现
//适配器类 只是对接口方法的空实现 具体怎么实现 不管
//不希望 这个适配器类 直接被使用 因为它并没有对方法进行真正的实现,所以才使用 abstract 修饰 保证无法创建对象.
abstract class MyAdapter implements JSF{@Overridepublic void paoBuJi() {}@Overridepublic void woTui() {}@Overridepublic void yaLing() {}}//这是就可以直接继承 适配器类
class WL extends MyAdapter{//重写适配器的方法public void  paoBuji() {System.out.println("跑步半小时");}
}class KDL extends MyAdapter{@Overridepublic void paoBuJi() {System.out.println("跑步三小时");}@Overridepublic void yaLing() {System.out.println("10公斤100举");}
}

3.系统提供的API之String

/* *  获取根据索引获取字符串中字符char charAt(int index)根据字符获取在字符串中的位置整数和字符 可以相互转换 ASCII+码表int indexOf(int ch);2.判断 返回值都是 布尔类型*   是否包含这个字符串*   是否以这个前缀开头*   是否以这个后缀结尾*/
public class Demo02 {public static void main(String[] args) {fun1();String string = "wanglong";//判断包含boolean rel1 = string.contains("baidu");System.out.println(rel1);//判断前缀boolean rel2 = string.startsWith("www");System.out.println(rel2);//判断后缀 .txt .pngboolean rel3 = string.endsWith("com");System.out.println(rel3);//判断两个字符串相等boolean rel4 = string.equals("hahaha");System.out.println(rel4);//判断两个字符串忽略大小写相等boolean rel5 = string.equalsIgnoreCase("wangLong");System.out.println(rel5);//字符串转小写String s1 = string.toLowerCase();System.out.println(s1);//字符串转大写String s2 = string.toUpperCase();System.out.println(s2);}//获取private static void fun1() {String string   ="wanglong";//注意:角标不要越界char c = string.charAt(1);System.out.println(c);//获取索引String s1 = "wanglong";int index = s1.indexOf('g');System.out.println(index);//从传入的索引 这一位开始查找//[0.0,1.0) 留头不留尾int index2 = s1.indexOf('g', 4);System.out.println(index2);//传入字符串 查找对应的角标int  index3 = s1.indexOf("long");System.out.println(index3);}
}
/**  替换 切割 获取子串 转换大小写 去空格 比较判断两个字符串相等(忽略大小写)把字符数组 转化为 字符串把字符串转化为 字符数组判断字符串是否为空*/public class Demo03 {public static void main(String[] args) {//fun1();//fun2();//fun3();//fun4();//fun5();//fun6();//fun7();}private static void fun7() {//基本数据类型 转化 为字符串(类方法)String string = String.valueOf(1);System.out.println(string);}private static void fun6() {//判断字符串是否是空(常用)String string = "";boolean rel = string.isEmpty();System.out.println(rel);//字符串拼接String  s1 = "wang";String  s2 = "long";String s3 = s1 + s2;String s4 = s1.concat(s2).concat("hahaha");System.out.println(s4);}private static void fun5() {// 把字符数组 转化为字符串char[] array = {'w','a','n','g'};//使用构造方法 转化String string = new String(array);System.out.println(string);//字符串转化成字符数组(常用)String s1 = "wanglong";char[] charArray = s1.toCharArray();for (char c : charArray) {System.out.println(c);}}private static void fun4() {//去空格String string = "   abc  def ";String s1 = string.trim();System.out.println(s1);//字符串比较String s2 = "abcAB";String s3 ="Ab";//相等返回0//返回正数 前面大//返回负数 前面小//字符串不一样的时候 按ASCLL表 返回两个字符的差值//长度不一样的时候 返回的是位数的 差值//一位一位进行比较 字符不一样 就做差值int num = s2.compareTo(s3);System.out.println(num);}private static void fun3() {//获取子串String string = "wanglong";//从传入的索引这一位开始截取(包括3)String s1 = string.substring(3);System.out.println(s1);//[0,3) 留头不留尾 实际截取[0,2]String s2 = string.substring(4, string.length());System.out.println(s2);}private static void fun2() {//fun1();//字符串分割 返回值 数组 String[]String string = "wanglong.pengqian.liushangkun";//使用转译符String[] strings = string.split("\\.");System.out.println(Arrays.toString(strings));//增强for循环(专门用来遍历的)//for(容器中数据类型 名字:遍历容器){//}for (String string2 : strings) {System.out.println(string2);}}private static void fun1() {//替换String string = "wanglong";String s1 = string.replace('w', 'l');System.out.println(s1);//替换字符串String s2 = string.replace("long", "ba");System.out.println(s2);}}

4.String 方法的应用

/** 一.将字符串"   abc def" 反转* 1.转换成字符数组* 2.计算换位次数(循环的次数)* 3.array[i] 和 array[length - 1- i]* 4.字符数组转字符串* * * 二.将字符串 "   abc def " 去除空格自己(实现)* * 三. 计算 * "www" 在 "wwwasdwwwsnfjwwwsnsdkwwwjsd" *  当中出现次数*  * 四. 打印下面两个字符串 中相同的 最大子字符串* asakjfahellosdlmkasklhka* mcnvbsehellolssphkp*/
public class Demo04 {public static void main(String[] args) {// fun1();// fun2();// fun3();// 没见过 你就不会fun4();}private static void fun4() {int num = 0;String s1 = "asakjfahellosdlmkasklhka";String s2 = "mcnvbsehellolssphkp";// 以短的字符串 为参照物 查找// 声明循环增量int i = 0;while (i < s2.length()) {// 为了找到开始的索引int start = 0;// 结束的索引// length// length - 1int end = s2.length() - i;// 截取最大子串 从大到小截取while (end < s2.length()) {// 截取String substring = s2.substring(start, end + 1);System.out.println(substring);// 跟s1字符串 进行比对// 判断包含if (s1.contains(substring)) {// 第一个进来 就是最大子串System.out.println(substring);// 结束该方法return;}// 让开始和结束的坐标 向前移动start++;end++;}i++;}}private static void fun3() {// 声明保存次数int count = 0;String s1 = "wwwasdwwwsnfjwwwsnsdkwwwjsd";// 把能声明的变量 全声明一遍String key = "www";// 声明索引int index = 0;// 判断 该字符串中 是否包含 要查找的字符串while (s1.contains(key)) {// 查找 www 在字符串中的 索引index = s1.indexOf(key);// 截取字符串s1 = s1.substring(index + key.length());// 计数器++count++;}System.out.println(count);}private static void fun2() {String s1 = "   abc def  ";// 只要找出开始和结束的索引 就完事啦// 定义开始和结束的索引int start = 0;int end = s1.length() - 1;// 计算开始坐标while (s1.charAt(start) == ' ' && start < end) {// 从前开始 一位一位向后寻找start++;}// 计算结束坐标while (s1.charAt(end) == ' ' && start < end) {end--;}// 截取字符串String substring = s1.substring(start, end + 1);System.out.println(substring);}private static void fun1() {String string = " abc def   ";char[] charArray = string.toCharArray();// 换位for (int i = 0; i < charArray.length / 2; i++) {char c = charArray[i];charArray[i] = charArray[charArray.length - 1 - i];charArray[charArray.length - 1 - i] = c;}// 字符数组转字符串String string1 = new String(charArray);System.out.println(string1);}
}

It彭于晏带你学JAVA之适配器模式及API相关推荐

  1. java基本数据类型_老杜带你学Java【第六课】

    上期链接:老杜带你学Java[第五课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声

  2. java 获取ip地址_老杜带你学Java【第二课】

    上期链接:老杜带你学Java[第一课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...

  3. 我要带徒弟学JAVA架构 ( 写架构,非用架构 )

    我要带徒弟学JAVA架构 (写架构,非用架构)     很多人做java开发2,3年后,都会感觉自己遇到瓶颈.什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是 ...

  4. 咸鱼带你学Java—关键字与标识符

    目录 一.关键字的使用 1.定义 2.特点 3.具体的关键字 二.保留字 1.定义 2.具体保留字 3.注意 三.标识符的使用 1.定义 2.涉及到的结构 3.规则 4.规范 5.注意点 一.关键字的 ...

  5. java 8进制串转中文_老杜带你学Java【第六课】

    上期链接:老杜带你学Java[第五课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...

  6. 咸鱼带你学Java—类的结构之一:属性(field)

    目录 一.概念 二.语法格式 三.属性的初始值 四.成员变量(属性)与局部变量的异同 1.对变量按照声明位置分类 2.两者异同 一.概念 对应类中的成员变量 二.语法格式 修饰符 数据类型 属性名 = ...

  7. 【手把手带你学Java EE】多线程那些事,你了解了吗?

    [手把手带你学Java EE]多线程那些事,你了解了吗? 线程 概念 意义 进程和线程的区别 面试题:谈谈进程和线程的区别和联系 Java中的多线程编程 创建线程的方法 方法一 方法二 方法三 &am ...

  8. 【逗老师带你学IT】PRTG HTTP API获取指定传感器流量图表图片

    PRTG服务器支持通过HTTP API获取监控数据和监控图表.本文主要介绍HTTP API的方式拉取任意传感器流量图表.文章内容翻译和重新整理自PRTG用户手册. 原文链接: PRTG Manual: ...

  9. 02_星仔带你学Java之变量、常量、字面量、数据类型

    资料和代码存放地址:<华星详谈-学习中心>.开源项目持续更新中.     大家好,我是星仔.本博客收录于华星详谈-学习中心.本学习中心收集了Java整个技术体系的所有技术要点.每篇博客后面 ...

最新文章

  1. SQL Server 中master..spt_values的应用
  2. 贝叶斯神经网络的辩论
  3. PE文件数据结构汇总
  4. 丑憨批的爬虫笔记1(导学+requests))
  5. IIS AppCreate子目录的错误(0x80020006)
  6. [WinForm] VS2010发布、打包安装程序(超全超详细)
  7. 作者:冷芳玲(1978-),女,博士,东北大学计算机科学系讲师
  8. 《PostgreSQL服务器编程》一一1.8 程序设计最佳实践
  9. javascript 设计模式之单例模式
  10. UDP协议相关及报文格式
  11. 通过while循环一步步实现九九乘法表
  12. 索引超出矩阵维度怎么修改程序_seo关键词优化工具怎么收费
  13. 计算机电子电路原理图,经典六款电路图集锦(图文)
  14. 使用计算机SN号匹配对应的计算机名 作为计算机名字的一个小脚本 win10可用
  15. 不要为优势忘乎所以——职场人士寓言(6)
  16. The Sandbox 的 OliveX Fitness 之城来啦!
  17. 智能化测试技术探索与实践——AAAS/IEEE Fellow、北京大学讲席教授谢涛阿里行
  18. springboot上传下载文件(4)--上传下载工具类(已封装)
  19. 道家养生的最高境界-天人合一
  20. 机器人暑假班招生推文_「言情推文」妈妈这个机器人撩我!

热门文章

  1. CLIP改进工作串讲(上)
  2. 隐藏微信右上角的分享按钮
  3. STM32粗略延时,大致精确
  4. 流利阅读2019.1.4 Secrets of the booming beauty business
  5. 美式口语发音技巧:《英美发音区别》
  6. 数学重要公式--笔记
  7. AWS GWLB集成FortiGate防火墙
  8. 如何检查浏览器存储中个人证书的存在
  9. Seurat | 不同单细胞转录组的整合方法
  10. android 后台运行清理,【Android】App在后台被清理后的终极应对手段——重启应用...