常量/静态常量/实体类/工具类/命令行jar打包/Math类day09

在类中定义实例常量,它是属于对象,有三种初始化方式:

1、 直接赋值

2、 构造器中初始化

3、 实例代码中初始化

无论哪种方式,只能初始化一次;

 

静态常量;用static关键字修饰的常量,称为静态常量;

静态常量的初始化方式:

1、 直接赋值;

2    静态代码块:用static关键修改的代码块{}

思考一个问题,静态常量能否在构造器中赋值?不能赋值!为什么?

因为静态成员是属于类的,为所有对象所共有,而又不依赖于任何一个对象,即与单个对象无关。既然与对象无关,而构造器是用来构造对象的,所以在静态数据初始化的时候还没有调用构造方法;

静态代码块、实例代码块、构造三者的调用顺序为:

静态代码块 实例代码块 > 构造器

静态代码的作用:

块中的代码在类被载入到内存中时,静态代码块中的代码就会执行;

Java的单个类中,共有哪些成员:

1、 实例字段和静态字段

2、 实例方法和静态方法

3、 可以重载的构造器

4、 toString()

5、 equals()hasCode方法

6、 只在类中使用的方法,访问为私有

7、 settergetter

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);

引用变量n2final关键字修饰,表示这个引用是不变的,即只能用来表示一个对象的地址,地址不可变,不能指向其他对象;

但可以使用这个引用来对它指向的对象内容进行修改;

如果要使引用既不能指向其他的对象,也不能通过引用对对象内容进行修改,需要从两个方面进行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类的一些方法,就不写了


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值