面向对象的三大主线

  1. 类和类的成员
    1. 属性
    2. 方法
    3. 代码块
    4. 构造器
    5. 内部类
  2. 面向对象的三大特征
    1. 封装
    2. 继承
    3. 多态
  3. 其他关键字

    1. static
    2. package
    3. this
    4. super
    5. implements
    6. abstract
    7. final
    8. import

      1. 面向对象的两个要素

  4. 类 对一类事物的描述抽象的

  5. 对象 实际存在的个体

    面向对象主要是类的设计和类成员的设计 类的成员: 1.属性 (成员变量 field) 2方法 (成员方法 method)

2. 类的创建和实例化

属性和局部变量的区别

  1. 相同点
    1. 申明格式相同
    2. 都是先申明后使用
    3. 都有自己的作用域
  2. 不同点
    1. 在类中声明位置不同
      1. 属性写在类内方法外
      2. 局部变量 形参、代码块 、方法内、 构造器
    2. 权限修饰符不同
      1. 属性在声明是可指定其权限修饰符 public private protected 缺省
      2. 局部变量没有
    3. 初始化值
      1. 局部变量没有默认初始化值 调用前必须显式赋值
      2. 属性有
    4. 内存中加载的位置不同
      1. 局部变量在 堆空间中
      2. 属性在栈空间中(非static)

类和对象的创建和执行有哪三步

  1. 创建类
  2. 创建类的对象
  3. 调用对象的结构(属性或方法)

3. 匿名对象

  1. 理解:创建对象时,没有给对象显式的赋值
  2. 特征:只能调用一次
  3. 使用:—-

4. java类的方法

1. 方法的重载

  1. 概念

在类中可以存在多个同名的方法,只要他们参数数量或类型不同即可

  1. 特点

和返回值无关,只看参数列表,参数个数和参数类型

  1. 实例

    两同一不同 类、方法名相同 参数个数或类型不同


2. 可变形参方法

  1. 格式:

public void test(String… str) {}

  1. 参数可以为0个
  2. 和其他同名方法构成重载
  3. 可变个数形参必须声明在末尾
  4. 只能有一个可变形参

    3. 方法的值传递机制

  5. java 方法参数传递的机制只有一种 值传递

  6. 基本数据类型变量保存的是数据的值
  7. 引用数据类型变量保存的是数据的地址

    4. 递归方法

  8. 自己调用自己

  9. 递归是一种隐式的循环重复执行某段代码
  10. 不能出现死循环

5. 面向对象封装隐藏

1. 封装性

1. 封装性体现

将类的属性私有化(private),提供公共方法(public)来获取(getXx)或设置(setXx)属性的值

2. 不对外暴露私有方法

3. 单例模式

2. 权限修饰符(四种)

  1. private
  2. 缺省
  3. protected
  4. public | 修饰符 | 类内部 | 包内部 | 不同包子类 | 同一个工程 | | :—-: | :—-: | :—-: | :—-: | :—-: | | private | yes | | | | | 缺省 | yes | yes | | | | protected | yes | yes | yes | | | public | yes | yes | yes | yes |
  1. class的修饰符 只能是public 或者缺省
  2. default类只能被同一个包的类访问
  3. 四个权限修饰符号 可修饰 属性 方法 构造器 内部类

3. 构造器

1. 构造器的作用

  1. 创建类的对象
  2. 初始化对象的属性

    2. 构造器的细节

  3. 修饰符 类名 (参数)

  4. 可以定义多个构造器
  5. 多个构造器之间形成重载
  6. 如果没有显式定义构造器 系统提供无参构造器 如果定义了有参构造器 系统就不再提供
  7. 一个类中一定有一个构造器

    4. java Bean

    1. javabean 条件

  8. 类是公共的

  9. 有个公共的无参构造器
  10. 有属性 且提供属性的get set 方法

    5. java this

    1. this关键词使用

  11. 可修饰 属性、方法、构造器

  12. 修饰属性和方法时可理解为当前对象
  13. 在类的方法中 可以使用 this.field this.方法 通常省略,如果形参和属性名相同是必须显示的使用this
  14. this.调用构造器 可以使用 this() this(参数)
  15. this(参数) 这种形式 必须出现在构造器的首行

    6. package import

  16. 为了更好的管理java的类

  17. 使用package 声明类或者接口所属的包 声明在源文件的首行
  18. 遵循标识符的命名规范、简明知意
  19. com.dong.controll 没点一次 代表一层目录
  20. 同一个包下不能命名同名类或者接口

  21. 我们可以使用import 导入指定包下的类