面向对象编程课件_第1页
面向对象编程课件_第2页
面向对象编程课件_第3页
面向对象编程课件_第4页
面向对象编程课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web编程基础Chapter6:面向对象编程

4/2/2023对象

内置对象本地对象

Array对象用户自定义对象提纲6.1对象对象是属性和方法的组合属性是对象所拥有的一组外观特征,一般为名词方法是对象可以执行的功能,一般为动词例如:汽车Ferrari对象:汽车属性:型号:法拉利颜色:绿色方法:前进、刹车、倒车6.2内置对象Global对象Math对象6.2内置对象Global对象Math对象6.2.1Global对象Global对象的属性Array:用于引用Array对象的构造函数。Boolean:用于引用Boolean对象的构造函数。Date:用于引用Date对象的构造函数。EvalError:用于引用EvalError对象的构造函数。Function:用于引用Function对象的构造函数。Infinity:返回Number.POSITIVE_INFINITY的初始值。NaN:返回特殊值NaN,表示表达式不是数字。Number:用于引用Number对象的构造函数。Object:用于引用Object对象的构造函数。RangeError:用于引用RangeError对象的构造函数。ReferenceError:用于引用ReferenceError对象的构造函数。RegExp:用于引用RegExp对象的构造函数。Error:用于引用Error对象的构造函数。String:用于引用String对象的构造函数。SyntaxError:用于引用SyntaxError对象的构造函数。TypeError:用于引用TypeError对象的构造函数。URIError:用于引用URIError对象的构造函数。6.2.2Math对象Math对象:执行常见数学计算使用数学对象的语法规则如下:Math.属性名Math.方法名(参数1,参数2,……)6.2.2Math对象属性数学意义值E欧拉常数,自然对数的底约等于2.7138LN22的自然对数约等于0.6931LN1010的自然对数约等于2.3026LOG2E2为底的e的自然对数约等于1.4427LOG10E10为底的e的自然对数约等于0.4343PI∏约等于3.14159SQRT1_20.5的平方根约等于0.707SQRT22的平方根约等于1.4146.2.2Math对象方法意义示例abs(x)返回x的绝对值abs(2)结果为2,abs(-2)结果为2acos(x)返回某数的反余弦值(以弧度为单位),x在-1至1范围内acos(1)结果为0asin(x)返回某数的反正弦值(以弧度为单位)asin(0.5)结果约为0.5236atan(x)返回某数的反正切值(以弧度为单位)atan(1)结果约为0.7854ceil(x)返回与某数相等或大于该数的最小整数ceil(-15)结果为-15,ceil(-15.6)结果为-15,ceil(15.2)结果为-16,ceil(15)结果为15cos(x)返回某数(以弧度为单位)的余弦值cos(Math.PI*2/6)结果为0.5exp(x)返回e的x次方exp(2)结果约为7.389floor(x)与ceil相反,返回与某数相等或小于该数的最小整数floor(-15)结果为-15,floor(-15.6)结果为-16,floor(15.2)结果为15,floor(15)结果为15log(x)返回某数的自然对数(以e为底)Log(Math.E)结果为16.2.2Math对象<HTML><HEAD><METAhttp-equiv="refresh"content="2"><TITLE>自动刷新</TITLE><SCRIPTlanguage="JavaScript">document.write("2秒自动刷新,随机显示图片");vari=Math.round(Math.random()*8+1);document.write("<imgwidth=600height=400src="+i+".jpg/>“);</SCRIPT></HEAD><body></body></HTML>假定随机产生的数字i=3,上述代码即为:<IMGwidth=600height=400src=3.jpg>显示第三幅图片(3.jpg)如何实现Math.round(Math.random()*8+1)产生1-9的数字6.3本地对象Numer对象String对象Boolean对象Array对象Date对象Object对象6.3.1Number对象Number对象varn=newNumber(numericValue);toString():返回数值对象的字符串表示valueOf():返回指定数值对象的原始值charAt返回字符串指定位置的字符toLowerCase转换成小写字母toUpperCase转换成大写字母indexOf(String,index)从左开始查找lastIndexOf(String,index)

从右开始查找6.3.2String对象varbanana="banana";varindex1=banana.indexOf(‘a’);varindex2=banana.lastIndexOf(‘a’);varindex3=banana.lastIndexOf(‘h’);varindex4=banana.indexOf(‘a’,2);varindex5=banana.lastIndexOf(‘a’,4);varindex6=banana.lastIndexOf(‘h’,2);varindex7=banana.indexOf(“an”);varindex8=banana.lastIndexOf(“an”);varindex9=banana.lastIndexOf(“hh”);6.3.2String对象课堂练习vars=“一个任意字符串”;vars1=“任意字符”;编写代码,判断s1是否在s中在,输出s1的首次出现位置不在,输出”找不到指定字符:”+s1vars="一个任意字符串";vars1="任意字符";if(s.indexOf(s1)!=-1)document.writeln(s.indexOf(s1));elsedocument.writeln("找不到字符串:"+s1);举例varmyStr="五岳归来不看山";varsubStr=myStr.substring(2);varsubStr=myStr.substring(2,6);split方法用于将一个字符串分割为子字符串,然后将结果作为字符串数组返回。举例:vars="abcedfab";vara=s.split("");document.writeln(a.join("<br/>"));输出:abcedfab6.3.2String对象6.3.3Boolean对象Boolean对象varb=newBoolean(booleanValue);初始值为true:booleanValue为1、true或非空字符串初始值为false:booleanValue为0、false或空字符串toString():返回Boolean对象的字符串表示valueOf():返回指定Boolean对象的原始值6.3.4Array对象Array对象的方法concat:把两个数组组合成一个新数组并返回该数组。join:把数组的所有元素连接起来形成一个String对象并返回该对象。pop:移除数组中的最后一个元素并返回该元素。push:把新元素添加到数组中并返回数组的新长度值。reverse:反转数组的元素顺序并返回反转后的数组。shift:移除数组aArray中的第一个元素并返回该元素。slice:返回数组的一段。sort:返回一个元素已经进行了排序的Array对象。splice:从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。toLocaleString:返回由数组aArray的元素构成的字符串,若数组元素为日期对象,则该日期使用当前区域设置转换为字符串。toString:返回数组对象的字符串表示。unshift:把指定的元素插入数组开始位置并返回该数组。valueOf:返回指定Array对象的原始值。6.3.5Date对象Date对象:提供用于处理日期和时间的方法vard=newDate(DateValue);四种方式:newDate();//当前日期newDate(日期字串);newDate(年,月,日[,时,分,秒,毫秒]);newDate(毫秒);6.3.5Date对象日期对象方法语法规格意义时区Date.parse(日期字串)返回整数表示自1970年1月1日0:0:0起的毫秒数计算机指定时区日期对象.setDate(日期数)设置日期对象月份中的日期数1~31计算机指定时区日期对象.setFullYear(年[,月,日])设置日期对象中的年数,4位整数计算机指定时区日期对象.setHours(小时[,分,秒,毫秒])设置日期对象中的小时数计算机指定时区日期对象.setMilliseconds(毫秒)设置日期对象的毫秒数计算机指定时区日期对象.setMinutes(分[,秒,毫秒])设置日期对象的分钟数计算机指定时区日期对象.setMonth(月[,日])设置日期对象的月份数计算机指定时区日期对象.setSeconds(秒[,毫秒])设置日期对象的秒数计算机指定时区日期对象.setTime(总毫秒数)设置日期对象自1970年1月1日0:0:0起的毫秒数计算机指定时区日期对象.setYear()设置日期对象中的年数,如果位数小于等于两位,则年份表示19xx计算机指定时区6.3Date对象日期对象方法语法规格意义时区日期对象.setUTCDate()与setDate()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCDay()与setDay()意义相同,只是表示的时区不同格林尼治标准时间日期对象.seUTCMonth()与setMonth()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCFullYear()与setFullYear()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCHours()与setHours()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCMinutes()与setMinutes()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCSeconds()与setSeconds()意义相同,只是表示的时区不同格林尼治标准时间日期对象.setUTCMilliseconds()与setMilliseconds()意义相同,只是表示的时区不同格林尼治标准时间日期对象.toUTCString()将日期对象转换成格林尼治标准时间的日期字串格林尼治标准时间日期对象.toLocaleString()将日期对象转换成当地时区的日期字串计算机指定时间Date.UTC(年,月,日[,时,分,秒,毫秒])返回整数表示自1970年1月1日0:0:0起的毫秒数格林尼治标准时间用作Date方法的参数的整数:

值整数Seconds和minutes0至59Hours0至23Day0至6(星期几)Date1至31(月份中的天数)Months0至11(一月至十二月)6.3.5Date对象6.3.5Date对象<HTML><BODY><scriptlanguage="javaScript">varnow=newDate();varhour=now.getHours();if(hour>=0&&hour<=12) document.write("上午好!")if(hour>12&&hour<=18)document.write("下午好!");if(hour>18&&hour<24)document.write("晚上好!");document.write("<P>今天日期:"+now.getYear()+"年“+(now.getMonth()+1)+"月"+now.getDate()+"日");document.write("<P>现在时间:"+now.getHours()+"点"+now.getMinutes()+"分");</script></body></HTML>获得当前日期和时间获得小时,即当前是几点判断上午、下午还是晚上月份数字0-11,注意+1setTimeout的用法:

setTimeout(“调用的函数”,”定时的时间”)例:varmyTime=setTimeout(”disptime()”,1000);clearTimeout(myTime);1000毫秒后调用函数disptime()执行关闭定时器6.3.5Date对象6.3.5Date对象JavaScript代码<SCRIPTlanguage="JavaScript">functiondisptime(){vartime=newDate();//获得当前时间varhour=time.getHours();//获得小时、分钟、秒varminute=time.getMinutes();varsecond=time.getSeconds();varapm="AM";//默认显示上午:AMif(hour>12)//按12小时制显示{hour=hour-12;apm="PM";}if(minute<10)//如果分钟只有1位,补0显示minute="0"+minute;if(second<10)//如果秒数只有1位,补0显示second="0"+second;document.myform.myclock.value=hour+":"+minute+":"+second+""+apm;varmyTime=setTimeout("disptime()",1000);}</SCRIPT>无边框的文本框myclock使用定时器函数,每隔1秒调用disptime()函数刷新显示获得小时、分钟、秒根据12小时制调整时间和AM/PM标志确保分钟和秒显示位数为2位<STYLEtype="text/css"><!--/*设置样式:无边框的文本框*/INPUT{ font-size:50px; color:#CC0000; border-style:none}--></STYLE></HEAD><BODYonLoad="disptime()"><FORMNAME="myform"><INPUTname="myclock"type="text"value=""></FORM>设置样式:无边框的文本框Onload()事件,页面加载就调用函数:disptime(显示时间)6.3.5Date对象数组:由具有同一名字的一组连续内存单元构成。数组元素:访问数组元素应指定数组名和数组元素的下标。数组的下标:从0开始6.4

Array对象数组的定义:varc=newArray(10);

下标从0-9数组的长度为10,c.length6.4

Array对象c[6]-4560721543-89062-31645378数组名cc[0]c[1]c[2]c[3]c[11]c[10]c[9]c[8]c[7]c[5]c[4]数组元素下标

6.4

Array对象数组要占据内存空间,在JavaScript中,数组必须由new运算符动态分配内存。数组定义:varc=newArray(12);也可分为两步:varc;

c=

newArray(12);注意:当分配数组时,其中的元素还没有被初始化。6.4.2

声明与分配数组初始化数组元素c[1]=10;若给数组中所有元素赋值,结合使用循环结构varc=newArray(5);for(vari=0;i<c.length;i++){c[i]=i;}也可以使用new分配空数组,动态增大数组:varn=newArray();for(vari=0;i<5;i++){n[i]=i;}6.4.3

数组使用示例用初始化列表对数组进行初始化

varn=[10,20,30,40,50];

varn=newArray(10,20,30,40,50);初始化部分值 varn=[10,20,,40,50];编译器遇到包含初始值列表的数组声明时,它会计算出数组的长度并为数组中的元素分配存储空间。6.4.3

数组使用示例for…in控制结构对数组中的每个元素执行一个任务忽略数组中未定义的元素for(varelementintheArray)total+=theArray[element];6.4.3

数组使用示例课堂练习编写程序:创建数组array1,长度为10,每个元素的值=下标值×2+2,输出数组元素值。利用数组简化掷骰子程序中的switch结构每个数组元素代表一种情况6.4.3

数组使用示例6.4.3

数组使用示例RollDie.html

(1of2)6.4.3

数组使用示例RollDie.html

(2of2)参数传递的两种方法值传递将产生参数值的一个拷贝并把它传递给被调用的函数;不能修改调用者的数据;数值和布尔值。引用传递调用者可以让被调用的函数直接访问和修改调用者的数据;对象和数组6.4.4

引用与引用参数把数组名作为参数例如:数组的定义:vara=newArray(10);函数的调用:modifyarray(a);Array.join方法join将其参数视为字符串,指定分隔符。6.4.5

将数组传递给函数6.4.5

将数组传递给函数PassArray.html

(1of3)6.4.5

将数组传递给函数a[1][0]a[1][1]a[1][2]a[1][3]Row0Row1Row2Column0Column1Column2Column3Rowsubscript(orindex)ArraynameColumnsubscript(orindex)a[0][0]a[0][1]a[0][2]a[0][3]a[2][0]a[2][1]a[2][2]a[2][3]6.4.6

二维数组声明和初始化varb=[[1,2],[3,4,5]];也可以如下声明创建一个两行的数组,第一行有5列,第二行有3列:

varb;

b=newArray(2);

b[0]=newArray(5);

b[1]=newArray(3);6.4.6

二维数组二维数组元素的访问是通过行下标与列下标共同来实现的,如:数组名[行][列]。因为是二维数组,所以在循环显示时,需要两层循环,外层循环控制行,内层循环控制列。 for(vari=0;i<行数;i++) {for(varj=0;j<列数;j++) {…… } }6.4.6

二维数组在JavaScript程序中:创建一个具有5个元素的一维数组,数组元素为1,2,3,4,5。输出数组中所有值。调用doublearray函数,将数组的元素进行平方。再次输出数组中所有值。创建一个名为doublearray的函数参数为一个数组,无返回值。功能是将数组中的所有元素进行平方运算。课堂练习6.4.6二维数组splice在数组中插入或移除元素slice分割数组concat连接不同的数组join使用指定分隔符生成新的字符串reverse对数组执行倒序排列6.4.6二维数组<scripttype="text/javascript">varfruitArray=newArray('apple','peach','orange','lemon','lime','cherry');varremoved=fruitArray.splice(2,2,'melon','banana');document.writeln(removed+"<br/>");document.writeln(fruitArray+"<br/>");varnewFruit1=fruitArray.slice(2,4);document.writeln(newFruit1+"<br/>");document.writeln(fruitArray+"<br/>");varnewFruit2=fruitArray.concat(removed);document.writeln(newFruit2+"<br/>");document.writeln(fruitArray+"<br/>");varstring=fruitArray.join("");document.writeln(string+"<br/>");fruitArray.reverse();document.writeln(fruitArray);</script>6.5Object对象Object对象是其他本地对象(如Array、Date、String等)的根对象,并提供了创建自定义对象的基础可以利用new运算符和Object类来创建一个对象,然后为该对象一些添加属性和方法:varoObject=newObject(); //创建一个新对象oOpertyName=value; //为该对象定义属性oObject.methodName=function(){//为该对象定义方法statements};6.5Object对象<body><scriptlanguage="javascript"type="text/javascript">oCircle=newObject();oCircle.radius=3;oCircle.getArea=function(){returnthis.radius*this.radius*Math.PI;};document.writeln("设圆半径为"+oCircle.radius+",则<br/>");document.writeln("圆面积为"+oCircle.getArea()+"<br/>");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论