接上节我们先来说类。巩固一下上节中的,声明一个类使用class关键字,class后面的叫类名,类名java规范中推荐使用大写字母开头,驼峰的命令的方式,如 class TestClass、class Shopping、class StudyJava;记住这里是说的推荐,不是强制。另一点指出一下,类的命令要有意义,要见名知意,这才有利于开发、维护。
接下来我们从两方法面来继续聊聊类。1、类的访问范围public,2、类的抽象与否 abstract。
一、类的访问范围 public
当loser在定义一个类时,大家都看到了,前面有一个public 关键字。这个类就表示了这个类被访问的范围。当一个类被public修饰时,则说明这个类可以被同一个工程中的任何地方的基它类访问到。比如说我在java9包中声明一个名为Test1的类,我在java9_包中可以访问到。如下图
接下来我们看,如果public修饰的类是怎么一回事儿。
没有被public修饰的类,这个类只能在同一个包中被其他类访问到,除止之外都不能被访问到;
目前类的访问范围先说这么多,后期大家会慢慢的了解到更多,先入手简单的。
总结一下:public修饰的类可以被同一工程的其他类访问到;而没有public修改的类只能被同一包中的其他类访问到。
二、我们来说说abstract修饰的类
如果一个类被abstract修饰,则说明这个类是抽象的,中文意思请google。善于google一定会让你了解很多。loser有这样的经历,当前刚转行,接受培训的时候,有的同学说老师讲得很不错,但是呢, 我就是不明白。这个问题其实是两方面的,一种是授的方法,一种是受的方式。意思就是说,老师讲的你不一定明白,或许自己去google一下,你会发现很多博友写的你反而能看懂。所以说不明白的,请多google。baidu也是可以的哈。言规正传。
abstract修饰的类叫作抽象类。如图
那抽象类和非抽象类有啥区别???那就是抽象类不能实例化(或都说不能使用这个类创建对象)。
抽象怎么说呢,就类似大学时,很多老师说的概念,好多同学都说好抽象,不明白;但是老师使用具体的例子,大家就能理解到。举个简单的例子,计算机的基础知识,计算机大家都在用,不管是学java的,还是学其他语言的,或者说是不学IT的。计算机的输入设备有哪些?输出设备有哪些?这就是个抽象的东西,但是我说,键盘,鼠标是输入设备;显示器,打印机是输出设备,大家就明白。输入则是给主机发送信息,告诉主机做什么;而输出就是计算机告诉你结果。这样你就理解了输入设备和输出设备了,就不会觉得计算机的输入、输出设备抽象了。废话说多了。
回到java中,我来举个例子,比如我在java中声明一个类叫做Animal,按理说这个类应该是一个抽象的类,为啥?同学们想想咯。因为动物这个类是一个泛指,没有具体的个体意义;但是Dog类,Cat类就是一个有个体意义的类。你能例行一个动物吗?不能,你只能创建一只狗对象,一只猫对象。
除了这点还有什么不同呢?loser这里简单说明一下,抽象类中可以定义抽象方法。后面马上会说到。
总结一下abstract:被abstract修饰的类,则这个类不能被实例化(也就是说不能创建这个抽象类的对象)。
所以我们在定义一个类,就要想想,这个类应该是抽象的,还是不应该是抽象的。 这个东东说起来其实挺难,得根据我们在实际开发过程中的业务情况。
类我们就暂时说到这里,记住了哈,一个类被public修饰,被abstract修饰意味着什么。public决定了类被访问的范围,abstract决定了类是否能被实例化。
代码:https://github.com/shizhier/java_loser/tree/master/java9/src/main/java/com/loser
下一节中,我们将来聊聊类中的属性