10.22java课堂笔记
substr截取字符串左闭右开
public static void main(String []args) { //System.out.println("hello world"); Scanner cin=new Scanner(System.in); String s1 = new String(); s1 = cin.nextLine(); int pos = s1.indexOf('@'); int len = s1.length(); String a = new String(); String b = new String(); a = s1.substring(0, pos); b = s1.substring(pos+1,len); System.out.println(a); System.out.println(b); }
API
format方法,可以创建一个格式化的字符串
字符串转换为整型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F3UkIX7V-1609761105602)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022101512908.png)]
字符串转换为浮点型
Float.parseFloat();
Double.parseDouble();
数值转换为字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AmVAGW0k-1609761105603)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022101949282.png)]
工厂方法:
可以将任何对象任何基本类型转换为字符串
String.valueOf()
字符串与字符、字符数组
String (char[]);
字符串与字节数组
getByte("编码方式");
StringBuffer类
可以创建能够进行修改的字符串序列,该对象实体的内存空间可以自动改变大小,便于存放改变大小的字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wiVHilp-1609761105605)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022103820971.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4V7Xz9FQ-1609761105606)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022103933078.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GdU8vTIK-1609761105607)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022104121123.png)]
基本类型数据的类包装器
java对所有基本数据类型都在java.lang包提供了对应的包装类
Double类的构造方法:
Double(double num1)/Double (String num1)
静态工厂方法:
valueOf(double d);
valueOf(string d);
Character类:
构造方法:Character (char c);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AWlvrxa7-1609761105608)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201022105517712.png)]
装箱和拆箱:
装箱
Interge int1 = 55; 或者是
int i = 3;
Interage int2 = i;
拆箱
注意:
防止没有初始化就使用的空型情况;
java编程要尽可能使用工厂方法
正则表达式与模式匹配
一个含有特殊意义字符的字符串称为正则表达式(模式),特殊字符称为元字符
比如说:"\\dok" 中的\\d 就是元字符,代表从0–9的任何一个数
模式匹配:
模式匹配就是检索和指定模式匹配的字符串
java中提供了指定的类;
在正则表达式中使用一堆方括号括起来的若干个字符,代表任意一个字符;
方括号嵌套方括号可以构成交并差 &&并且 ^除了 - 到
限定字符模式;
模式的逻辑或
模式匹配
的情况
10.23课堂笔记
switch语句新特性
改进1
case 1->执行语句
case 1->System.out.println(); 冒号改成箭头
必须要有default
case 1,2,3->执行语句
改进2
之前要先声明,然后再赋值改变变量大小
int b = switch(a){ case 1,2,3-> 6; ... default-> 0; }
int b = switch(a){ case 1:{ yield 1;///相当于return } default-> 0; }
"\\s"空白字符
封装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gF7AyfFk-1609761105609)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201023103147070.png)]
default:
是一种默认的权限,仅能够用同一个包的方法进行访问
protected :
可以被这个类本身、它的子类(继承得到,同一个包中的以及不同包中的子类)和同一个包中的所有其他类访问
(protected && default)跨包继承也要谨慎使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fZ5yNG7q-1609761105610)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20201023103756916.png)]
来源:https://www.cnblogs.com/sunyubin/p/9683860.html
继承
降低冗余问题,提高了可维护性
extends 是继承的时候的关键字
例子:
class A{ } public class B extens A{ }
这里B将A继承
public 为继承方式
方法的覆盖
重写override
**子类拥有与父类相同的成员的情况称为覆盖(Override)
子类通过覆盖父类的成员变量和方法,可以把父类的状态和行为
改变为自身的状态和行为。
① **成员变量的覆盖:**变量名相同
② **成员方法的覆盖:**返回值类型、方法名、形参都相同
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VjjHf6lA-1609761105611)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20210104193541110.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TFNCfw36-1609761105612)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20210104193613822.png)]
通过super来实现对父类成员的访问
继承中的 is a问题:cat is a animal
A animal = new Cat();/// okay子类是父类的类型,这叫做上转型
但是 Cat cat = animal;///就不行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GA2MyHry-1609761105613)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20210104193751708.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DLKnU5hN-1609761105614)(C:\Users\wuyan\AppData\Roaming\Typora\typora-user-images\image-20210104193817909.png)]
强制类型转换
多态
提高系统可拓展性,可以拓展新功能
是通过上转型(类型的向上转换,子类转换成父类)实现的多态
如果不能确定对象的类型,类型强制转换之前先用instanceof确定对象的类型
任务: 确定 instanceof的新用法:
instance:实例的意思, A instanceof 可以用来判断A是不是B的一个实例
在稳定的情况下实现新功能,依靠的是=>继承,上转型,方法的重写
equals方法:
判断两个基本数据类型的变量是否相等,比较两个对象的引用两个变量是否指向了相同的新变量