1.类的有关概念:
当有public修饰时,类名必须与文件名相同
如果没有public关键字修饰 则可以不同
类是有相同特征和行为的事物的抽象
特征可以理解为静态的
行为可以理解为动态的
*package 将当前文件放入对应的包中
*package 后面通常写网址倒置
*package 必须是当前文件的第一行
*import 引入在本文件中需要使用的类
2.变量定义三要素:
* 类型修饰符 变量名 = 初始值;
* 使用类创建的变量可以称为对象
* 类名 对象名 = new 类名();
3.操作对象的属性
* 对象名.属性名 对其进行修改
* 对象名.方法名 对其进行修改
4.方法:类的行为就是方法
* 方法的写法如下:
* 修饰符 返回值类型 方法名(参数列表){}
4.1修饰符:
* 可以写出来的修饰符有三种 :
* public private protected
* 不写的为默认的default
4.2返回值类型
* 无返回值类型:void
* 有返回值: int double String Car...
* 返回值需要在方法内使用return语句
* 无返回值类型也可以使用return停止当前的方法
4.3根据返回值及参数的不同,有四种方法形式
* 1.无参无返
* 2.无参有返:有返回值的方法可以理解为一个表达式,结果就是方法的返回值
* 3.有参无返:有参数的方法需要根据方法声明,传入对应参数
***传入的参数不要带参数类型***
* 方法声明时叫做形参
* 方法调用时叫做实参
* 4.有参有返:传入的参数不带参数类型
5.方法内可以调用方法
* 方法重载:
* 方法名相同,但是参数列表不同:个数-顺序-类型不同
* ---------方法重载和返回值类型无关---------
6.setter方法和getter方法
* setter方法:设置器
* 格式为:public void set属性名()
* getter方法:访问器
* 格式为:public 属性类型 get属性名()
* setter和getter方法不是必须写
* 按照需求决定属性是否需要设置器或者访问器
* 设置器和访问器不是必须成对出现
* this 代表本类的对象
* this.属性---代表访问本类的属性而不是参数
构造方法:
* 创建对象时进行初始化
* 当类中没有构造方法时,编译器会创建一个无参的构造方法
* 格式为:访问修饰符 类名(参数列表){}
* 构造方法同样可以重载
* 构造方法不能有返回值类型的声明
7.在构造方法内直接进行设置
* ******千万不要在构造方法内使用return返回一个值******
* 只要类中有任意一个构造方法
* 编译器将不会生成无参的构造方法
8.继承
* 从已有类中派生(拓展)出来的新的类
* 关键字是 : extends
* java中只允许单继承
9.super()
* super()代表调用父类的构造方法
* super()必须写在方法中的第一行
* 首先将父类集成的属性进行赋值
* 之后再将本类的属性进行赋值
10.final 修饰类,代表该类不可以被继承
final 修饰方法,代表该方法不可以被子类重写
final 修饰属性,代表该属性不可以再被赋值
---final 修饰的属性,变量名为纯大写---
常用类
1.String类
* (1).字符串的比较方法:
* 返回值类型为boolean,参数为另一个字符串
* 对象.equals(对象)
* (2).字符串的查找方法1 indexOf(参数)
* 返回值为int,也就是该字符在字符串中的索引
* 会返回第一个符合要求的字符位置,没有则返回-1
* 参数为需要查找的字符
* 查找方法2 indexOf(参数1,参数2)
* 参数2为开始查找的位置,传入的位置也会进行判断
* 会返回第一个从开始位置符合要求的字符的位置,没有则返回-1
* (3).字符串的替换方法 indexOf(参数1,参数2)
* 返回值为替换之后的新字符串
* 参数1为被替换的字符(串),参数2为替换的字符(串)
* 如果参数1在原字符串中不存在,则不替换
* 替换的为原字符串中的所有参数1
* (4).判断字符串是否从已指定字符串开始 startWith()
* 返回值类型为boolean
* 参数为需要判断的字符串
* (5).判断字符串是否已指定字符串结尾 endsWith()
* 返回值类型为boolean
* 参数为需要判断的字符串
* (6).去除字符串开始和结尾处的空格
* trim()
* 计算字符串长度的方法 length()
* 返回值为int
2.StringBuffer
* 可修改的字符串类
* (1).字符串的截取方法 substring()
* 参数1为从哪个索引开始
* 参数2为到哪个索引结束
* Tips: 遵循左闭右开原则[)
* (2).字符串的删除方法 delete()
* 参数1为从哪个索引开始删除
* 参数2为到哪个索引结束删除
* (3).字符串的插入方法 insert()
* 参数1为从哪个索引开始
* 参数2为插入的字符(串)
* Tips:左闭还是存在
类集框架
1.数组:相同数据类型的集合
* 数组内的元素都是有序的
* 格式:数据类型 数组名[] = new 数据类型[数组长度];
* 使用数组中的元素:
* 通过 数组名[元素位置] 进行取值或赋值
2.ArrayList 的常用方法
* ArrayList 可以理解为继承Collection
* Collection的所有方法ArrayList都可以使用
(1)创建一个ArrayList类
* ArrayList list= new ArrayList();
* <>中间的类型叫做泛型
(2)添加方法 list.add()
* 在指定位置添加元素 list.add(参数1,参数2)
* 参数1为位置
* 参数2为添加内容
(3)获得方法 list.get()
(4)删除方法 list.remove()
(5)替换方法 list.set(参数1,参数2)
* 参数1代表要被替换的位置
* 参数2为新的元素
(6)获取指定元素在集合中的位置 list.indexOf(参数)
*返回值为一个int类型的数值
3.Map是一种存储键值对的数据结构
* Map存放数据是无序的
(1)创建一个Map的对象
* HashMap map= new HashMap<>();
(2)添加方法 map.put(参数1,参数2)
* 需要传入两个参数
* 第一个参数为Key
* 第二个参数为Value
(3)移除方法 map.remove()
* 根据key值移除整个键值对
(4)判断是否包含key或者value
1> map.containsKey(Key值)
if(map.containsKey("豹子头")){
System.out.println("集合中包含豹子头");
}else{
System.out.println("集合中不含豹子头");
}
2>map.containsValue(Value值)
if(map.containsValue("卢俊义")){
System.out.println("集合中包含卢俊义");
}else{
System.out.println("集合中不包含卢俊义");
}
IO流与异常
1.异常:就是导致程序中断的错误
* 异常可分为运行时异常和非运行时异常
* 异常需要进行处理,否则导致程序中断
2.异常处理
* 方式为:try...catch
* 把有可能出现异常的语句写在try块中
* 如果在try中抛出一个异常,则会在catch中捕获
* catch可以写多个,但是需要注意:
* 如果异常有继承关系在,需要把父类写在子类的后面
* 注:不论是否出现异常,finally块都会被执行到
3.throws关键字
* 在方法声明时使用,代表调用该方法有可能会抛出异常
* 根据异常的分类不同,决定调用时是否强制使用try..catch
* 如果抛出的异常为运行时异常,不强制try...catch
* 如果抛出的异常为非运行时异常,强制try...catch
4.throw关键字
* 在方法中抛出异常
* 根据抛出异常的分类不同
* 决定是否在方法声明中添加throws
* 如果抛出的异常为非运行时异常
* 则需要在方法声明中使用throws声明
5.字节流的使用方式
* 创建输入流和输出流的引用
File src = new File("/Users/dllo/Desktop/io/src.txt");
File dest = new File("/Users/dllo/Desktop/io/dest.txt");
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
6.字符流的使用方式
* 创建输入流和输出流的引用
File src1 = new File("/Users/dllo/Desktop/io/src1.txt");
File dest1 = new File("/Users/dllo/Desktop/io/dest1.txt");
FileReader fr = new FileReader(src1);
FileWriter fw = new FileWriter(dest1);