首页 > 编程知识 正文

总结的概念和特点,总结具有哪三种性质

时间:2023-05-06 03:08:05 阅读:162363 作者:4167

类的三个特性包括:封装、继承、多态性一、封装**1.含义: **封装是指将同类事物的共性(包括属性和方法)归为同一类,便于使用。

封装和继承几乎都是为多态性准备的。

封装又称为信息隐藏,是利用抽象数据类型封装数据和基于数据的操作,使之成为不可分割的整体。 数据隐藏在抽象数据的内部,尽可能地隐藏数据细节,只留下部分接口与外界保持联系。 也就是说,用户不需要知道内部数据或方法的具体实现细节,而是根据外部的界面进行操作即可。

2.封装的实现

2.1需要修改属性的访问控制符(修改为private );

2.2创建getter/setter方法(用于读写属性);

2.3在getter/setter方法中添加属性控制语句(用于确定属性值的有效性);

属性 (成员变量 ) 随对象存放在堆中

直接从对象调用属性来更改属性值是不安全的。怎么办

为了实现良好的封装,通常可以通过将类的成员变量声明为private并定义公共方法来访问该变量,以便在外部使用。 对一个变量的操作通常有两种操作:读取和赋值。 为了实现这两种操作,分别定义了两种方法。 一个是getxx(xx表示要访问的成员变量的名称),另一个是setXX ),用于为该变量赋值

布尔get方法的缺省名称为isXXX (

属性也称为全局变量,因为成员变量设置为专用,并且只能在此类中使用。

3. 封装的优点

3.1隔离变化3.2易用性3.3提高重用性3.4提高安全性4. 封装的缺点:

用private修饰变量等,或者将变量封装在方法内使其无法直接访问,会增加访问步骤和难度!

实例:

public class People { /* *属性封装者的姓名、年龄*/private String name; 私有输入; /* * setter ()、getter ) )是此目标用户对外开发的接口((*/public String getName ) ) { return name; }publicvoidsetname(stringname ) { this.name=name; } public int getAge () { return age; }publicvoidsetage(intage ) { this.age=age; (二、继承关键词: extends

*1.含义: **当多个类具有共同的属性(成员变量)和行为)成员方法)时,提取这些共同部分并定义为一个共同的类,其他各级可以与这个共同的类形成继承关系,所以在多个类中将共同部分该公共类是父类,也称为超类或基类,其他类是子类。 子类可以直接访问父类的非专用成员资格变量,而访问父类的专用成员资格变量可以使用super.get ()方法。

*简单地说,**继承是类与类的关系,类似于集合中的从属关系。 例如,狗是动物。 舒适的火龙果可以看作是对动物类的继承,舒适的火龙果是动物类的子类(派生类),动物类是舒适的火龙果的父类。 在Java中是单一继承。 这意味着子类只能有一个父类。

2. 继承的特点:

)1)孩子像父母一样坚强

)2) java是单一继承,不能多继承。 但是,可以继承多层子类(不建议继承超过3层)

)3)子类继承父类,但不能直接操作父类的成员变量,只能从父类继承的setter和getter方法。

3. 继承的优点:

)1)减少码量可以很好地提高复用率。

)类与类之间建立继承关系是实现多态操作的前提。

4. 继承的缺点

通过继承,可以在多个类之间具有子代和父代关系。 如果一个类中有多个子类,则当父类发生变化时,它们的子类也会一起变化,从而在类与类之间产生“强耦合”关系。

5.继承注意点

)只是为了获得某个类的某个功能,而不继承该类

)班级与班级之间有隶属关系,不得随意继承

6.何时使用继承

(1)有共同属性和行为操作时,提高复用性

)2)具有isa隶属关系的类与类之间

7. 结论:

(1)实行构筑方法制作对象

完成对象的初始化时,先执行父类的构造,完成父类的初始化,再执行本类的初始化工作。

(2)第一次创建Phone(父)类,是直接继承Object,而Object是jdk提供的工具类,自然不会有属性,所以Object类只提供了无参的构造,在执行Phone方法时,无论是无参还是有参都会先执行父类Object的无参构造。

(3)但是对于Phone的子类Mobile,必须也要有自己的构造方法,由于构造执行的特性,对于无参构造,先执行了Phone的无参构造,对于有参构造,则先执行父类Phone的有参,然后才执行本类属性sex的初始化。

(4)构造方法constructor中,无论是否显式还是隐式调用super(),子类在创建对象调用时都会执行super();

(5)显式调用构造是在需要通过父类的带参构造来完成子类的带参构造。例如Mobile类带参构造中显示调用的Super(brand,price,service)

(6)对于父类私有的属性,即使子类继承,但是在test.java中,子类是无法直接访问的,在制定子类的带参构造方法时,只能通过调用父类的带参构造来完成。对于父类非私有的属性,子类对象可以直接调用。

三、 多态

含义:多态指的是对象的多种形态。

多态有两种:引用多态和方法多态。继承是多态的实现基础。

java程序中定义的引用变量所指向的具体类型和通过该引用类型发出的方法在调用时不确定,该引用变量发出的方法到底调用哪个类的实现的方法,必须在程序运行期间才能决定,这就是多态。如下图所示:

1. 多态存在的前提(多态的三要素)

A.必须有子类和父类,具有继承或实现(继承) B.子类必须重写父类的方法(重写) C.父类的引用变量指向子类的对象(向上转型)

2. 多态的优点

A. 可替换性,多态对一存在的代码具有可替代性 B. 可扩充性:增加的子类不影响已存在的类的特性的运行和操作 C. 接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的 D. 灵活性:在应用中体现了灵活多样的操作,提高了使用的效率 E. 简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要

3. 多态的缺点

A. 只能使用父类的引用访问父类的成员

4. 多态中的成员特点:

成员变量:编译与运行时期都看父类! 成员方法:编译时期看父类,运行时期看子类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。