Java语言中的static类和类与类之间的总结

1、static类数组

  一、static类的定义学习

    static被称为静态,能够用来修饰类的属性或方法。spa

    若是类的某个属性,无论建立多少个对象,属性的存储空间只有惟一的一个,那么这个属性就应该用static修饰,被static修饰的属性称为静态属性。日志

    static属性可使用对象调用,也能够直接用类名调用。对象

    静态属性的类的因此对象共享的,即无论建立了多少个对象,静态属性在内存中只有一个。blog

    public class Employee{继承

      private String name;--------------------------非静态类接口

      private double salary;------------------------非静态类生命周期

      private static int count;-----------------------静态类内存

}

  二、static方法定义

     若是某个方法不须要与某个特定的对象绑定,那么该方法可使用static修饰,被static修饰的方法称为静态类方法。

    访问权限   static修饰符   返回值类型  方法名

    public    static    void   sellticket(){

      System.out.println("全部火车票都是12306卖的!")

}

  三、static方法可使用对象调用,也能够直接用类名调用建议用类名直接调用

  四、什么时候使用static方法

     若是某个方法与实例无关,也就是说无论那个对象调用这个方法,都执行相同的操做,与对象没有关系,则应该定义为静态方法。不须要建立对象后在使用该方法。

     如:API中的Math,都是静态方法,由于进行数学运算,与Math对象自己无关,使用类直接调用便可。

     任何方法均可以直接调用静态方法;

     静态方法不能直接调用静态方法,须要建立对象,用对象名调用非静态方法

  五、static块

     static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

     区别在于语法不一样。

     static块语法:直接在代码块前加上关键字static即成为静态块。

     static用途

    1)、静态块只有在类加载的时候被执行一次,无论建立多少个对象,都不会再执行。

    2)、若是一个类加载的时候,总要预先作一些事情,则能够放在静态块中,例如,读取一个属性文件,进行一些常规配置,写一些日志等。

    3)、一个类中能够有多个静态块,按照顺序执行。

2、final  

  一、final用于定义声明属性,方法和类

     属性:定义就必须直接赋值或者在构造方法中进行赋值,而且后期都不能修改。

     方法:定义必须有实现代码,而且子类里不可被继承。

     类:不能被定义为抽象类或是接口,不可被继承。

  二、final修饰属性

     当final修饰属性时,基本数据类型的属性将成为常量,不能被修改

     一些数学定理中的常量常用final修饰

  三、final属性的赋值

     在声明时同时赋值,每每与static一块儿使用

     在声明时不赋值,必须在构造方法中逐一赋值

     总的原则:保证建立每个对象的时候,final属性得知是肯定的

例:

        

  四、final修饰参数

     在方法参数面前加final关键字,为了防止数据在方法体中被修改。

 

3、类与类的关系

  一、关联关系

     1)、关联关系定义

     对象和对象之间的连接。在Java中,关联关系的代码表现形式为一类作为另外一类的属性类型存在。

     即“有”的关系:"has-a".

     2)、关联关系的方向

    单向关联:A类关联B类。

    双向关联:A类关联B类,B类关联A类;例:

  

      3)、关联关系的多重性

    一对一关联:一个学生只能在一个班级学习。

    

     一对多关联:一个学生,能够参加多个班级学习

  解决方案:集合与数组

     

  二、依赖关系

     1)、依赖关系定义(use-a)

    指一个类A使用到另外一个类B

     2)、依赖关系的特性

    这种关系是具备偶然性的、临时性的、很是弱的,可是类B的变化会影响到类A。

     3)、依赖具体表现

    在代码层面,依赖关系表现为类B做为参数被类A在某个method

    方法中使用

    

  三、关联与依赖的区别

    关联是“HAS”关系,依赖是“USE”关系

       A类关联B类,指的是B类对象做为A类的属性存在,称为“has”关系。

       A类依赖B类,指的是B的对象做为A类的方法参数存在,称为“use”关系。

    生命周期不一样

       若是A类关联B类,那么建立A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。

       若是A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时建立,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。

相关文章
相关标签/搜索