JavaBean和构造方法、常用的关键字

一个JavaBean类包含三部分内容:

  1. 成员变量私有化
  2. 对应的Getter和Setter方法
  3. 有空参构造方法

JavaBean类称之为Java的标准类
JavaBean升华版

  1. 成员变量私有化
  2. 对应的Getter和Setter方法
  3. 空参构造方法
  4. 全参构造方法
  5. 重写的toString()方法
  6. 重写的equals()方法
  7. 重写的hashCode()方法
  8. 序列化 实现序列化接口 Serializable

备注:
JavaBean类当中不要出现业务型代码

构造方法:
它是类当中的一种非常特殊的函数。
特点:

  • ①方法名称是确定的,它的名字必须和它所在的类的类名完全保持一致(大小写也要相同)
  • ②构造方法在声明时不指定具体的返回值类型 (不是void)
  • ③如果在类当中没有手动声明构造函数,程序会默认添加一个构造函数(空参构造),但是如果开发者手动声明了构造方法,那么系统会自动收回添加的无参构造方法。
  • ④如果想要使用类当中的带参构造方法,需要开发者手动声明。
  • ⑤构造方法可以以方法重载的形式出现在同一类中

语法格式:
  修饰符 类名(参数列表){ } 个数--[0,n]
备注:
  大多数情况下,构造方法的修饰符都是使用public
意义:

  1. 可以通过构造函数实例化该类对象
  2. 在实例化类对象时可以对对象当中的成员变量进行初始化

备注:
  如果类当中对Object类当中的toString()方法进行重写,当我们打印对象时,程序会自动调用toString(),并且调用的是重写之后的toString()方法

父子类构造方法

  1. 只能继承默认无参构造,父类当中的带参构造子类获取不到
  2. 在子类创建对象的时候,隐式的调用父类的构造方法,完成父类的实例化
  3. 调用父类的构造方法时,super(参数列表)语句只能出现在子类构造方法内部的第一行有效语句位置上,同时不允许通过new 父类名(参数列表)的形式进行父类初始化动作
  4. super(参数列表)语句它只能出现在构造方法内部,不能写在其他位置上。
  5. 父类的构造方法和子类的构造方法可以不一致

常用关键字:
  super关键字
    当前子类对父类的一个引用(父类对象地址)
    不能在静态环境中使用,使用规则和this一样的
    引用父类的成员变量: super.成员变量名;
    引用父类的成员方法: super.成员方法(参数列表值);
    引用父类的构造方法: super(参数列表)---->指的是它的直接父类
  final关键字:
    表示最终的,最后的,不可变的
    1.当final修饰类的时候,表示该类是一个最终类,意思是他不能有子类出现
    2.当final修饰方法的时候,表示该方法是一个最终方法,意思是该方法不能被重写。
    3.当final修饰变量的时候,表达该变量的值是一个最终值,意思是该变量的值不能再次修改。
    备注:
      final修饰局部变量,只能够赋值一次,当修饰的是引用的类型的时候,不能被重新赋值,但是可以修改对象的属性值
      final修饰成员变量,只能够赋值一次,但是可以在不同的地方进行赋值(可以在构造方法中也可以在构造代码块中)
  static关键字:
    表示静态的,属于类的
    1.被static修饰的成员变量属于类,不属于这个类的某个对象(多个对象共享一个static修饰的成员变量)
    2.在静态环境(被static修饰)中只能直接使用静态的信息,不能直接使用非静态的信息在非静态环境中,可以直接使用静态的信息,当然也可以使用直接使用非静态的信息
    3.在静态环境中不能使用this/super关键字


代码块:
  局部代码块
    随着方法的加载而加载                  { }    定义在方法中
  构造代码块:
    随着构造方法的加载而加载(优先于构造方法加载)    { }    定义在成员变量的位置上
  静态代码块:
    随着类的加载而加载(只会加载一次)                       static{ }      定义在成员变量的位置上
        静态代码块-->main()--->构造代码块--->构造方法
    在父子类当中
      加载环境在子类中进行:
        父类静态代码块--->子类静态代码块--->main()--->父类的构造代码块--->父类的构造方法--->子类的构造代码块---->子类的构造方法
  访问修饰符:
              public      protected      默认不写      private
  当前类中           √          √         √            √
  当前包中(其他类中)       √          √         √             x
  不同包的(子类当中)       √            √(子类对象)      x                  x
  不同包的(无关类当中)      √          x         x             x  

posted @ 2022-06-29 19:32  丨卟离  阅读(408)  评论(0)    收藏  举报