复习
第一章 类和对象
概念 类:具有相同属性和行为的一组对象的集合和抽象
系统定义的类 用户自定义的类
对象:具体的实例,类的实例化,有一组属性和方 法组成(万物皆对象)
关系 类的实例化是对象 对象的抽象是实例化
定义
[修饰符] class类名[继承][接口]{
属性。。。
方法。。。
}
第二章 方法
概念:是一段完成某种功能的代码的集合
作用:简化代码,提高程序的可读性,有利于代码之间的 共享
方法的定义
[修饰符]返回值类型 方法名(参数){
方法块
返回值类型
}
方法的调用
静态方法:有static 属于类
普通方法:没有static 属于对象
静态方法调用静态方法
类.方法 对象.方法 方法(默认缺省类)
普通方法调用普通方法
this.方法 对象.方法 方法(默认缺省this)
静态方法调用普通方法
只能使用对象的调用
返回值类型
有void则没有返回值
没有void则需要响应的类型接收
参数
有参数则传入相应的参数值接收
没有参数则直接调用
参数
形参:定义方法时,参数列表中的参数(形式参数)
实参:调用方法时,传递给形参的值(实际参数)
参数传递的方法:值传递(真实值、地址值)
值传递:实参值的副本传入方法内,而参数本身不受影响
重载
定义:多个方法的方法名相同,但参数列表不同
要求:方法名相同 参数列表个数不相同 参数列表类型不同 参数顺序不同
递归调用:调用自己的方法
第三章 构造方法
概念:用来初始化一个对象的内部对象的特殊方法(给 属性赋值)
作用:是完成对类和对象的初始化工作。
语法:
修饰符 方法名(参数列表){
方法体
}
注:方法名必须要和类名一样
特点:
1.方法名要和类名一致
2.没有返回值,也饿不能写void
3.不能被直接调用
4.如果程序员没有定义构造方法,系统会提供一个空 的构造方法,如果程序员定义了构造方法,怎系统 不再提供构造方法
5.在Java语言中,每个类至少有一个构造方法,如果 没有构造方法,则不能创建对象
重载:
概念:多个构造方法的名字相同,但是参数类型和个 数不同
构造方法的调用:
构造方法调用构造方法要使用this关键字
注:1.this参数在要放在第一行
2.不能在方法以外的地方调用构造方法
3.一个构造方法中只能使用一次this参数调用构 造方法
第四章 成员变量和局部变量
成员变量:在类里面定义的变量
成员变量包括(类属性和实例属性)
类属性:加了static的属性(与类共存亡),保存在全局数 据区
实例属性:没有加static属性(与实例(属性)共存亡), 保存在堆中
局部变量:在方法里面定义的变量
包括 形参:在整个类中有效
方法局部变量:在方法中,从定义开始到方法结束
代码块局部变量:在代码块中,从定义开始到代码块结束
成员变量在类中,局部变量在方法中
成员变量保存在堆和全局数据区,局部变量保存在栈
成员变量不用初始化系统会提供默认值,局部变量除 形参外都要初始化
java反射机制
定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
实现:
1.)class对象的获取
2.)获取class对象的摘要信息
3.)获取class对象的属性、方法、构造函数等
4.)class对象动态生成
5.)动态调用函数
6.)通过反射机制获取泛型类型
应用场景:
· 逆向代码,例如反编译
· 与注解相结合的框架例如Retrofit
· 单纯的反射机制应用框架例如EventBus 2.x
· 动态生成类框架例如Gson
优点
运行期类型的判断,动态类加载,动态代理使用反射。
缺点
性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。