黑马程序员——面向对象基础
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
程序的发展经历了两个主要阶段:面向过程、面向对象。
对于两者的区别可以用一个简单例子来区分,如一个木匠要做一个盒子,那么对于面向过程与面向对象会出现两种方式:
面向过程:不去想做什么样的盒子,拿起工具就开始。
面向对象:先要想好做的盒子模型,之后再去找所需要的工具。
面向对象的三大特征:
1、封装(Encapsulation):对外部不可见
——封装是面向对象的方法所应遵循的一个重要原则,它有两个含义,一是指把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元(对象)中;另一层含义指“信息隐蔽”,把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性和行为,则不允许外界直到,或只允许使用对象的方法,而尽可能隐蔽对象的功能实现细节。
封装机制的另一个特点是需为封装在一个整体的变量及方法规定不同级别的“可见性”或访问权限。
2、继承(Inheritance):扩展类的功能
——继承是面向对象的一个重要概念,并且提高软件开发效率的重要手段。
首先拥有反映失误一般特性的类,然后在其基础上派生出反映特殊事物的类。面向对象中的继承机制大大增加了代码的可复用性,提高了软甲年开发的效率,降低程序中产生错误的可能性,便于修改。Java中不支持多继承,为此Java通过接口来弥补此问题。
3、多态(Polymorphism):方法的重载;对象达多态性
——多态是面向对象设计的一个重要特征。多态允许程序中出现重名现象,Java中含有方法重载和对象多态两种形势的多态。
【1】方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
【2】对象的多态:子类对象可以与父类对象进行互相转换,而且根据其使用的子类不同,完成的功能也不同。
多态的特性使得程序的抽象程度和简捷程度更高,有助于程序设计人员对程序的分组协同开发。
面向对象的核心部分:类与对象
类是对某一类事物的描述,是抽象的、概念的上定义;对象是实际存在的某类事物的实体,因而也称为“实例”。
类就相当于一个模版,依照模版生产产品。
必须现有类才能有对象,类中规定了对象的行为(即:方法)。
类属于引用传递类型,引用数据类型必然存在栈内存---堆内存的引用关系。实际上类与对象的使用是依然存在这种关系。
内部类:在一个类中还存在另一个类。
内部类可声明成public或private。当内部类声明成public或private时,对于其访问的限制与成员变量和成员方法完全相同。
基本格式:
标识符 class 外部类名称{
//外部类成员
标识符 class 内部类名称{
//内部类成员
}
}
内部类的缺点:破坏了程序的整体设计结构,无法直接调用,需要依靠外部类调用。
内部类的优点:减少程序代码量和复杂度,内部类可以直接访问外部类的私有成员。
(诺内部类定义时标明static,则可以直接使用 外部类.内部类 的形式调用。
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------