1.面向过程和面向对象
面向过程开发,其实是面向具体的每一步骤和过程,将每个步骤和过程完成,后由这些功能方法相互调用完成需求。
面向对象开发,是不断创建对象,使用对象,指挥对象做事情。也就是管理和维护对象间的关系
2.类和对象
类是一组相关的属性和行为的集合。
对象是该类事物的具体体现。
3.成员变量和成员方法
成员变量就是事物的属性。成员方法就是事物的行为。
定义类其实就是定义类的成员(成员变量和成员方法)
4.成员变量和局部变量
在类中的位置不同:成员变量在类中方法外;局部变量在方法内或方法声明上
在内存中的位置不同:成员变量在堆内存;局部变量在栈内存
生命周期不同:成员变量随对象的存在而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,随着方法调用的完毕而消失
初始化值不同:成员变量有默认初始化值;局部变量没有默认的初始化值,必须先定义,赋值再使用。
5.匿名对象
没有名字的对象,即对象的一种简化表示形式。
使用场景:对象调用方法仅仅一次;作为实际参数传递
6.this和super关键字
方法被哪个对象调用,this就代表那个对象。代表奔雷对应的引用
super代表父类存储空间的标识
用法:
访问成员变量:this.成员变量;super.成员变量
访问构造方法:this(...);super(...)
访问成员方法:this.成员方法();super.成员方法()
7.构造方法
作用是给对象的数据进行初始化。
格式:方法名和类名相同;没有返回值类型;没有具体的返回值
注意事项:不提供构造方法时,系统自动给出构造方法;提供时系统不再提供;构造方法可重载。
8.基本类的标准代码写法
类
成员变量
构造方法
无参构造方法
带参构造方法
成员方法
getXXX()
setXXX()
成员变量赋值方式:无参构造方法+setXXX() / 带参构造方法
9.Student s = new Student():
在内存中所做事情为:
加载Student.class文件进内存
在栈内存为s开辟空间
在堆内存为学生对象开辟空间
对学生对象的成员变量进行默认初始化
对学生对象的成员变量进行显式初始化
通过构造方法对学生对象的成员变量赋值
学生对象初始化完毕,把对象地址赋值给s变量
10.static关键字
可以修饰成员变量和成员方法
特点:随着类的加载而加载;优先于对象存在;被类的所有对象共享;可以通过类名调用
注意事项:静态方法中没有this关键字;静态方法只能访问静态的成员变量和静态的成员方法
11.静态变量和成员变量的区别
所属不同:静态变量属于类,称为类变量;成员变量属于对象,称为实例变量(对象变量)
内存中位置不同:静态变量存储于方法区的静态区;成员变量存储于堆内存
出现的时间不同:静态变量随着类的加载而加载,随着类的消失而消失;成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同:静态变量可以通过类名调用,也可以通过对象调用;成员变量仅能通过对象名调用
12.代码块
在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。
局部代码块:在方法中出现;限定变量生命周期,及早释放,提高内存利用率
构造代码块:在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块:在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次