#博学谷IT学习技术支持#
一、类与对象
现实世界中,所有我们能够看到的万事万物都是对象。对象是客观存在的,比如世界上所有的图形都可以看成是一个对象,它们拥有不同的形状,大小,规则。所以,为了要在计算机语言中重现所有的图像,我们只能够所有的图形找出它们的公共点,把具有相同性质的图形统称为一类。比如,正方形类,长方形类,三角形类等等。
同时,因为我们对世界认识的不足,所以可能有其他图形是我们暂时不知道,为了避免之后会出现的问题,所以我们就把所有的图形,(已知或者未知的)都统称了图形类,这个类里没有具体的大小,形状,以及规则,所以可以不用包含任何代码,这种类就叫做抽象类。
1.类的性质
(1)继承性
而其他图形类都是这一类的一部分,所以可以说都是继承于这一抽象类,这就是面向程序设计的继承性。继承的特点就是一个由一般到特殊的过程,相对应的限制条件也是越来越多。
正如我们初中所学过的,所有的长方形都是平行四边形,而所有的正方形也都是长方形。
所以可以说长方形类继承平行四边形类,正方形类继承长方形类。
原本的类就是父类,继承后得到的新类就是子类。
(2)多态性
当父类中存在一种方法时,它在不同子类中会表现出不同的形式。
比如,平行四边形类中定义了绘制图形这一方法时,长方形类和菱形类都继承自平行四边形类,但是它们用这一方法绘制出来的图形却分别是长方形和菱形,这就是父类的方法在子类中出现的多态性。
(3)封装性
封装的特点在于将类的属性和行为进行装箱,只留下对外的接口,保证了类内部的安全性和稳定性,不再需要用户对其内部结构有所了解,降低了操作的难度。
2.对象
类只是一类事物的统称,如果要描述具体的事件,还需要我们去建立具体的实例对象来表示。
创建方法为new 类名();
同时为了能够具体描述这一对象,需要给它取个名字,所以一般都需要再用一个变量进行接收:
类名 名字=new 类名();
(1)成员变量
同时对象基本具有两种属性,静态的属性以及动态的行为。
比如一个长方形它就拥有四边,四角,以及绘制长方形的这一方法。
所以长方形的四边边长和四角角度就是长方形的属性,也就是这一对象的成员变量。
表示格式都是
权限修饰符 类型 名称;
其中不同长方形对应的边长可以不同,但是四个角的角度都是90°,所以角度这一属性又是始终不变的,所以是静态成员变量,表示格式为
权限修饰符 static 类型 名称;
所以静态成员变量是优先于对象的创建而存在的。
比如我们无需去画一个具体的长方形,就一定知道它的四个角一定为90°;但是没有具体的长方形,我们是没办法知道它具体的四边边长的,这就是成员变量与静态成员变量的区别。
(2)方法
类的方法主要分为两类:
一类是创建对象时用到的构造方法,形式一般为public 类名(){ }
同时根据()里有无参数分为无参构造方法和有参构造方法;
另一类是描述对象的行为的成员方法,形式一般为
权限修饰符 返回值类型 方法名(参数类型 参数名){ }
除此之外,还有一种特殊的方法,静态方法,它表示这一方法是不可以改动的,比如圆的面积公式就可以看成是一种静态方法,不管在什么样的圆类,圆的面积都是等于Πr2,所以调用时可以直接通过类名.方法名调用;
而其他的方法都需要先创建对象,通过对象.方法名调用。
(对于编程中的“.”,其实可以理解为汉语中的“的”)