在类中定义实例常量,它是属于对象,有三种初始化方式:
1、 直接赋值
2、 构造器中初始化
3、 实例代码中初始化
无论哪种方式,只能初始化一次;
静态常量;用static关键字修饰的常量,称为静态常量;
静态常量的初始化方式:
1、 直接赋值;
2、 静态代码块:用static关键修改的代码块{}
思考一个问题,静态常量能否在构造器中赋值?不能赋值!为什么?
因为静态成员是属于类的,为所有对象所共有,而又不依赖于任何一个对象,即与单个对象无关。既然与对象无关,而构造器是用来构造对象的,所以在静态数据初始化的时候还没有调用构造方法;
静态代码块、实例代码块、构造三者的调用顺序为:
静态代码块 > 实例代码块 > 构造器
静态代码的作用:
块中的代码在类被载入到内存中时,静态代码块中的代码就会执行;
在Java的单个类中,共有哪些成员:
1、 实例字段和静态字段
2、 实例方法和静态方法
3、 可以重载的构造器
4、 toString()
5、 equals()和hasCode方法
6、 只在类中使用的方法,访问为私有
7、 setter和getter
8、 实例常量字段,静态常量字段
9、 实例代码块
10、 静态代码块
11、 this,在类中可以用this来进行方法之间的互相调用
注意:
在访问级别允许的情况下,对于静态成员(字段和方法),如果没有对象,只能用类名访问;
如果存在对象,可以用对象(强烈建议不要这么做);对于实例成员(字段和方法),只能用对象访问,如果没有对象,则无法访问。
关于访问级别问题:
如果一个方法的可见范围为整个项目,则方法为必须为公有,且所在类也必须为公有,例如工具类;
如果一个类能够在项目中可见,而方法在包中可见,则类为公有,方法为默认访问,保护性访问均可;
如果一个成员的访问级别为私有,则只能在类中被访问,为类访问级别;
另外注意:
设计的顶层类不能为私有,因为如果一个顶层类设计为私有,那么没有任何途径能够访问这个类,此类的设计没有任何意义。
final的一个用法:
使用实体类Name.java:
Name n1 = new Name("张", "无忌");
System.out.println(n1);
n1.setLastName("曾");
n1.setFirstName("阿牛");
System.out.println(n1);
n1 = new Name("曾", "阿牛");
System.out.println(n1);
对于引用变量n1,它既可以通过这个引用对它指向的对象内容进行修改,也可以用这个引用指向新的对象;
final Name n2 = new Name("刘", "备");
System.out.println(n2);
// 为了限制引用n2的指向,只让它指向一个对象
// n2 = new Name("刘", "玄德");
n2.setFirstName("玄德");
System.out.println(n2);
引用变量n2用final关键字修饰,表示这个引用是不变的,即只能用来表示一个对象的地址,地址不可变,不能指向其他对象;
但可以使用这个引用来对它指向的对象内容进行修改;
如果要使引用既不能指向其他的对象,也不能通过引用对对象内容进行修改,需要从两个方面进行final的修饰;既修饰对象,也修饰字段;
工具类的制作:
当在多个项目中使用一个或多个相同的工具类,现在需要将这些类的源文件拷贝到要使用它的项目中。实际上,使用工具类,使用其编译好的字节码,即class文件,并不使用源文件。在java中编程时, 是将编译好的工具类,打包成个压缩文件,格式使用Java特有的压缩格式:*.jar
源文件=》类文件=》.jar文件
jar -cf jar文件名 目录名 创建jar文件
在eclipse中使用打好的jar文件:
菜单project:
点击最下面的子菜单Properties:
选取Libraries选项卡-》Add External JARS..找到存放jar文件的位置:
选中me.jar点击“打开”:
就将这个Jar文件加入到当前项目,就可以项目的任何一个类中使用这个Jar文件。
配置classpath
要使打包的jar文件能够在命令行运行时可用,需要将这个jar包的位置配置到classpath这个环境变量中;
配置时可以通过临时配置或永久配置两种方式进行;
如果使用临时(窗口范围)配置,用起来更加灵活,不需要在classpath加入很多值;
set classpath=%classpath%;目录;使用永久配置时,将me.jar文件配置到环境变量中的classpath:
进入classpath环境变量的编译:
将在命令行运行时用到的jar文件依次添加到classpath中,多个变量之间用逗号分开。
当需要在classpath配置的jar文件有多个时,可以利用批处理文件,对多个jar文件进行临时配置;(注:批处理就是以.bat格式的文本文件,早期用于dos命令的编写)。
在控制台建立批处理文件all.bat
copy con all.bat
set classpath=%classpath%;f:/javacode/me.jar
F6
当每次通过cmd进入虚拟DOS界面时,在建立批处理文件的目录下运行all,则可执行批文件中的命令进行临时的环境变量的配置。
一个合格的工具类需要符合哪些条件:
1、 所有的方法都必须是公有的和静态的:保证用类名调用;
2、 不能构造对象(在类中,提供一个私有的构造器):类外不能创建实例;
3、 类不能被继承(类用final修饰)
4、 所有的字段都必须是公有的、静态的和final的;
-------------------------------------------------------
最后还介绍了math类的一些方法,就不写了