java基础笔记04-面向对象

面向对象初级

  1. 方法重载:方法名必须相同形参必须不同(或顺序不同、或个数不同)。形参名称和返回类型无要求。
  2. 方法接收可变参数,可将同一个类中多个同名同功能但参数个数不同的方法封装成一个方法。形参类型后+...,可以接收0-多个参数。使用可变参数时,可以当作数组来使用。
  3. 可变参数的实参可以是数组。可变参数的本质就是数组。
  4. 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数放在最后。
  5. 一个形参列表中只能有一个可变参数。
  6. 全局变量有默认值,可以不赋值,直接使用。局部变量必须赋值后才能使用,因为没有默认值。
  7. 属性和局部变量可以重名,访问时遵循就近原则。
  8. 属性生命周期较长,伴随着对象创建而创建,对象销毁而销毁。局部变量生命周期较短,伴随着代码块的执行而创建,代码块的结束而销毁。
  9. 全局变量/属性可以加修饰符;局部变量不可以加修饰符。
    10.构造器的调用由系统完成。构造方法/构造器是类的一种特殊方法,主要作用是完成对新对象的初始化创建对象时,系统会自动调用该类的构造器完成对象的初始化
  10. 构造器没有返回值,也不能写void
  11. 构造器可以重载,一个类可以定义多个不同的构造器
  12. 如果没有定义构造器,系统会自动给类生成一个默认无参构造器
  13. javap class:可以用来反编译文件,class -> 类
  14. 一旦定义了自己的构造器,默认的无参构造器就被覆盖了,除非显式定义一下。
  15. 对象创建的流程分析:
  • 方法区加载类信息,只加载一次
  • 在堆中分配空间
  • 完成对象初始化,先默认初始化,后显式初始化
  • 构造器初始化
  • 对象在堆中的地址,返回给栈中的对象名
  1. java虚拟机会给每个对象分配this,代表当前对象。哪个对象调用,this就指向哪个对象。
  2. this的使用细节
  • 访问成员方法:this.方法名(成员列表)
  • 访问构造器:this(参数列表) 只能在构造器中使用。并且如果有调用构造器的语法,必须放在第一条语句
  • this不能在类定义的外部使用,只能在类定义的方法中使用。

面向对象中级

  • idea快捷键:自动分配变量名:通过在后面➕.var
    生成构造器
    查看一个类的层级关系
    删除、复制行
  • 使用模版快捷键
  • 包的本质就是创建不同的文件夹来保存类文件。
  • 包的命名规则:只能包含数字、字母、下划线和小圆点。不能以数字开头,不能是关键字或保留字。
  • 包的命名规范:com.公司名.项目名.业务模块名
  • java中常用的包
    java.lang.*//lang包是基本包,默认引入,不需要再引入
    java.util.*//工具包,工具类
    java.net.*//网络包,做网络开发
    java.awt.*//java界面开发
    导入包时建议使用到哪个就导入哪个,不建议全部用*全部导入
  • package的作用是声明当前类所在的包,放在类的最上面。
  • java提供四种访问控制修饰符
    public:公开
    protected:对子类和同一个包中的类公开
    default:对同一个包中的类公开
    private:私有,只有类内部自己访问
访问级别 访问修饰符 同类 同包 子类 不同包
公开 public
受保护 protected ×
默认 default × ×
私有 private × × ×

只有默认修饰符和public才可以修饰类。

  • 面向对象三大特征:封装、继承、多态
  • 继承的父类叫基类、超类;子类叫派生类
  • 子类必须调用父类的构造器,完成父类的初始化
  • 创建子类对象时不管使用子类的哪个构造器,默认情况下都会调用父类的无参构造器;如果父类没有无参构造器,必须用super指定使用父类的哪个构造器来完成父类的初始化,否则编译无法通过。
  • super使用时,必须放在构造器第一行,只能在构造器中使用
  • super和this都只能放在构造器第一行,所以他们不能在同一构造器中出现
  • Object类是所有类的基类
  • java中是单继承机制,最多只能直接继承一个父类
  • 继承不能滥用,子类和父类必须满足is-a的关系
  • `继承的本质分析``:子类继承父类,当创建子类对象时,内存到底发生了什么?子类创建时会建立和父类的查找关系。
    java基础笔记04-面向对象
上一篇:2021年秋季《大数据技术(省)》04任务


下一篇:10.flex-------04.移动端页面