关于高级类特性修饰符、类间关系,API概念浅析

来源:互联网 发布:手机vpn代理软件 编辑:程序博客网 时间:2024/05/16 12:28

高级类特性修饰符

Static

称为静态,可以修饰属性、方法、类、内部类

属性

可以使用对象或类名调用,静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个

方法

如果某个方法与实例无关,也就是说不管哪个对象调用这个方法,都执行相同的操作,与对象没有关系,则应该定义为静态方法。不需要创建对象后再使用该方法

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

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

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

静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行

 

 

final

用于声明属性,方法和类

 

属性

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

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

方法

定义必须有实现代码,并且子类里不可被覆盖

在方法中使用效果

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

 

类与类的关系

 

关联关系

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

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

分为单向关联(A关联B)和双向关联(A关联B,B关联A)

 

关联关系的多重性——一对一关联和一对多关联

例:

一对一关联---一个学生只可以在一个班上课

一对多关联---一个学生在多个班级学习

 

 

关联关系的特殊性

如果两个互相关联的类中有整体和部分的关系,关联关系分为: 聚合和组合,主要区别在于生命周期不同

Team和Player是关联关系,聚合关系中,相互独立不影响;当Player属于Team也就是双方属于组合关系时,创建Team对象时Player类同样创建, Team对象销毁时,Player对象也销毁

 

依赖关系

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

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

例:

   public  class Person {

   public void travel(Bus bus){

   }

   }

 

 

API(Application Programming Interface应用程序编程接口)

是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节

 

数学API(Math类)

位于java.lang包中,数学类定义了许多数学函数。

这个类有两个静态属性:E和PI。E代表数学中的e 2.7182818,而PI代表圆周率3.1415926

Math类中的方法都是static方法,调用静态方法可以直接使用类名.方法名来调用,不需要先创建类的一个对象

 

 

时间与日期日历

Java中日期的常见处理

1.创建日期

2.日期格式化显示

3.日期的转换(主要是和字符串之间的相互转换)

4.日期中年、月、日、时、分、秒、星期、月份等获取。

5.日期的大小比较、日期的加减。

 

 

大整数对象(BigInteger类)

为了解决数的范围有限问题,提供了用来进行不限制大小的整数计算的类——java.math.BigInteger。该类可以对任意大小的整数进行操作

在进行计算的时候是通过方法调用进行的,而不是使用算术运算符

 

 

随机处理(Random类)

Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字

  相同种子数的Random对象,相同次数生成的随机数字是完全相同的

 Random r1 = new Random(10);

Random r2 = new Random(10);

 for(int i = 0;i < 2;i++){

     System.out.println(r1.nextInt());

     System.out.println(r2.nextInt());

 }

在该代码中,对象r1和r2使用的种子数都是10,则这两个对象相同次数生成的随机数是完全相同的。

 

国际化支持

分为两类

1.java.util.Locale:用于封装一个特定的国家/区域,语言环境

2.java.util.ResourceBundle:用于加载一个国家,语言资源包