java入门学习九——继续聊类、属性和方法

接上节我们先来说类。巩固一下上节中的,声明一个类使用class关键字,class后面的叫类名,类名java规范中推荐使用大写字母开头,驼峰的命令的方式,如 class TestClass、class Shopping、class StudyJava;记住这里是说的推荐,不是强制。另一点指出一下,类的命令要有意义,要见名知意,这才有利于开发、维护。

接下来我们从两方法面来继续聊聊类。1、类的访问范围public,2、类的抽象与否 abstract。

一、类的访问范围 public

当loser在定义一个类时,大家都看到了,前面有一个public 关键字。这个类就表示了这个类被访问的范围。当一个类被public修饰时,则说明这个类可以被同一个工程中的任何地方的基它类访问到。比如说我在java9包中声明一个名为Test1的类,我在java9_包中可以访问到。如下图

java入门学习九——继续聊类、属性和方法_第1张图片
public修改的类,可以被同一工程中任何其他类访问。上图中红框中就声明了一个Test1的引用。

接下来我们看,如果public修饰的类是怎么一回事儿。

没有被public修饰的类,这个类只能在同一个包中被其他类访问到,除止之外都不能被访问到;

java入门学习九——继续聊类、属性和方法_第2张图片
java9包中的Test2这个类没有public修饰
java入门学习九——继续聊类、属性和方法_第3张图片
java9_包中的Test1_要访问java9包中的Test2就报错了。。


java入门学习九——继续聊类、属性和方法_第4张图片
Test3中声明Test2的引用就没有报错,所以没有public的类,只有被同一包中其他类访问。

目前类的访问范围先说这么多,后期大家会慢慢的了解到更多,先入手简单的。

总结一下:public修饰的类可以被同一工程的其他类访问到;而没有public修改的类只能被同一包中的其他类访问到。

二、我们来说说abstract修饰的类

如果一个类被abstract修饰,则说明这个类是抽象的,中文意思请google。善于google一定会让你了解很多。loser有这样的经历,当前刚转行,接受培训的时候,有的同学说老师讲得很不错,但是呢, 我就是不明白。这个问题其实是两方面的,一种是授的方法,一种是受的方式。意思就是说,老师讲的你不一定明白,或许自己去google一下,你会发现很多博友写的你反而能看懂。所以说不明白的,请多google。baidu也是可以的哈。言规正传。

abstract修饰的类叫作抽象类。如图

java入门学习九——继续聊类、属性和方法_第5张图片
这就是一个简单的抽象类,abstract可以放到public前面

那抽象类和非抽象类有啥区别???那就是抽象类不能实例化(或都说不能使用这个类创建对象)。

抽象怎么说呢,就类似大学时,很多老师说的概念,好多同学都说好抽象,不明白;但是老师使用具体的例子,大家就能理解到。举个简单的例子,计算机的基础知识,计算机大家都在用,不管是学java的,还是学其他语言的,或者说是不学IT的。计算机的输入设备有哪些?输出设备有哪些?这就是个抽象的东西,但是我说,键盘,鼠标是输入设备;显示器,打印机是输出设备,大家就明白。输入则是给主机发送信息,告诉主机做什么;而输出就是计算机告诉你结果。这样你就理解了输入设备和输出设备了,就不会觉得计算机的输入、输出设备抽象了。废话说多了。

回到java中,我来举个例子,比如我在java中声明一个类叫做Animal,按理说这个类应该是一个抽象的类,为啥?同学们想想咯。因为动物这个类是一个泛指,没有具体的个体意义;但是Dog类,Cat类就是一个有个体意义的类。你能例行一个动物吗?不能,你只能创建一只狗对象,一只猫对象。

java入门学习九——继续聊类、属性和方法_第6张图片
没有个体意义的抽象类


java入门学习九——继续聊类、属性和方法_第7张图片
具有个体意义的实际类

除了这点还有什么不同呢?loser这里简单说明一下,抽象类中可以定义抽象方法。后面马上会说到。

总结一下abstract:被abstract修饰的类,则这个类不能被实例化(也就是说不能创建这个抽象类的对象)。

所以我们在定义一个类,就要想想,这个类应该是抽象的,还是不应该是抽象的。 这个东东说起来其实挺难,得根据我们在实际开发过程中的业务情况。

类我们就暂时说到这里,记住了哈,一个类被public修饰,被abstract修饰意味着什么。public决定了类被访问的范围,abstract决定了类是否能被实例化。

代码:https://github.com/shizhier/java_loser/tree/master/java9/src/main/java/com/loser

下一节中,我们将来聊聊类中的属性

你可能感兴趣的:(java入门学习九——继续聊类、属性和方法)