1.适配器
1.类适配器 (没有关系的类和接口产生联系 可以扩充功能 增加已有代码的复用性)
2.对象适配器(io 使用对象来连接 来扩展功能)
3.缺省适配器
类适配器 例:
public class Demo01 {
public static void main(String[] args) {
Target iphone = new IPhone6();
iphone.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{
//实现抽象方法
@Override
public void connection() {
System.out.println("使用3.5mm听");
}
}
//使用继承来实现 让类和接口 产生联系
//使用一个适配器类(第三方类)通过这个类
//类和接口 产生联系 提高接口的兼容性
class Adapter extends IPhone7 implements Target{
@Override
public void connection() {
// TODO Auto-generated method stub
System.out.println("使用转接头");
super.listenMusic();
}
}
缺省适配器 例:
interface JSF{
//跑步方法
public abstract void paoBuJi();
//卧推方法
public abstract void woTui();
//哑铃方法
public abstract void yaLing();
}
//使用一个类作为桥梁 来连接 接口 与 类
//让适配器类 来实现 接口 --- 空实现
//适配器类 只是对接口方法的空实现 具体怎么实现 不管
//不希望 这个适配器类 直接被使用
abstract class MyAdapter implements JSF{
@Override
public void paoBuJi() {
// TODO Auto-generated method stub
}
@Override
public void woTui() {
// TODO Auto-generated method stub
}
@Override
public void yaLing() {
// TODO Auto-generated method stub
}
}
//这时就可以直接继承 适配器类
class WL extends MyAdapter{
//重写适配器类的方法
@Override
public void paoBuJi() {
// TODO Auto-generated method stub
super.paoBuJi();
}
}
class KDL extends MyAdapter{
@Override
public void paoBuJi() {
System.out.println("跑步3小时");
}
@Override
public void yaLing() {
System.out.println("10公斤 100举");
}
2.字符串类!
* 字符串(系统类 提供了一些方法)
* 注意:字符串 是常量 也叫 字符串常量
* 学习系统类的目的:学习 系统的方法 如何使用
* 方法:
* 关键字部分 有没有 static 修饰 (方法的调用方式)
* 返回值类型(给我返回一个什么结果)
* 方法名(见名知意)
* 参数列表(方法需要什么)
public static void main(String[] args) {
// 修改是 字符串引用(地址)
// 指向了不同的地址 而不是字符串本身被修改
// 看系统方法时 但凡是拼接 截取等操作字符串的一类方法
// 都是返回一个 新的字符串
String s1 = "abc";
s1="王龙";
//System.out.println(s1);
//s2的创建方式相当于 在方法区的常量池中(云空间)
//创建一个字符串
String s2 = "abc";
//s3是在堆内存中开辟一块空间
String s3 = new String("abc");
String s4 = "abc";
// == 号 对象的话 比的是 地址
System.out.println(s2 == s4);
//equals 把两个字符串 变成 字符数组
//一位一位的进行比较
System.out.println(s2.equals(s4));
System.out.println(s2==s3);
//s2和s3 有什么区别?
//s2是一个对象 s3是两个对象
//s3是两个对象 "abc" 和 new出来的对象
}
1.获取 charAt(int index) 根据字符获取在字符串中的位置 整数和字符 可以相互转换 ASCII码表
2.判断 boolean 类型
String string = "wwwweeeeddd";
判断包含 string.contains(String string);
判断前缀 string.startsWith(String string);
判断后缀 string.endsWith(String string); 用于判断文件后缀 .txt .png
判断两个字符串相等 string.equals(String string);
判断两个字符串忽略大小写相等 string.equalsIgnoreCase(String string);
字符串转大写 string.toLowerCase(); 字符串转小写 string.toUpperCase();
3.获取
获取该位置的字符 string.charAt(2);
获取该字符的索引(角标) string.indexOf('g'); 从传入索引的第一位开始查找 [0.0,1.0) 留头不留尾
string.indexOf('g',4); 传入一个字符串 查找对应的角标 如果不存在 返回-1
4.替换 string.repace('x','l');字符串中的单字符用' ';
5.分割 string.split(","); 增强for循环(专门用来遍历) for e
6.获取子串 string.substring(3);从索引这位开始截取(包括3) string.substring(0,3) [0,3) 留头不留尾 实际截取[0,2]
7.去空格 string.tirm();
8.字符串比较 string.compareTo(String string); 相等返回0 正数 前面大 负数 前面小
字符串不一样的时候 按ASCII码表 返回两个字符 差值
长度不一样的时候 返回的是位数的差值
一位一位进行比较 字符不一样就做差值
9.将字符数组 转换成 字符串 字符数组转字符串:String string = new String(array); 字符串转字符数组:string.toCharArray();
10.判断字符串是否为空 string.isEmpty();
11.字符串拼接 string.concat(String string).concat(...)....
12.基本数据类型 转化为字符串(类方法) String valueOf = String.valueOf(true);