面向过程:当需要实现一个功能时,每一个具体的步骤都要亲力亲为的详细处理到每一个细节
面向对象:当需要实现一个功能时,不关系具体的实现步骤,而是找一个已经具有该功能的人帮我做事
Static :静态关键字,静态成员方法和变量的访问可以直接通过类名访问,非静态要通过创建对象来进行访问
Private :一种访问控制方式:私有模式
protected:一种访问控制方式:保护模式
public:一种访问控制方式:共用模式
extends:继承关键字
面向对象编程的三大特征
封装:把对象的属性和操作结合为一个独立的整体,使得数据的访问只能通过接口访问,
好处1.良好的封装能减少耦合
2.类内部的结构可以自由修改
3可以对成员变量进行更精确的控制
4.隐藏信息,实现细节
继承:java中的继承就是子类继承父类的行为和特征,使得子类具有父类的各种属性和方法,或子类从继承的方法,使得子类具有分类相同的行为
(一个子类只能有一个直接父类,但是父类同样可以是另一个类的子类)
多态:多态是同一个行为具有多个不同的形式或形态的能力多态是一个接口,使用不同的实例而执行不同操作
多态存在的三个必要条件 继承,重写,父类引用指向子类对象
选择结构:
If(){
}else{
}
Switch(表达式){
Case 值1::
语句1
Break;
Case 值1::
语句1
Break;
Case 值1::
语句1
Break;
Drfault:
语句n
Break;
}
循环结构
For(i=0;i<=n;i++){
//语句
}
do...while循环先执行一次再去判断条件,也就是说不管满不满足条件,都会先执行一次,执行次数最少1次;while循环必须先判断条件,满足了才执行,最少执行次数0次。
int j=0;
while (j==0) {
j++;
}
break | 跳出整个循环体 |
continue | 跳出此循环,开始循环体的下一个循环 |
方法:方法的最大好处是可以进行重复调用
方法分为有返回值,和无返回值,有参,和无参
有返回值
public static 返回类型 方法名称([参数类型 变量, ......]) {
方法体代码;
[return [返回值];]
}
无返回值
public static void 方法名称([参数类型 变量, ......]) {
方法体代码;
}
方法重载 overload
方法名称相同,但参数列表不同
在进行方法重载的时候有一个重要的原则:要求方法的返回值类型一定要相同。
数组分为动态初始化,和静态初始化
数据类型[] 数组名称 =new 数据类型[数组长度]】
数组索引越界,访问数组元素时,索引不存在时,会发生数组索引越界
对象数组:存储空对象
ArrayList<泛型> list = new ArrayList();
List.add()添加元素
List.get()获取摸一个元素
List.remove()删除某一个元素
List.size()元素个数
ArrayList.toString(数组):将int数组按照默认格式转换为字符串
ArrayList.sort(数组)将int数组的内容按照升序进行排序
比较
对于基本数据类型来说,==是进行数值类型的比较
对于引用类型:==是进行地址值的比较
字符.equals(str)进行字符比较返回值为布尔型
字符.Length()获取字符串的长度
String 获取concat( string Str),两个字符串拼接为第三个字符串
字符.indexof(string str )查找参数在本字符串中首次出现的位置
Substring(int index)从参数位置到结尾
Substring(int begin,int end)从begin位置到end结束
字符串的转换方式
toCharArray()将当前字符串拆分成字符数组
getBytes()获取当前字符串底层的字符数组
replace(char sequence oldString,char sequence newString ),将所有出现老字符串的位置替换为新字符串
sqlit()字符串按照规则分割
成员变量和局部变量的区别
(1)在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同
成员变量:在堆中
局部变量:在栈中
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
成员变量:有默认值
局部变量:没有默认值,必须定义,赋值,然后才能使用
标准的类
1所有的成员变量都要使用private的关键字修饰
2.每一个成员变量的编写都要进行getter/setter方法的添加,和toString
3.编写一个无参的构造方法
4.编写一个有参的构造方法
Scanner键盘输入类(system.in)键盘输入
对象名.成员方法名
- public int nextInt():获取一个int类型的值
- public String nextLine():获取一个String类型的值
匿名对象
- 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
- 创建匿名对象直接使用,没有变量名。
- 匿名对象在没有指定其引用变量时,只能使用一次。
- 匿名对象可以作为方法接收的参数、方法返回值使用
New 类名称().成员变量/方法名
Random()随机数
局部变量和成员变量同名时,用this关键字访问成员变量
构造方法:
构造方法的名称必须和类名称必须完全一致
一般定义对象应该具有的功能,构造函数的定义是在对象调用功能前,在建立时,应具有的一些内容,也是对函数的初始化内容
构造方法不能有返回值
构造方法也是可以重载的
当两个引用指向同一个对象时,只会占用一个内存
Static静态关键字,在类中保存本类中所有对象的共享数据
使用static修饰成员方法,方法就成了静态方法,静态方法不属于对象而是属于类的方法
在读取static方法是不需要创建对象只用 类名.方法名()即可调用
静态代码块
Static{
//静态代码块内容
}
静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。
数学工具类
Math.abs()获取绝对值
Math.ceil()向上取整
Math.floor()向下取整
Math.round()四舍五入
异常处理
多个异常一次处理
多个异常成那个多次处理
多个异常一次捕获,一次处理
处理方法
Try catch finnly
Finnly中是必定执行的
2.异常抛出alt+enter
Throw