类与类的关系
继承关系,而且只支持单继承 ,A extends B ,B是父类,子类可以使用父类所有非私有资源,子类对父类不满意,可以进行重写
接口与接口关系
继承关系,可以多继承 Inter1 extends Inter2,Inter3 Inter2与Inter3是父接口 Inter1是子接口
接口的继承关系类似于功能的汇总,接口一同时23的全部功能
类与接口之间的关系
实现关系 一个类可以实现多个接口
class A implements Inter1
class A implements Inter1,Inter2
****************************************************************************************************
在不明确给出超类的情况下,Java会自动把Object类作为定义类的超类
Object---顶级父类---java中所有类都把Object作为超类
toString()方法默认打印的是地址值 重写后打印的是对象的属性与属性值
hashCode()对象的哈希码值-----一串数字,用来区分不同的对象
equals()方法--默认的是==比较,比较的是两个对象的地址值
--重写后:比较的是两个对象的类型+所有属性值
****************************************************************************************************
String字符串 使用""来包裹
String底层维护了一个char[]
创建的两种方法
方式一:char []value={'a','b','c'};String a=new String(value);
方式二:String s="abc";有高效的效果,存在堆中常量池
String重写了equals()方法,比较的是 两个字符串里面具体的值,而不是地址值
package cn.tedu.api;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Locale;
/*本类用于测试String常用方法*/
public class TestString2 {
@Test
public void test() {
String s = "abc";
String ss = new String("abc");
//常用方法
System.out.println(s.charAt(1));//获取指定下标处的字符,下标从0开始
System.out.println(s.concat("cxy"));//拼接字符串,不影响原来的字符串
System.out.println(s);
String s1 = s.concat("cxy");//如果想继续使用拼接效果,可以交给变量保存,就可以多次使用了
System.out.println(s.startsWith("a"));//true 测试第一个字符是否以a开头
System.out.println(s.endsWith("b"));//false 测试最后一个字符是否以a结束
System.out.println(s==ss);//false 比较的是地址值
System.out.println(s.equals(ss));//true String底层重写了equals()方法,比较的是具体的值
System.out.println(s.length());//获取字符串长度
String s4="abcbc";
System.out.println(s4.indexOf("b"));//字符串中第一次出现的位置
System.out.println(s4.lastIndexOf("b"));//字符串中最后一次出现的位置
System.out.println(s4.toLowerCase());//全部小写
System.out.println(s4.toUpperCase());//全部大写
System.out.println(s4.getBytes());//返回一个byte类型数组 [B@670b40af
System.out.println(Arrays.toString(s4.getBytes()));//把指定字符串转成字节数组,返回值是byte[] [97, 98, 99, 98, 99]
String s5="a b c d e ";
System.out.println(Arrays.toString(s5.split(" ")));//根据指定的内容分割字符串,返回值是String[]
System.out.println(s5.substring(3));//截取字符串从三开始
System.out.println(s5.substring(1,5));//从指定位置开始截取到指定位置 *左闭右开
s5=" abcde ";
System.out.println(s5.trim());//去除收尾两端的空格
System.out.println(String.valueOf(10));//把int类型转换为String类型
System.out.println("20"+10);//2010
System.out.println(10+10);
System.out.println();
}
}