- 对象与类联系:类是对象的模板,对象是类的实例
- 面向对象三大特性 封装、继承、多态(抽象)(接口)
- 面向对象设计和开发程序的好处
- 交流更加流畅
- 提高设计和开发效率
- 构造方法:无返回值,方法名与类名相同
- 作用:用来进行初始化操作
- 创建构造方法
- 1、右键Generate-->Constructor
- 2、选中类名 点击OK 生成无参
- 3、选中属性 点击OK 生成有参
- 注意事项:
- 系统提供默认无参构造方法,如果显式给此类创建一个有参或无参构造函数,隐式的无参构造函数就会消失。
- 如果一个类没有无参构造函数,那么在实例化对象时会报错,除非指定系统调用该类的有参构造函数。
- 什么是方法重载?
- 同一个类中,方法名相同,参数类型、个数不同,顺序不同与返回值无关。
- 封装:隐藏内部细节,提供对外接口的访问
- 封装的好处:
- 只能通过规定方法访问数据
- 隐藏类的实现细节
- 方便加入控制语句,方便修改实现
- 步骤
- 修改属性可见性 ---> 设为private
- 创建公有的getter/setter方法 --> 用于属性的读写(添加getter/setter方法的快捷键Shift+Alt+S+R)
- 在getter/setter方法中加入属性控制语句 --> 对属性值的合法性进行判断
- 面向对象和面向过程的区别:
- 面向对象:强调具备功能的对象,以类或对象为最小单位,(谁来做)
- 面向过程:强调功能行为,以函数为最小单位,(怎么做)
- 用面向对象的思想描述世界
- ①发现类(根据对象 抽象出类)
- ②发现类的属性(找出名词)
- ③发现类的方法(找出动词)
- this关键字
- 是对一个对象的默认引用,这里用以区分同名成员变量。
- 注意:调用构造方法时,必须是构造方法中的第一条语句
- 用final修饰的变量称为常量,其值固定不变
- static修饰符(可以原来修饰属性、方法和代码块)
- 1、类中可以用静态方法和属性,方法中不可以定义静态变量(类变量不能是局部变量)
- 2、静态类无法实例化
- 3、静态方法无法访问静态属性,也不能只有this和super关键字
- 4、静态类中方法及属性必须全为静态 包
- 调用可以实例化调用,也可以使用类名调用
- Java中是不允许使用static修饰一级类,只能修饰内部类
静态变量是不能定义在方法中包含的静态方法,因为静态变量只属于类不能属于某个方法
- 包命名规范
- 只能包含数字、字母、下划线,不能以数字开头,不能是关键字和保留字
- 由小写字母组成,不能以圆点开头或结尾
- 举例:
- com.ll.oa.user //用户模块
- com.ll.oa.order // 订单模块
- com.ll.oa.utils //工具类
- 查看类图:
- 在类中选中类名
- 右键Diagrams
- show Diagram
- 点击类图中左上角的f和m图标 展示字段和方法
- 创建类图:
- 选中类所在的包
- 右键-->new-->Diagram-->Java class Diagram
- 确定类图存储的位置
- 把要查看的类 拖入类图中
- 点击类图中左上角的f和m图标 展示字段和方法
- 局部变量和成员变量
- 定义的位置
- 局部变量:在方法的内部
- 成员变量:在方法的外部,直接写在类当中
- 作用范围
- 局部变量:只有在方法当中才可以使用,出了方法就不能再用了
- 成员变量:整个类全都可以通用
- 默认值
- 局部变量:没有默认值,如果要想使用,必须手动进行赋值
- 成员变量:如果没有赋值,会有默认值,规则和数组一样
- 内存的位置
- 局部变量:位于栈(Stack)内存
- 成员变量:位于堆(Teap)内存
- 生命周期不一样
- 局部变量:随着方法进栈而诞生,随着方法出栈而消失
- 成员变量:随着创建而诞生,随着对象被垃圾回收而消失
- 定义的位置