1.扩展的赋值运算符隐含了强制类型转换
2.方法重载(Overload):方法与方法之间的一种联系
定义:在同一个类中,方法名相同,参数不同(类型、个数、顺序不同),与返回值无关
好处:不繁琐记太多方法名字了
3.switch语句的注意事项:
switch()中可以接受的类型:基本的数据类型byte short char int,引用数据类型 枚举、String字符串(jdk8开始)
case 后面的值不允许重复,且只能是字面量,不能是变量
使用case穿透来优化代码:多个case中存在了重复的代码
4.if:适用于范围性的判断 Switch:适用于固定值的匹配
5.类 : 一组相关属性和行为的集合, 将其看做为是对象的设计图.
对象 : 是根据设计图(类), 创建出来的实体
类和对象的关系: 1) 依赖关系: 需要根据类, 创建对象 2) 数量关系: 根据一个类, 可以创建出多个对象 类的本质 : 就是对事物进行的描述 类的组成: 属性(名词): 在代码中使用成员变量表示, 成员变量跟之前定义变量的格式一样, 只不过位置发 生了改变, 类中方法外. 行为(动词): 在代码中使用成员方法表示, 成员方法跟之前定义方法的格式一样, 只不过需要去掉 static 关键字 6.成员变量和局部变量重名的情况, Java使用的是就近原则
this可以区分局部变量和成员变量的重名问题
this关键字的作用:
this可以调用本类成员 (变量, 方法)
this.本类成员变量
this.本类成员方法();
this.的省略规则 :
本类成员方法 : 没有前提条件, this.可以直接省略
本类成员变量 : 方法中没有出现重名的变量, this.才可以省略
this介绍 : 代表当前类对象的引用(地址) - 哪一个对象调用方法, 方法中的this, 代表的就是哪一个对象.
7.构造方法(构造器):初始化一个新建的对象,构建、创造对象的时候,所调用的方法
格式:a.方法名与类名相同,大小写也要一致
b.没有返回值类型,连void都没有
c.没有具体的返回值(不能由return带回结果数据
执行时机:创建对象的时候调用,每创建一次对象,就会执行一次构造方法
不能手动调用构造方法
作用:本质作用:创建对象
结合执行时机:可以在创建对象的时候,给对象中的数据初始化
注意事项:a.一个类中没有编写构造方法,系统会提供一个默认无参数的构造方法
b.一个类中,如果手动编写了构造方法,系统再不会提供那个默认的无参构造了
c.构造方法不允许手动调用
8.封装:使用类设计对象时,将需要处理的数据,以及处理这些数据的方法, 设计到对象中
9.权限修饰符:private:在同一个类中
(default):同一个包中
protected:不同包的子类
public: 任意位置访问
10.标准 JavaBean:这个类中的成员变量都要私有,并且对外提供相应的getXxx ,setXxx方法;类中提供无参, 带参构造方法
实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。
11.Scanner键盘录入字符串:
String next():遇到了空格,或者tab键就不再录入了(除了字符串还有其他类型就用它)
String nextLine():以回车作为录入的结束标记(全部是字符串就用它)
12.String类的特点 : a. Java 程序中所有双引号字符串, 都是String这个类的对象
b. 字符串一旦被创建, 就不可更改, 字符串内容不可改变 如果想要更改, 只能 使用新的对象, 做替换
c. String字符串虽然不可改变, 但是可以被共享
字符串常量池: 当我们使用双引号创建字符串对象时, 会检查常量池中是否存在该数据 不存在 : 创建 存在 : 复用
13字符串比较:equals方法(要比较的字符串)----完全一样结果才是true
equalsignoreCase(要比较的字符串)---忽略大小写
14.String类用于遍历的方法:
public char[] toCharArray() 将此字符串转换为一个新的字符数组
public char charAt(int index) 返回指定索引处的 char 值
public int length() 返回此字符串的长度
15.String类的截取方法 :
public String substring(int beginIndex) : 根据传入的索引开始做截取, 截取到字符串的末尾
public String substring(int beginIndex, int endIndex) : 根据传入的开始和结束索引, 对字符串做截取 - 包含头, 不包含尾
注意: 截取出来的内容, 是作为新的字符串返回, 别忘记找变量接收
16.String类的替换方法 : public String replace(CharSequence target, CharSequence replacement) ------------------------------------------------------------- 参数1 : 旧值 参数2 : 新值
17.String类的切割方法 :
public String[] split(String regex) : 根据传入的字符串作为规则, 切割当前字符串
建议: 先正常指定切割规则, 后来发现没有得到自己要的效果, 就可以尝试在规则前面, 加入 \\
18.StringBuiler的作用:提高字符串操作效率
StringBuilder的介绍 :
a. 一个可变的字符序列
b. StringBuilder是字符串缓冲区, 将其理解是容器, 这个容器可以存储任意数据类型, 但是只要进入到这个容器, 全部变成字符串.
StringBuilder的构造方法 :
public StringBuilder() : 创建一个空白的字符串缓冲区(容器), 其初始容量为16个字符
public StringBuilder(String str) : 创建一个字符串缓冲区(容器), 容器在创建好之后, 就会带有参数的内容
19.StringBuilder常用成员方法 :
a. public StringBuilder append(任意类型) : 添加数据, 并返回对象自己
b. public StringBuilder reverse() : 将缓冲区中的内容, 进行反转
c. public int length() : 返回长度
d. public String toString() : 将缓冲区的内容, 以String字符串类型返回
20.集合和数组的使用选择:
数组: 存储的元素个数固定不变
集合: 存储的元素个数经常发生改变
21.ArrayList集合的使用:
细节: 创建String, StringBuilder, ArrayList类的对象, 打印对象名, 都没有看到地址值, 而是元素内容 a. 构造方法 : public ArrayList() : 创建一个空的集合容器
b. 集合容器的创建细节 : ArrayList list = new ArrayList();
现象: 可以添加任意类型数据 弊端: 数据不够严谨
ArrayList<String> list = new ArrayList<>();
<> : 泛型 目前: 使用泛型, 可以对集合中存储的数据, 进行类型限制
细节: 泛型中, 不允许编写基本数据类型
问题: 那我要是想集合中, 存储 整数, 小数, 字符... 这些数据, 怎么办呢? 解决: 使用基本数据类型, 所对应的包装类int -----Integer char------Character,其余类型均是首字母大写
22.ArrayList 常用成员方法 :
a. 增 :
public boolean add(E e) : 将指定的元素添加到此列表的尾部
public void add(int index, E element) : 在指定索引位置, 添加对应的元素 (插队)
b. 删
public E remove(int index) : 根据索引做删除, 返回被删除掉的元素
public boolean remove(Object o) : 根据元素做删除, 返回是否删除成功的状态
c. 改
public E set(int index, E element) : 修改指定索引位置, 为对应的元素, 返回被覆盖掉的元素 ----------------------------------------------------------------------------------------以上方法, 返回值通常不做接收
d. 查
public E get(int index) : 根据索引, 获取集合中的元素
public int size() : 返回集合中元素的个数