面向对象
一种相对于面向过程的思维方式,当完成一个功能时 ,不考虑如何完成,而是考虑哪个对象具备这个功能.
特点
1.更符合人们的思考习惯
2.将复杂的问题简单化
3.我们从执行者变为指挥者
三大特征
1.封装:定义一个标准类\n
2.继承: 让类与类之间产生关系\n
3.多态
面向过程
完成一个功能时 自己亲历亲为 完成每一步
类
对现实事物的抽象描述 现实事物都具备属性和功能\n 用类的成员变量 来描述事物的属性 用类的成员方法来描述事物的功能
对象
根据类的描述 创建出来的具体的实例
成员变量与局部变量
成员变量:定义在成员位置的变量
局部变量 : 定义在方法内 或者代码块内的变量
区别
1.定义位置不同\n
成员变量定义在成员位置\n 局部变量 定义在方法内 或者代码块内\n 2.作用域不同\n 成员变量在整个类中都生效\n 局部变量 只在对应的方法中 定义后生效
3.默认值\n 成员变量有默认值\n 整数 0\n 小数 0.0\n 字符 空格\n 布尔 false\n 引用类型 null\n
局部变量没有默认值 必须先赋值后使用
4.内存中的位置不同\n
成员变量随着对象进入到堆内存\n
局部变量随着方法进入到栈内存
5.生命周期不同\n
成员变量随着对象的创建为产生 随着对象的销毁而销毁\n
局部变量随着方法的进栈而产生 随着方法的弹栈而销毁
变量的就近访问原则
同作用域下,成员变量与成员变量不能同名,局部变量与局部变量也不能同名,成员变量可以与局部变量同名,当我们使用一个变量时 会先在局部范围内找 有没有这个变量,如果有直接使用 如果没有则会到成员位置找 有没有这个变量;如果有直接使用 如果没有 编译报错
this可以帮助我们区分成员变量 和局部变量
private访问权限修饰符
私有权限 可以修饰类的成员,被private修饰的成员只能本类中使用 外界不能使用
构造方法:创建对象时 调用的方法
格式
构造方法的定义格式 修饰符 类名(形参列表){\n }\n 构造方法可以重载 一般情况下 在学习阶段我们定义两个构造方法\n 一个是空参构造方法\n 一个是满参构造方法 为了给成员变量赋值\n
注意 :如果一个类一个构造方法都不写 java会默认提供一个空参构造方法;如果在一个类中写了任意一个构造方法 java都不会提供空参构造方法了
快捷键 alt+insert------->constructor alt+insert---------->geter snd setter
JavaBean
如果一个类具有私有的成员变量 空参的构造方法 get/set方法,那么就可以称这个类为javaBean类
this
一般在方法内使用,代表当前对象的使用,谁调用方法,谁就是当前对象
封装
隐藏实现细节 提供公共的访问方式