1 面向过程
这种思想强调的是过程,凡事亲力亲为
2 面向对象
这种思想强调的是结果,面向对象是java及其重要的特征,java就是一门面向对象的语言
3 类
类指的是类型Type,是指一类事物,类时抽象的,要提取这一类事物的特点与功能,可以把类理解成 设计图纸,模板
4 对象
对象是根据类创建出来的具体实例,一个类可以创建出多个对象,对象通过地址值来区分
5 对象创建过程分析
Phone p = new Phone();创建对象时内存发生了什么?
- 在栈内存中开辟一块空间存放,Phone类型的引用类型变量p,把p压入 栈底,此时p只有一个默认值null
- 在堆内存开辟一块空间用于存放Phone类型的对象
- 要给这个对象进行初始化,比如:String brand = null;
- 此对象已经准备好,所以回生成一个唯一的地址值,并将这个地址值交给栈内存中的变量p保存起来
- 如果后续想要对对象操作,比如:p.price = 99.99;先找到栈中p变量保存的地址值,更具这个地址值找到堆内存中的对象再做进一步操作
6 面向对象的特征–封装
6.1 属性的封装
- 使用private修饰属性,一但属性被private修饰,就只能在本类用使用,外界无法访问
- 为了让外界能够按照我们提供的方式来调用,需要根据属性生成公共的getXX()与setXXX()方法
6.2 方法的封装
方法的封装也是使用private来修饰,如果想调用私有方法的功能,需要在本类的公共方法里调用这个私有方法
7 构造方法
7.1 格式
与类同名且没有返回值类型的方法
7.2 作用
构造方法用于创建对象时使用,每次创建对象时,都会自动触发构造方法
7.3 特点
- 每个类会默认提供一个本类的无参构造
- 构造方法也存在重载的现象(无参/含餐/全参)
- 我们是通过方法名 + 参数列表的方式来确定要调用那个方法
- 全参构造不仅可以创建对象,还可以给这个创建出来的对象属性赋值
- 如果添加了任意一个含参构造,默认的无参构造会被覆盖,所以需要手动添加无参构造
8 this关键字
- 当本类的成员变量与局部变量同名时,可以使用"this.变量名"的方式指定成员变量
- this还可以实现构造方法的调用,注意构造方法之间不可以互相调用,否则会死循环,除此之外,本语句必须写在构造方法的第一行
- this();代表调用的是本类的无参构造
- this(参数);代表调用的是本类的对应参数的构造方法
9 构造代码块与局部代码块
构造代码块 位置:类里方法外 作用:用于提取所有构造方法的共性功能 注意事项:每一次创建对象时才会触发,而且优先于构造方法执行
局部代码块 位置:方法里 作用:用于控制变量的作用范围 注意事项:只有调用局部代码块所处的方法时,局部代码块才会执行 执行顺序:构造代码块——>构造方法——>局部代码块
10 方法的重载
- 现象 :在同一个类中,存在多个方法名相同但是参数列表不同的方法
- 注意:我们这里所说的参数列表不同,指的是参数的个数,与参数名无关
- 注意:重载是为了使用时,传入不同的参数,也可以很好的匹配到同名的放方法来执行此功能
11 形参与实参
- 方法列表中的参数名就是一个形参,形参没有具体的值,调用方法时,传入什么值就是什么值
- 实参:是实际存在的参数,有自己明确要保存的值
|