20190831
类型
基本类型
- 整数
- 默认是int类型
- 小数
- 默认是double类型
- 字符(char)
- 布尔(boolean)
引用类型
基本类型以外的,都是引用类型
变量
声明long型必须在数据后加L或l
声明float型必须在数据后加F或f
输入输出
输入
输入主要是System.out.print()方法
System.out.print(内容); //不换行输出
System.out.println(内容); //输出后自动换行
输出
输出主要用到了Scanner类,用于告诉程序从哪里输入数据,可以是键盘、文件、网络等
Scanner scanner = new Scanner(System.in); //表示从键盘输入
scanner.nextLine(); //读取一行数据到字符串,遇到换行符终止
scanner.next(); //读取一个字符串,遇到空格或换行为终止
scanner.nextType(); //读取一个Type类型
判断与循环
if…else…
switch…case…
case 后跟的变量只能是整形和字符/字符串型
for…
while…
执行0或多次
do…while…
执行1或多次
数组
数组为引用类型,下标从0开始
声明
- 先声明,再赋值
Type[] varName = new Type[size];
- 声明时直接赋值
Type[] varName = {var1, var2, var3, ...};
字符串(String)
- 字符串是唯一一个值传递的**引用类型*
- 字符串比较内容时,使用equals()方法
str1.equals(str2)
- 常用方法
方法 | 功能 | 返回类型 |
---|---|---|
length() | 求字符串长度 | int |
toCharArray() | 转为char数组 | char[] |
charAt(int j) | 求第i个下标的字符 | char |
indexOf(String s) | 求s在字符串的起始位置 | int |
trim() | 去除前后空格 | String |
异常(try…catch…finally…)
try{
//可能出错的语句
catch(错误情况){
//出错后的处理方法
}
catch(错误情况2){
//出现错误2时的处理方法
}//可以由多个catch
finally{
//无论try是否正确,都会执行
}
- 将可能出错的语句,放在try语句块内
- 将可能的错误情况,由catch捕获,并在catch语句块内写错误后的处理方法
- finally语句块会无论try是否执行正确都会执行
面向对象
类
类包含属性和方法
属性:类中的非局部变量
方法:类中的函数
方法
构造方法
- 一种特殊的方法,用于初始化对象
- 没有返回类型和返回值
- 不能被手动调用
- 方法名和类名相同(相同/不同)
重载(Overload)
方法名相同,但是参数类型不同或参数个数不同
重载主要发生在同一个类里面
面向对象的三大特征
封装
- 让其他类不能随便修改本类的属性
- 对外部类提供尽可能少的public方法
继承
- 包含父类非private的所有属性和方法
- 可扩展自己的方法
- 只允许单继承(即只能有一个父类)
重写(Override)
- 父类的某方法不能满足要求,可以把该方法重写。
- 该方法的声明必须于父类完全相同,作用域不小于父类的该方法
- 发生于子类,注意与重载的区别
多态
同一方法,传进来的参数类型不同,结果就会不同。
该参数类型应设置为这些类型的父类
向上转型
子类转为父类,自动转型
向下转型
父类转为子类,必须强制转换
抽象与接口
抽象方法
只有声明,没有具体内容的方法
声明
声明与普通方法相同,在前面加abstract
关键字
abstract 作用域 返回类型 方法名();
抽象方法没有大括号,最后以分号结尾
抽象类
包含抽象方法的类就是抽象类
抽象类不能被new
声明
声明与普通方法相同,在前面加abstract关键字
作用
告诉子类可以执行哪些方法,但没有规定具体内容
使用
继承抽象类和继承普通类一样,使用extends
接口
一个很特殊的类,只包含abstract public
方法
作用
类只能被单继承,但是接口可以被多继承
作用与抽象类类似
与抽象类的区别
- 抽象类
- 只能被单继承
- 可以包含普通方法
- 抽象类可继承抽象类和接口
- 子类不必重写该抽象类的抽象方法
- 接口
- 可以被多继承
- 所有方法都是公开的抽象方法
- 接口只能继承接口
- 子类必须重写该接口的所有方法
使用
继承接口的关键字为implements