JAVA-初步认识-第八章-数组工具类中静态的使用

一. 

我们仔细看这个题目,数据工具类,这意味着我们现在讲述的对象,都是数组,创建数组类。

这里是接着上节讲的, 创建完对象后,调用方法,这个过程显得很正常。

但是,实际上有个问题。

一般的开发,把方法封装到对象当中去,找到对象,就知道这些方法。可是呢?我们在定义方法的时候,需要定义该方法的修饰符的。这个修饰符不是瞎定义的,写每一个都是有原因的,java是一个严谨性语言。写public是为了提升权限,让它被更多地访问到。第二,是否需要加静态。咱这个类中没有成员变量,意味着该对象是否有封装特有数据,没有。那方法不可能访问成员变量。方法都没有访问到特有数据,你琢磨着主函数中创建对象有用么?主函数中ArrayTool tool=new ArrayTool(),创建的对象没有用,除了浪费空间外。当描述类中的方法没有访问过特有数据时,它就需要静态化。谁访问到,谁就不静态。

重新对上面的内容叙述一下。首先,这里有两个类,ArrayToolDemo类和ArrayTool类。最初的讲解中,它们一个是描述事物类,一个是创建事物中的具体对象类。但是,讲到现在,从最本质来看,类和对象都是为了封装而存在的。描述类就是封装对象所需的成员,包括成员函数和成员变量。但是,随着发展,描述类中甚至可以不需要访问任何对象,可以全是static修饰的(那这样的类存在的目的是为了什么?)

解析一下描述类中的方法,对于getMax(int[] arr)方法而言,它没有访问任何成员变量,也就是说没有访问任何对象。

我们重新记录一下视频的讲解,ArrayTool类中没有成员变量,那就意味着ArrayToolDemo类中的对象没有封装特有数据,那方法就没有访问到成员变量,没有成员变量,自然也不会访问到。方法都没有访问到特有数据(成员变量就是为了对象中的特有数据而存在的),创建对象也就没有用(对象存在的目的就是为了成员变量,为了特有数据么?)。ArrayTool too=new ArrayTool(); 这块创建对象就没有用,这个对象除了浪费空间外,其他一点用都没有。

(我仔细看了一下ArrayToolDemo类中的内容,主要就是两种实体,以及实体调用描述类中的方法。我将数组和对象都当成实体,而且我认为描述类的存在就是为了给实体类封装数据和方法用的。类中创建的对象没有调用描述类中的方法,就说明这个类没用啦?显然不是这样的。我所称呼的描述类,创建对象的类应该都是不正确的叫法,创建对象的类难道就是为了创建对象而存在的么?之前没有创建对象,也有类。描述事物的类也不是完全为了实体封装数据而存在的,它也可以是内容全是静态的,为自己服务→功能的多样性与唯一性)

当getMax(int[] arr)方法没有访问过特有数据时,它就需要静态化,即public static int getMax(int[] arr),如果方法访问到了到了特有数据就不需要加上静态修饰符。

由于ArrayTool类中,没有成员变量,对象自然也就没有封装特殊数据,对象也就没有存在的必要(按照视频中的讲解就是这样的),对象中没有特殊数据,新建对象也就不需要调用ArrayTool类中的方法,因为没有对象中没有特殊数据,方法访问对象,对对象而言起不到任何作用,自然对象也就没有存在的必要。最后使用类名调用方法对ArrayToolDemo类中的数据实体进行方法调用即可,

这就是我们说的,静态的基本使用,但是像这样的对象不多,java有很多这样的对象,但是相比较其它的对象,还是少的,因为其它的对象里面封装了特有数据,还是最终以对象为主。但是,有一些像这样的类,它是确实只提供工具方法,而没有封装特有数据的,像这种情况就要定义为静态的了。这样的类叫做工具类,一个非静态方法都没有,全是静态的。

这里还有一点,两个类实际上是建立在两个java文件中的,一个是ArrayTool.java文件,另一个是ArrayToolDemo.java文件。

上面说到,不需要创建对象。但是创建对象可不可以?

可以,在ArrayTool类里面有一个默认的构造函数(为什么会有?这个类为什么会有,ArrayToolDemo类有没有呢?)刚才交代过,创建对象没有意义。如果不创建对象,有点麻烦,为什么这么说?交代有一个数组工具类,但是不用创建对象,类名直接调用了。但是别人不一定听,别人创建了一个对象,DOS运行发现没问题,那岂不是在用对象在浪费内存空间。所以应该强制不让创建对象,要不然想创建就创建,完全不在我们控制范围之内。我们不允许创建。为什么?我们这全都是静态方法,对象的创建是一点意义都没有。怎么强制不让创建对象。对象一创建,一定要做初始化,初始化里面有一步,叫做构造函数初始化,构造函数是我定义的(默认的构造函数怎么定义?)我要是不让它进行构造初始化,就创建不了对象。说白了,我们让ArrayTool类中的 默认初始化ArrayTool() {},不接受访问即可,

也就是加上修饰符private。

总结:这里创建的就是数组工具类,下次如果需要用查找,折半之类的操作的,拿这个工具类就可以用了。这已经封装完了,直接拿去用就可以了。

 

转载于:https://www.cnblogs.com/wsw-bk/p/7680490.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值