java程序设计-期末⼤作业(参考菜鸟教程)
1、类菜鸟教程python面向对象
类:类是⼀个模板,它描述⼀类对象的⾏为和状态。
⽐如:⼀个圆形类,描述着某⼀类的对象,将圆形的⾏为和状态封装在类中。
我们可以将⼀类圆形公共的特征都封装在圆形类中,⽐如,圆都有半径,有圆⼼,我们称这些状态为类的属性,⽽⾏为通过⽅法来体现,⽐如要获得圆的半径和周长。
⼀个类可以包含以下类型变量:
局部变量:在⽅法、构造⽅法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在⽅法中,⽅法结束后,变量就会⾃动销毁。
成员变量:成员变量是定义在类中,⽅法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中⽅法、构造⽅法和特定类的语句块访问。
类变量:类变量也声明在类中,⽅法体之外,但必须声明为 static 类型。
构造⽅法
每个类都有构造⽅法。如果没有显式地为类定义构造⽅法,Java 编译器将会为该类提供⼀个默认构造⽅法。
在创建⼀个对象的时候,⾄少要调⽤⼀个构造⽅法。构造⽅法的名称必须与类同名,⼀个类可以有多个构造⽅法。
创建对象
对象是根据类创建的。在Java中,使⽤关键字 new 来创建⼀个新的对象。创建对象需要以下三步:
声明:声明⼀个对象,包括对象名称和对象类型。
实例化:使⽤关键字 new 来创建⼀个对象。
初始化:使⽤ new 创建对象时,会调⽤构造⽅法初始化对象。
2、继承
继承的概念
继承是java⾯向对象编程技术的⼀块基⽯,因为它允许创建分等级层次的类。
继承就是⼦类继承⽗类的特征和⾏为,使得⼦类对象(实例)具有⽗类的实例域和⽅法,或⼦类从⽗类继承⽅法,使得⼦类具有⽗类相同的⾏为。
⽐如动物类是⽗类,⽽⾷草动物和⾷⾁动物是它的⼦类
所以继承需要符合的关系是:is-a,⽗类更通⽤,⼦类更具体。
⽐如⾷草动物是⼀个动物,⾷⾁动物是⼀个动物,符合这种is-a的关系
虽然都属于动物,但是⼦类与⽗类还是不同的,⼦类有他特定的⽅法和属性。
在 Java 中通过 extends 关键字可以申明⼀个类是从另外⼀个类继承⽽来的
我们为什么需要继承?
代码重复
代码量⼤且臃肿,⽽且维护性不⾼(维护性主要是后期需要修改的时候,就需要修改很多的代码,容易出错)
继承类型
继承可以使⽤ extends 和 implements 这两个关键字来实现继承,⽽且所有的类都是继承于 java.lang.Object,当⼀个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
implements关键字
使⽤ implements 关键字可以变相的使java具有多继承的特性,使⽤范围为类继承接⼝的情况,可以同时继承多个接⼝(接⼝跟接⼝之间采⽤逗号分隔)。
super 与 this 关键字
super关键字:我们可以通过super关键字来实现对⽗类成员的访问,⽤来引⽤当前对象的⽗类。
this关键字:指向⾃⼰的引⽤。
final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者⽤于修饰⽅法,该⽅法不能被⼦类重写:
3、多态
多态是同⼀个⾏为具有多个不同表现形式或形态的能⼒。
多态就是同⼀个接⼝,使⽤不同的实例⽽执⾏不同操作,如图所⽰:
多态存在的三个必要条件
继承
重写
⽗类引⽤指向⼦类对象:Parent p = new Child();
## 2、多态的现实中的例⼦
鸟是⼀只鸟,猫是⼀只猫。
同样鸟是⼀只动物,猫也是⼀只动物。
3、多态的转型
向上转型和向下转型
4、举例说明
分别创建三个类,⼀个Animal类、Cat类、Bird类
在这⾥animal类为Bird和Cat的⽗类
Animal类如下
有私有属性 name和type,⽅法move
Cat类如下
Bird如下
5、多态语法
⽗类型的变量引⽤⼦类型的对象
在上述例⼦中:
Animal animal1=new Cat(" “,” “);
Animal animal2=new Bird(” “,” ");
6、详解
A、动物类⾥有的属性以及⽅法是整个动物⼤体拥有的,但是⼦类有⼀些属性和⽅法是特有的,这时候怎么办?
⽐如上⾯的例⼦,动物类的move,我们定义⽗类是输出move,但是鸟类是fly,我们可以通过重写⽗类中的⽅法把动物类的move输
出“fly”。
因此我们在创建了两个动物类型引⽤猫和鸟对象变量之后,我们的⽅法输出的是各⾃重写后的⽅法。
多态是向上转型的,将⼦类对象向上转型成⽗类型,这个过程不⽤强制转换。
B、如果我们想猫可以飞,给他添加了⼀个特有的⽅法,我们怎么去调⽤呢?
我们知道如果⽤⽗类型去引⽤⼦类型变量的话,是⽆法调⽤⼦类型特有的⽅法的,我们只能通过向下转型来实现。
只有这样才能调⽤猫类的fly⽅法
向下转型必须强制类型转换,并且向下转型是不安全的。
7、总结
⾯向对象三⼤特性的多态,总⽽⾔之,是将⽗类型变量引⽤⼦类型对象,也是现实事物的⼀种代码实现。更多地了解现实中的例⼦能够更好理解多态。
4、Java 集合框架
接⼝:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接⼝,是
为了以不同的⽅式操作集合对象
实现(类):是集合接⼝的具体实现。从本质上讲,它们是可重复使⽤的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。