面向对象概述和自定义类

2025-11-15 16:58:28

1、面向对象中的两大关键词

类:对某类事务的描述,是抽象的

对象:对某类事务的实现,是具体的

1)、Javascript中的相关类

在Javascript中,类一共分为两种:① 系统类 ② 自定义类

在Javascript中,常用的系统类分为以下几种:

2)字符串String类

• length :返回字符串的长度

• indexOf(string) :返回参数在字符串中的索引下标,默认0开始

• substr(num1,[num2]) :截取指定长度的字符串,num1从哪里开始截取,num2截取多少个字符

• toLowerCase() :返回小写字符串  

• toUpperCase() :返回大写字符串

• replace(str1,str2) :使用str2替换字符串中的str1

在Javascript中,我们可以通过一对单引号或双引号来隐式创建一个String类的实例。

面向对象概述和自定义类

2、日期和时间类Date

• getYear() :返回年份(有兼容性问题)

• getFullYear() :返回完整年份(如2016)

• getMonth() :返回月份(从0-11,所以如果要获取实际月份必须进行+1操作)

• getDate() :返回当月的第几天(从1-31)

• getDay() :返回一周的星期几(从0-6,0代表周天)

• getHours() :返回当前的小时数

• getMinutes() :返回当前的分钟数

• getSeconds() :返回当前的秒数

• getMilliseconds() :返回当前时间的毫秒数

• getTime() :返回当前时间的时间戳

在Javascript中,我们可以通过直接实例化的形式来创建日期和时间类的实例。

面向对象概述和自定义类

3、数学类Math

• ceil(数值) :返回大于或等于该数的最小整数

• floor(数值)  :返回小于或等于该数的最大整数

• min(数值1,数值2) :返回几个数中的最小值

• max(数值1,数值2) :返回几个数中的最大值

• pow(数值1,数值2) :返回数值1的数值2次方,2的2次方=4

• random() :返回0-1之间的随机数

• round(数值) :返回四舍五入后的结果

• sqrt(数值) :返回开平方根,4的开平方根=2

在Javascript中,数学类下的所有属性和方法都是静态的。所以其调用过程:类名.属性

面向对象概述和自定义类

4、自定义类

1、创建自定义类

例1:使用原生Javascript语句定义一个人信息(姓名、年龄、婚否)

面向对象概述和自定义类

5、以上方法虽然可以定义一个人的相关信息,但是name、age与marry是三个相互关联的属性,在以上程序中,其无法体现三者的关联性,所以其表述并不够准确。

在PHP也是类似的,如果在一个类下创建一个与之同名的函数,那么系统就会自动认为当前这个同名函数就是同名类的下构造函数(PHP4中构造函数的定义)。在PHP5,我们可以通过__construct()来定义同名类下的构造函数。

例2:使用自定义类的形式来描述一个人的信息(姓名、年龄与婚否)

面向对象概述和自定义类

6、思考1:如果创建第二个对象,会拥有name和age属性吗???

var p1 = new Person();

p1.name = ‘zhangsan’;

p1.age = 30;

var p2 = new Person();

答:不会,因为p1对象与p2对象指向了不同的内存空间,如下图所示:

面向对象概述和自定义类

7、思考2:如果创建第二个对象p2,使用p1为p2赋值会怎样?

var p1 = new Person();

p1.name = ‘zhangsan’;

p1.age = 30;

var p2 = p1;

答:会,因为使用p1为p2赋值,相当于两者指向了同一内存空间,如下图所示

面向对象概述和自定义类

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢