你的位置:首页 > Java教程

[Java教程]类的构成


类的构成有以下部分构成:
    代码段
  动态代码段
  静态代码   

  成员变量
  静态变量
  局部变量
  常量
  成员方法
  静态方法
  构造方法
  this(对象)
  super(对象)

下面对类里面的东西进行一一分析,可以更清晰的理解Java类的构成

代码段:

    一个完整的大括号就是一个代码段,就代表了一段独立的内存空间,空的也是个代码

动态代码段:
    1、就是没有任何修饰的一对大括号{}
    2、也就是写记录日志,还就是性能测试

静态代码段:
    1、用static修饰的一对大括号static{},是在类加载阶段就运行的代码段            
    2、写日志用,用于记录类被调用的时间的数据

成员变量:
    1、每个对象中的值都是不一样,但是也可以一样
    2、保存的位置:堆内存,堆内存的大小是动态分配
    3、赋值时间:一般情况下在实例化之前是空值,没有赋值的
                在实例化的时候赋值,调用对应的构造方法对成员变量赋值,也可以不赋值,编译器会给默认值。通过调用成员变量进行赋值也可以
                和局部变量的区别:局部变量必须声明就赋值,要不然会报错。
                也是引用数据类型中,多态发生的时候
    4、关联关系:成员变量的值是另外一个类对象的引用
    5、调用:对象名.成员变量名。类名不可以调用成员变量,静态上下中不可以调用非静态属性

静态变量:
    1、是属于类级别的,每个对象中的都一样
    2、保存位置是静态数据区
    3、最好在声明的时候就赋值
    4、调用:类名.静态变量名

局部变量:
    1、在方法中生命的变量是局部变量,并且生命的时候,就必须赋值
    2、局部变量优先级大于成员变量的优先级
    3、方法的形参列表也是局部变量
    4、局部变量和循环体重的变量不可以重名
    5、依赖关系:局部变量的值是另外一个类对象的引用

常量:
    1、声明:public static final 数据类型 大写_ = 值;
    2、在整个软件生命周期中,值不会改变
    3、在接口中,psf可以省略
    4、调用:类名.常量名

成员方法:
    1、没有static修饰的方法叫成员方法
    2、调用:对象名.成员方法名(实参列表);
    3、多态:方法生命的时候,形参列表中是父类或是借口
             调用的时候,传的是子类对象的引用

静态方法:
    1、用static修饰的方法
    2、调用:类名.静态方法名(实参列表);
    3、保存在静态代码区中
    4、不能再静态方法中调用非静态的成员属性

构造方法:
    1、用于在类实例化中,创建当前类对象的方法(实例化当前类对象)
    2、默认是:公共的,静态的,没有返回值的,名字和类名一样的
    3、在实例化中,一般用于实例化成员变量
    4、注意:  单例模式中的使用
               构造的重载,对不同的成员变量进行赋值
               不可以被继承复写,但是可以被调用,super()
               接口中没有构造方法,因为接口就是用类实现的,不需要构造方法,接口不能被实例化
               抽象类中有构造方法,用于子类实例化父类对象super()

this(对象):
    1 给成员变量加前缀,然后复制
    2 用在构造方法中,重载调用本类中别的构造方法,this()重载调用的时候,必须写在构造方法的第一行
    3 用于表示本类的对象,里面保存了本类的地址,this位于堆内存中第一个内存片中
    4 在堆内存中,我们有堆内存中第一个内存片的内存地址作为整个对象的内存地址,并且命名为this

super(对象):
    1 super代表的是当前子类对象中的父类型特征
    2 在子类的构造方法重载调用父类别的构造方法的时候,必须写在第一行
    3 super()和this()不能重复出现
    4 super可以用来调用父类的成员属性和成员方法


在上面的说明中,有两个字出现的频率很高:调用。其实类最主要的作用就是:代码复用

类对象之间的6中关系:
    1 继承
    2 实现
    3 依赖:局部变量是另外一个类对象的引用
    4 关联:成员变量是另外一个类对象的引用
    5 聚合:类中的集合中的元素是另外一个类对象的引用
    6 组合