java中包的理解,普通类、抽象类、接口作为方法参数传值情况,作为返回值的传递情况。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86158785

一、包的概念

用于存放类文件,包含源文件还有.class文件。通过包的分类管理让功能相同的类放在一个文件夹里。作用:为类文件进行分类管理。

二、包的声明格式

通常使用公司网址反写。包名全部采用小写字母。多层包用.连接。包的声明必须在有效代码的第一行。

导包:

import java.util.*其中.*的意思是将util包里的内容全部导进来。导包必须引入到类真正的文件夹中。比如

Lock类,在util包中,但是Lock类的导包是这样的:import java.util.concurrent.locks.*因为,Lock类不在util文件夹下的Locks文件夹内。

此外:类的全名要带上包名

注意:

1、java中lang包不需要导入。

 jdk,jre,jvm的包含关系

 三、eclipse中注释文档的写法

1、类前的注释文档

声明作者和版本。

2、方法前的注释

注意:这些有什么用呢?用来生成javadoc文档的。注意书写顺序,首先看类文档,先写用途,再写作者,再写版本。

方法文档:先写用途,再写传递的参数,再写返回值。

3、eclipse中引入第三方架包

在工程里面建立lib文件夹,将架包导入lib里面,部署架包到引用类库中。就算导入了。

jar包里面大多是.class文件。

四、修饰符的细节

解释一下不能同时使用的原因。

抽象是用来继承的,私有了无法继承,就是矛盾体。

抽象方法无方法体,static是可以直接调用的,可以类名直接调用,抽象类根本无法实例化,怎么调用?矛盾、

抽象是用来重写的,final就是用来阻止重写的。

五、引用类型参数(类作为方法参数)

引用类型传参构造的方法的调用,有两种方式。

1、建立对象,传递引用参数。

2、传递匿名对象。

六、方法返回值是Person类型。

有两种方式,第一种是创建对象的方式

第二种是匿名对象方式

七、抽象类作为方法参数传递

抽象类作为参数,体现了多态的扩展性,其实就是一种多态体制。Animal a=new cat();然后a调用了子类的重写方法。非常好。

八、抽象类作为返回值

第一个图,方法要求时返回抽象类型Animal 但是Animal是一个抽象类,没有对象,最后return 子类。第二个图,创建子类对象,但是方法返回的是父类对象,不能再用子类接收,否则就报错,因为范围变小了,必须用比Animal大的对象接收。最后使用了多态的方法a.eat();

其实第一个返回就是多态。Animal a= new Cat();其中return new Cat();也可以返回return new Dog();这里体现了多态性。

九、接口作为方法参数

接口作为方法参数和抽象类很相似。

同样有两种传参方式:1、创建传递普通对象的方式。2、使用匿名对象的方式,匿名对象只能用一次。

相当于 Smoking s=new Student();一种多态的形式。接着是多态调用实现类。

其实还有一种方法,这个方法抽象类是不能用。

使用多态的方式传参。之所以抽象类无法这样用,是因为抽象类无法创建对象。

十、接口作为返回值类型。

接口作为返回值,和抽象类作为返回值很相似。直接用接口来接收。

十一、抽象类作为静态方法返回值的情况。

静态方法可以通过类名直接获取。因此就不需要再创建子类对象,并赋值给父类变量了。这是静态抽象类作为返回值的独特方法。

十二、总结:

成员变量若是非私有类型,那就是静态最终的固定好的。

猜你喜欢

转载自blog.csdn.net/qq_33322074/article/details/86158785