传智播客javase就业班最全的综合笔记_第1页
传智播客javase就业班最全的综合笔记_第2页
传智播客javase就业班最全的综合笔记_第3页
传智播客javase就业班最全的综合笔记_第4页
传智播客javase就业班最全的综合笔记_第5页
已阅读5页,还剩216页未读 继续免费阅读

下载本文档

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

文档简介

Day01java基础加强 1集合 1.1集合简介 集合是专业的存储对象的容器。(存储的是对象的引用) 1.2集合分类 |-Iterable:接口。该接口在jdk1.5之后,可以让Collection集合返回迭代器对象。并且可以让Collection集 合使用增强for循环。 iterator():方法。返回迭代器方法。 |-Collection:单列集合。存储一个对象作为集合的一个元素。 |-List:元素是有序且可以重复的。 |-ArrayList:底层是数组实现。有角标,查询效率较快,但增删效率稍低。 |-LinkedList:底层是链表实现。查询效率稍慢,但增删效率较快。 |-Vector:实现和ArrayList一样。Vector是线程安全的。(方式是同步的) |-Set:元素是无序的且不可以重复的。 |-HashSet:底层哈希表。通过覆盖hashCode和equals方法实现元素的不可重复。 |-TreeSet:元素不可以重复,但可以有序。底层哈希表,二叉树实现,通过实现Comparable接口(compartTo)或者Comparator接口(compare)元素实现元素不可重复和排序。 |-Map:多列集合。存储两个(键对象,值对象)对象作为集合的一个元素。 |-HashMap:键对象不可以重复,值对象可以重复。通过覆盖hashCode和equals方法实现键对象的不可重复。 |-TreeMap:键对象不可以重复,但可以排序。通过实现Comparable接口(compartTo)或者Comparator接口(compare)元素实现元素不可重复和排序。 必须掌握:对集合的遍历? Collection集合遍历: 1)迭代器遍历: |-Iterator:迭代器接口。提供了对Collection集合的统一的元素操作。 |-hasNext:表示判断是否存在下一个元素。 |-next:表示取出下一个元素 |-remove:移除元素。 2)增强for循环 3)传统for循环 Map集合遍历: 1)entrySet 2)keySet 3)values 必须掌握的集合:ArrayListHashMap元素的操作(增删改查) 2IO流 2.1IO流简介 IO流用于解决设备与设备之间的数据传输问题。 设备:CPU,内存,硬盘,屏幕,键盘,鼠标 2.2IO流分类 按照数据流向:输入流和输出流 按照数据类型:字节流和字符流 转换流:字节流->字符流 #输入字节流(InputStream:抽象超类) |-InputStream类:所有输入字节流的超类 |-read():读取一个字节 |-read(byte[]data):读取多个字节。 |-read(byte[]data,intstart,intlength):读取指定长度的字节数组内容。start,开始位置,length,长度。 注意:如果返回-1,表示读取文件结束。 |-FileInputStream:读取文件 |-ObjectInputStream:读取对象。对象的反序列化 |-readObject():读取一个对象。 |-BufferedInputStream:带有缓冲功能 #输入字符流 |-Reader:是所有输入字符流的超类 |-read():读取一个字符 |-read(char[]data):读取多个字符 |-read(char[]data,intstart,intlength):读取指定长度的字符数组。 注意:如果返回-1,表示读取文件结束。 |-FileReader:读取字符文件 |-BufferedReader:带有缓冲功能 #输出字节流 |-OutputStream:所有输出字节流的超类 |-write(intb):写出一个字节 |-writer(byte[]data):写出多个字节 |-writer(byte[]data,intstart,intlength):写出指定长度的字节数组 |-FileOutputStream:写出字节内容到文件 |-ObjectOutputStream:写出对象到文件。对象的序列化 |-writeObject():写出一个对象 |-BufferedOutputStream:带有缓冲功能。 #输出字符流 |-Writer:所有输出字符流的超类 |-write(intc):写出一个字符 |-write(char[]data):写出多个字符 |-write(char[]data,intstart,intlength);写出指定长度的字符数组 |-write(Stringstr):写出一个字符串。 |-FileWriter:写出字符内容到文件 |-BufferedWriter:带有缓存功能 |-newLine():写出通用的一个换行符号。\r\n #转换流 InputStreamReader:输入字节流转成输入字符流 OutputStreamWrtier:输出字节流转成输出字符流练习: 1)需求:读取一个文件。 2)需求:把文件从一个盘拷贝到另一个盘 3多线程3.1什么是多线程 线程是CPU的独立的执行单元。一个时间片只允许运行一个线程。在CPU内部,多个线程在争夺CPU资 源。 进程是计算机中的一个运行的程序。一个进程可以包含多个线程。 线程可以提高资源的利用率,但不能提高程序的运行效率。 3.2创建线程 方式一:继承Thread类,覆盖run方法。run方法是线程执行任务。 方式二:实现Runnable接口,实现run方法。编写线程的执行任务代码和创建线程代码进行分离。根据面向对象。好处是可以重复利用执行任务。 3.3多线程并发问题 多个线程同时操作了共享资源(例如,成员变量) 解决并发问题: 1)同步代码块(sychronized) sychronized(锁对象){注意:锁对象对于多个线程都是唯一的 代码块 } 2)同步方法 4Socket编程 4.1Socket编程 解决计算机与计算机之后的数据传输问题。 4.2前提 IP地址:用于定位网络上的唯一一台PC机器。 端口:PC机器上的软件程序都需要监听端口。 使用端口定位到PC机器上一个软件程序。 4.3协议 UDP协议:不需要连接,速度快。数据安全性较低。可能会丢包。卡,25张/秒20张/秒 TCP/IP协议:需要连接,三次握手连接。数据安全性较高,如果丢包则重发。基于TCP/IP协议的网络编程,叫Socket编程。 Socket编程:服务器端和客户端必须掌握:编写Socket的服务器端和Socket客户端需要: 1)老师:服务器端。如果客户端连接上的话,发送一句话。然后,接收客户端的消息。 2)学生:客户端。连接上服务器,接收一句话。然后,把你们的姓名发送给服务器。 5泛型 5.1什么是泛型? 泛型:主要是用于限制集合存储元素的类型。把运行时异常提前到编译时发生。 jdk1.5之前:使用集合的时候 Listlist=newArrayList(); list.add(newCat()); list.add(newDog()); Catcat=(Cat)list.get(0) Catcat=(Cat)list.get(1);//类型转换异常ClassCastException运行时异常 jdk1.5或之后:使用集合的时候 List<Cat>list=newArrayLIst<Cat>(); list.add(newCat()); list.add(newDog());//在这行就报错,编译时异常 5.2泛型分类 #泛型类 语法: classDemo1<T>{ } 注意: 1)泛型类的泛型类型在创建泛型类对象的时候确定。例如:newDemo1<Student>(); 2)创建泛型类的对象不指定具体泛型,默认就使用Object类型。例如:newDemo();等价于new Demo<Object>(); 3)应用:ArrayList<E>HashSet<E> #泛型方法 第一种泛型方法:使用泛型类上的泛型 语法: classDemo1<T>{ publicvoidmethod1(Tt){ } } 注意: 1)该泛型方法的泛型类型,是在创建泛型类对象的时候确定。 2)应用:ArrayList的add方法 第二种泛型方法:独立的泛型方法 classDemo1<T>{ public<Q>Qmethod2(Qq){ } } 注意: 1)该独立泛型方法的泛型类型在调用时确定泛型类型。 2)应用:Arrays的asList方法 #泛型接口 语法: interfaceInterA<T>{ }classDemo3<T>implementsInterA<T>{ } 注意: 1)泛型接口的泛型类型是在创建接口实现类对象的时候确定。newDemo3<Student>();s 2)应用:ListSetMap 必须掌握:看得懂别人的泛型。6Properties文件使用 6.1为什么使用properties文件 当程序代码中会使用到一些频繁修改的参数,那么可以把这些参数放入的properties配置文件中。 6.2properties文件特征 文件后缀名:.properties 内容:以键值对象的形式存在。键和值之间通常以=号或者空格分割。 6.3使用properties步骤 2)调用load方法加载properties属性文件。 3)使用getProperty(key)得到properties属性文件的内容 7Junit测试框架 7.1简介 专业的用于单元测试的框架。第三方的程序。javase规范以外。jdk中 7.2Junit使用 1)到junit官网下载zip包,解压看到核心的juint-版本.jar包。 2)把junit的jar包导入到项目的类环境中。把jar包拷贝到项目目录中,然后右键单击->选择BuildPath-> 点击AddToBuildPath,看到一个奶瓶,证明导入成功。 3)编写单元测试方法。加上@Test注解。编写测试逻辑 4)双击测试方法,然后右键单击RunAs->JunitTest 5)看到绿条,证明测试通过;看到红条,证明测试不通过。 7.3测试方法特点 1)在方法的顶部加上@Test注解,建议方法名称:test+需要测试的方法名,方法遵守驼峰式命名法。(方法首单词小写,以后的单词首字母大写) 2)修饰符必须是public,可以用final修饰,不能有返回值,方法不能含有参数,可以抛出异常。 7.4如何运行测试方法 1)双击方法,右键单击Runas-JunitTest。运行一个单元测试方法。 2)双击类,右键单击Runas-JunitTest。运行该类上所有的单元测试方法 3)双击项目,右键单击Runas-JunitTest。运行该项目下所有的单元测试方法。 7.5查看结果 查看junit的导航条 1)看到的是绿色,表示测试通过 2)看到的是红色,表示测试不通过。 7.6判断结果 使用Junit的断言工具类Assert类 常见的断言方法: Assert.assertTrue(true);//断言真。如果true,断言成功,否则断言失败。 Assert.assertFalse(false);//断言假。如果false,断言成功,否则断言失败。 Assert.assertNull(null);//断言对象为null。如果对象为null,断言成功,否则断言失败。 Assert.assertNotNull(null);//断言对象不为null。如果对象不为null,断言成功,否则断言失败。 Assert.assertEquals(s1,s2);调用对象的equals方法判断是否相等。e1.equals(e2) Assert.assertSame(s1,s2);调用对象的内存地址判断是否相等。e1==e2 7.7关于初始化环境和清理环境方法 @Before:在每个单元测试方法执行之前执行 @After:在每个单元测试方法执行完毕之后执行 @BeforeClass:在所有单元测试方法执行之前执行1次。注意方法必须是static的 @AfterClass:在所有单元测试方法执行完毕之后执行1次。注意方法必须是static的 8反射 8.1什么是反射? 创建一个类的对象,首先执行.class字节码文件,把class的信息读取到内存中。字节码中的信息包含类名称,类实现的接口,类上的方法,方法名称,方法参数,类上的属性,属性名称,属性类型等。 在java中,“万物皆对象”!!! 可以把字节码文件的信息封装成对象。 Class类:包含类名称,类实现的接口...等类相关的信息。 Constructor类:包含类的构造方法信息。 Method类:类上的方法,方法名称,方法返回值,方法参数等方法相关的信息。 Field类:类上的属性,属性方法,属性名称,属性类型等属性相关的信息。 通过Class,Method,Filed等类对象获取类,方法,属性相关的信息,甚至是构造对象,调用方法,这样的做法叫反射!!! 8.2反射使用 1)获取类上的信息(Class) Classclass getName()类全名 getSimpleName()类简单名称 2)构造对象(Construnctor) class.newIntance(); 2)获取类上的方法信息,调用方法(Method) getName()方法名称 getReturnTypes()返回值类型 invoke(对象,实际参数);调用方法 3)获取类上的属性信息(Field) getName()属性名 getType()属性类型 总结: 1)集合:ArrayList和HashMap 2)IO流: FileInputStream、FileOutputStream BufferedReader、BufferedWriter 3)线程:创建线程方法 4)Socket编程:socket服务器+socket客户端 5)泛型:要求看的懂 6)Properites:读取属性文件内容 7)junit框架:编写单元测试方法 8)反射的作用 Day02html编程1课程回顾1)集合: ArrayList 遍历: 增强for循环 for(类型变量名:集合|数组){ } 传统for循环 for(inti=0;i<集合.size();i++){ } 迭代器 Iteratorit=集合.iterator(); while(it.hasNext()){ it.next(); } HashMap: 遍历: entrySet: Set<Entry>entrySet=集合.entrySet keySet: Set<K> keySet=集合.keySet(); Objectvalue=集合.get(key); values: Collection<V>values=集合.values();2)IO流 FileInputStream: read()/read(byte[]data)/read(byte[]data,intstart,intlength)读取字节数据 FileOutputStream write(intdata)/write(byte[]data)/write(byte[]data,intstart,intlength)写出字节数据 BufferedReader read()/read(char[]data)/read(char[]data,intstart,intlength)/readLine()读取字符 BufferedWriter write(intdata)/write(char[]data)/write(char[]data,intstart,intlength)/write(Stringstr)写出字符数据 3)Socket编程 Socket服务器端: ServerSocket对象 构建输入通道:socket.getInputStream(); 构建输出通道:socket.getOutputStream(); Socket客户端: Socket对象 构建输入通道:socket.getInputStream(); 构建输出通道:socket.getOutputStream();4)Properties文件 创建Properties对象:newProperties() 加载properties文件:load(InputStream) 读取内容:getProperty(key)5)Junit测试框架 专业的单元测试框架。第三方工具。 1)导入junit的jar包到项目中 2)编写单元测试方法。 特点:a)加上@Testb)方法修饰符必须是public,可以是final,方法没有返回值和参数,可以抛出异常 3)运行单元测试方法 a)直接运行方法b)运行类c)运行项目 4)判断结果 断言(Assert类) Assert.assertEquals(期望值,实际值); Assert.assertSame(期望值,实际值); Assert.assertTrue(boolean); 。。。。。 5)查看结果 看junit导航条 绿色:测试通过 红色:测试失败 6)反射 把class字节码信息封装成一些对象。Class类,Constructor类,Method类,Field类 反射:通过这些类的对象可以获取到该类上的相关信息(类,构造方法,普通方法,属性),甚至是构造对象,或调用对象的方法。 Class类: getName()类全名 getSimpleName()类简单名 getDeclareMethod()得到该类声明的方法 getMethod()得到该类及其超类声明的方法 getDeclareFiled()得到类上声明的属性 getField()得到类及其超类声明的属性 Contronctor类: newIntance()调用构造方法,构造对象 Method类: invoke(对象,实际参数值)调用普通方法 Field类: getName()属性名 getType()属性类型 7)泛型 泛型类classDemo<T>{} 创建泛型类对象时确定类型 泛型方法 泛型类上的泛型方法 创建泛型类对象时确定类型 独立的泛型方法 调用方法时确定类型 泛型接口 创建接口实现类对象时确定类型今天目标:Html编程2Html入门 2.1软件结构分类 之前:C/S结构(Client-Server客户端与服务器端) 应用: 聊天室、红蜘蛛、QQ 特点: 1)必须要安装客户端 2)服务器端程序升级,客户端程序同步升级 B/S结构(Browser-Server浏览器与服务器端) 应用: 特点: 1)不需要安装特定客户端(只需要安装一个浏览器软件) 2)服务器程序升级,客户端不需要升级 以后的程序基本都是基于BS结构的!! BS结构的软件,也叫网站。网站就是由一个个的网页组成。一个网页是由html代码组成。 html:hypertextmarkuplanuage超文本标记语言。该语言是学习网页制作的第一门语言,也可以是最简单的语言。html页面由一个个标记组成的。标记基本固定的。 html页面的运行:把文件的后缀名为.html或.htm,然后使用浏览器打开超文本的超级: 1)可以改变文本的字体,大小 2)显示图片 3)跳转到其他页面 2.2开发html页面工具 记事本 DreamverwerAdobe公司/FrontPage微软 ecplise/myecplise 2.3html页面结构 w3c组织,和网页制作相关的技术。html/css/javascript/xml <html>--开始标记 <head>--html头文件 </head> <body>--html文件体 </body> </html>--结束标记 2.4html头文件 html头文件,主要是用于设置html页面的标题,和告诉浏览器如何打开该html页面。 2.5html文件体 html文件体,内容可以在浏览器主体窗口看到3Html标记 3.1文本标记 标题(h1~h6) 水平线(hr) 段落(p) 段落缩进(blockquote) 上下标(sup和sub) 换行(br) 原样输出(pre) 有序列表olli 无序列表ulli 项目列表标签(dldtdd) 行内标签(span) 块标签<div> 3.2超链接标记 超链接标签,可以链接到其他资源 语法: <a>超链接内容</a> 常用属性: href:链接到的资源地址 target:链接打开方法。_self当前窗口_blank新窗口打开 超链接的原理: 每个超链接中的href属性,都要带上一个协议。会在本地的注册表查找一个指定的程序打开需要访问的资源。 常用的协议: file协议:本地的文件协议,打开本地或者局域网中的资源。(默认协议,可以省略不写) http协议:bs结构的交互协议。 如何定位到http协议的资源?? 1)首先会到本地的目录(windows/System32/drivers/etc/hosts)的host文件中查找是否存在该域名的映射IP地址。 2)如果找到,则进入该IP地址的PC机器 3)如果找不到,则继续联网,连接到网络运营商的DNS服务器,查询该域名的映射IP地址。 4)如果找到,则进入该IP的PC机器 5)找不到,则抛出“找不到服务器”错误。 ftp协议:文件上传下载协议 mail协议:发送邮件的协议,可以调用本地的发送邮件的客户端工具。 thunder协议:迅雷软件的下载协议,会调用本地安装的迅雷客户端工具。 超链接作用: 1)连接到资源 2)连接到锚点 3.3图像标记 用于显示图片 语法: <img/> 常用的属性: src:图片源的地址 width:宽度 height:高度 alt:替换文本 title:提示文本 图片热点区域:map 区域:area 练习: 1)模拟jdk的api页面的链接效果。字段,构造方法,方法 3.4表格标记 进行网页布局。 语法: <table>--一个表格 <caption></caption>--标题 <tr>--表格的一行 <th></th>--表头 <td></td>--普通的一行中的单元格 </tr> </table> 常用的表格属性: border:边框 align:对齐方式 rowspan:行单元格合并,处于两个不同行的单元格进行合并。 colspan:列单元格合并,处于两个不同列的单元格进行合并。 3.5表单标记(重点) 表单标签作用:主要是用于收集用户的数据,然后发送到后台程序处理。 场景1: 会员注册:注册页面->填写用户名,邮箱,密码等信息->提交(数据发送到后台程序)->后台 程序把数据保存到数据库中。 会员登录:登录页面->填写用户名,密码->登录(数据发送到后台程序)->后台程序判断该用 户名和密码是否存在于数据库中。 表单标签在收集用户信息,和发送用户信息的过程中起作用。 语法: <form>表单。注意其他表单的标签必须放在次标签内 <inputtype="text"/>单行文本输入域 <inputtype="password"/>单行密码输入域 <inputtype="radio"/>单选按钮 <inputtype="checkbox"/>多选按钮 <inputtype="hidden"/>隐藏域 <inputtype="file"/>文件选择域 <select></select>下拉选择框 <textarea></textarea>多行输入域 <inputtype="submit"/>提交按钮 <inputtype="reset"/>重置按钮 <inputtype="button"/>普通按钮 3.6html转义字符 在html页面中,存在一些特殊的字符,这些特殊字符不能直接原样输出到浏览器中的。例如<> 如果希望把这些特殊字符原样输出,那么就需要对他们进行转义。 常用转义字符: << >> "" && 空格  商标注册® 版权符号© 3.7框架标记 <frameset>--框架集,包含两个或两个以上的框架 <framesrc="页面"/>--框架 </frameset> 内嵌页面 <ifarmesrc="页面"></iframe> 总结: 1)html语言。html语言由标签(标记)组成 2)超链接标签。 3)图像标签。 4)表格标签 5)表单标签。(收集用户数据,发送到后台程序)作业: 完成通讯录程序 管理联系人:编号姓名性别籍贯电话QQ邮箱 功能: 1)增加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人 要求: 1)联系人数据保存在文件中。(对象IO流,ObjectOutputStream/ObjectInputStream) 2)界面使用控制台console(接收指令) 提示: 程序启动: ===================== [1]添加联系人 [2]修改联系人 [Q]退出系统 ===================== 当键盘输入1: 请输入编号:xxx回车 请输入姓名:xxx 回车 。。。。 显示:添加成功 当键盘输入4: 编号姓名性别 1张三男。。。。。 。。。。。。。。。。。。。 Day03CSS编程1课程回顾HTML编程 1)html语言:超文本标记语言。是网页制作第一门语言。 2)文本标签:水平线<hr/>、标题<h1>-<h6>、段落<p>、缩进段落<blockquote>、换行<br/>、原样输出<pre>、无序列表<ul><li>、有序列表<ol><li>、项目列表<dl><dt><dd>、行内标签<span>、块标签<div> 3)超链接:<a></a> href:链接到的资源地址。 带有协议,到本地注册表查询对应的程序去执行该资源。 http://:本地目录查找hosts文件->(找不到)->联网到网络运营的DNS服务器查 thunder:调用本地迅雷软件 target:打开方式。_self_blank 4)图像标签:<img/> src:图像源的地址 width/height宽度和高度 alt:替代文本 title:提示文本 设置热点区域:<map><areashape="rect/circle"/> 5)表格标签: <table>--一个表格 <caption>--标题 <tr>--一行 <th>--表头 <td>--单元格 <thead>--头部 <tbody>--内容 <tfoot>--脚注 align:对齐方式 width、height:宽度和高度 6)表单标签 <form/>-表单 <inputtype="password"/>密码输入域 <inputtype="text"/>单行输入域 <inputtype="radio"/>单选 <inputtype="checkbox"/>多选 <select></select>下拉选择 <inputtype="hidden"/>隐藏域:不能显示,但可以携带数据到后台 <textarea></textarea>多行输入域 <inputtype="submit"/>提交按钮:把数据提交到后台程序 <inputtype="reset"/>重置按钮:把用户输入的数据还原回默认状态 7)框架标签 <frameset>--框架集 <framesrc="页面"/>--框架 <iframesrc="页面"/>--内嵌框架 rows:按照行来划分框架集 cols:按照列来划分框架集 今天的目标:css编程2CSS入门 2.1什么是CSS? CSS,(CacasdingStyleSheet层叠样式表) 2.2CSS的作用 HTML的作用:主要是负责网页的元素结构。(毛坯房) CSS的作用:主要是负责网页的美观/样式。(装修房) 2.3CSS的使用 1)行内样式 <ahref=""style="font-size:24px;color:#F00;">超链接</a><br/> 注意: 1)在每个标签中使用style属性,属性值就是css内容 2)行内样式必须用在标签内 2)内部样式 <styletype="text/css"> a{ font-size:18px; color:#00F; }</style> 注意: 1)在html页面上使用<style>标签,标签体内的内容就是css内容 2)当css的内容非常多的时候,和html页面的代码混杂在一起,难于维护 3)外部样式(实际生产环境推荐使用) 注意: 1)编写一个后缀名为css的文件,css内容就写在文件中 2)在html页面,导入外部的css <!--导入外部css文件--><linkrel="stylesheet"href="01.css"/>3CSS语法 3.1CSS语法结构a{ font-size:28px; color:#0F0;}选择器(selector):选择哪些标签进行添加样式。css属性:以键值对的形式出现。每个css属性以;分割。 css属性名(property):给指定的标签添加什么的样式。 css属性值(value):具体的样式值。 3.2选择器 #标签选择器 语法: 标签名{ css属性; css属性; } 注意: 1)所有同名的标签都会被选择 #类选择器 语法: .class属性值{ css属性; css属性; } 注意: 1)标签必须带上class的属性。且属性值不能使用数字开头!! 2)类选择器的优先级比标签选择的优先级高!!! #ID选择器 语法: #ID属性值{ css属性; css属性; } 注意: 1)标签必须带上id属性。且属性值不能使用数字开头!! 2)ID选择器的优先级最高!!(高于类选择和标签选择器) 3)在同一个html页面中,建议不要出现重复ID值的标签,因为后面使用javascript去得到标签时(getElementById("id"))会出问题!!! #并集选择器 语言: 选择器1,选择器2,选择器3...{ css属性; css属性; } 注意: 1)并集选择器可以同时让多个选择器一起起作用 #交集选择器 语法: 选择器1选择器2选择器3{ } 注意: 1)选择到选择1中的选择2中的选择器3的标签。 #通用选择器 语法: *{ } 注意: 1)选择到所有标签 #伪类选择器 伪类选择器主要用于给标签的不同状态指定样式。 标签有以下四种状态: link:标签没有访问过的状态 vistited:标签被访问过的状态。(鼠标点击释放之后) hover:标签被访问的状态。(鼠标经过时的状态) active:标签被访问中的状态。(鼠标按下但没有松开的状态) 语法: 选择器:伪类{ } 注意: 1)提示:在CSS定义中,a:hover必须被置于a:link和a:visited之后,才是有效的。 2)提示:在CSS定义中,a:active必须被置于a:hover之后,才是有效的。 练习: 1)设计一个表格: 当鼠标经过表格的每一行的时候,表格的当前行背景色改变 3.3CSS属性和值 #CSS背景 #CSS文本 #CSS字体 #CSS列表 #CSS边框 3.4CSS盒子模型 盒子模型,把html中的标签,例如div/span看做是一个盒子。 盒子相关的css属性: 盒子的宽度和高度(width和height) 盒子的边框(border) 盒子的内边距(padding) 盒子的外边距(margin) 盒子模型是网页设计布局的关键:DIV+CSS 3.5CSS定位小结: 1)CSS作用:主要负责页面的美观。 2)CSS语法:选择器CSS属性 选择器:标签选择器,类选择器,ID选择器伪类选择(标签不同状态的样式控制) 3)常用的CSS属性 4)盒子模型:宽度和高度,边框,内边距,外边距 5)定位:相对,绝对,固定4Javascript入门 4.1Javacsript的作用 HTML:负责网页的结构。 CSS:负责网页的美观 Javascript:负责浏览器与用户的交互。 以上三门静态网页制作的语言 4.2Javascript语言历史 1994年, 微软比尔盖茨:重点放在视窗Window上IE 网景NetScape:重点放在浏览器开发,未来是互联网的天下。 网景研发出livescript语言,且把livescript植入Nevigator(领航者),占领大量用户市场。 微软跟网景,购买livescript的使用权,希望移植到IE中。拒绝微软。 1995年,Sun公司发布jdk.1.0。网景和Sun合作,livescript改名为javascript。 1995年,微软模仿livescript开发另外一套jscript。20亿美金。 微软IE免费使用,IE绑定在window。 网景控告微软,严重垄断行为。 1998年,网景被美国在线公司收购了。 2003年,网景关闭。官司盈利,6.7亿美金。网景内部员工。筹集资金,组件基金会,继续维护网景浏览器项目,基金会谋职基金(Mozilla),firefox火狐。 1997年,javascrit/jscript。欧洲制作商联盟(ECMA)指定了客户端语言的规范。 客户端语言 1)基本语法统一(ECMAScript) 2)BOM 3)DOM javascript学习: 1)ECMAScript基础语法 2)BOM 3)DOM 4.3Javascript与Java区别 1)Java是Oracle公司的产品;Javascrpt是网景公司的产品; 2)Java是编译型语言;Javascript是解释型语言; 3)Java是强类型语言;Javascript是弱类型语言; 4.4Javascript的使用 常用的方法: window.alert("提示框"); docment.write("输出内容"); 1)内部script <scripttype="text/javascript"> //window.alert("提示框"); document.write("输出内容");</script> 注意: 1)在html页面使用<script>标签,js内容放在标签体内 2)外部script 1)编写js后缀名文件,js内容写在文件内 2)导入js文件 <!--导入外部的js文件--><scriptsrc="02.js"></script>注意:不要使用<scriptsrc="02.js"/> 4.5Javascript语法 1)变量声明和数据类型 2)流程控制语句 3)定义函数调用函数 4)基于对象 4.6变量声明和数据类型 语法:var变量名=值; 注意: 1)使用var关键词定义变量,其数据类型在赋值时确定。 2)javascript中没有重复定义变量,后面声明的变量会覆盖前面同名的变量 3)使用typeof查看变量的数据类型 4)可以省略var关键词,建议不要省略。 javascript数据类型: 1)number:无论是整形还是浮点型 2)string:无论字符串还是字符 3)boolean 4)object:对象类型 5)undefiend:当变量没有被赋值时的类型 4.5字符串类型转为数值类型 字符串->整数:parseInt(字符串变量); 字符串->小数:parseFloat(字符串变量); Day04javascript基础1课程回顾CSS编程 1)使用css方式 a)在标签内使用style属性 b)html页面中使用<style>标签 c)独立的css文件,在html页面导入css文件:<linkref="stylesheet"href="文件的路径"/> 好处:把css内容和html内容分离 2)CSS语法 选择器:标签选择器、类选择器、ID选择器、并集选择器、交集选择器、通用选择器、伪类选择器 优先级从大到小:ID选择器>类选择器>标签选择器 伪类选择器的作用:为了控制标签不同状态下的样式。 link:没有被访问过 vistited:被访问过 hover:被访问时(鼠标经过时) active:被访问中(鼠标按下没有松开时) 3)常用css属性 CSS背景:background-color/background-image/background-repeat/background-position CSS文本:color、letter-spacing、text-align、text-decoration、word-spacing CSS字体:font-family、font-size、font-style、font-weight CSS边框:border-style、border-width、border-color CSS列表:list-style-type、list-style-image 4)盒子模型 width、height:决定盒子的容量 border:决定盒子的厚度 padding:内边距。决定边框与内容之间的距离。 margin:外边距。决定与其他盒子的距离。 5)CSS定位(position) 相对定位:relative。相对于原来的位置。 绝对定位:absoult。相对于父标签的位置。 固定定位:fixed。相对于浏览器的位置。今天的目标:javascript基础部分2JavaScript基础 2.1变量和数据类型 var变量名=值; 数据类型:number、string、boolean、object 变量没有赋值,类型为undefined 2.2运算符 算术运算符 比较运算符 逻辑运算符 赋值运算符 三目运算符 2.3流程控制语句 #if语句 #switch语句 #for语句 #while语句 #do-while语句 #with语句 作用:主要用于代替对象的名称。 #for-in语句:类似于java中的增强for循环 作用: 1)用于遍历数组 2)用于遍历对象 注意: 1)如果是数组。取出数组的内容.arr[i] 2)如果是对象。取出对象的属性值和方法内容person[i]; 2.4函数 定义函数语法: function函数名(形参列表){ 函数体; } 注意: 1)函数的形式参数不需要使用var关键词声明。 2)函数不用什么返回值类型,如果要返回数据,使用return关键词直接返回即可!如果函数没有返回值,但使用了变量去接收,那么接收的变量为undefined。 3)javascript中没有方法重载的概念,后面定义的函数会覆盖前面定义的同名函数。 4)javascript中实际参数和形式参数的数量可以不一致,但依然能够调用成功! 5)javascript的每个函数中都隐藏了一个叫arguments的数组,该数组的作用是用于接收函数实际参数的值。然后把argument数组的内容逐个赋值给形式参数变量。赋值的顺序是从左到右依次赋值。3基于对象学习 3.1内置对象 String Number Math Date Array 注意: 1)javascipt的数组可以不指定长度,默认是0 2)javacript的数组没有容量限制,会根据内容自动变长 3)数组中可以存储任意类型 3.2自定义对象 java:依靠class定义对象 javascript:依靠function定义对象 class对象名{ 属性 方法 } javascript定义对象语法: function对象名(属性){ 定义属性 定义方法 } 方式一:使用有参数的构造方法 functionPerson(name,age){ =name; this.age=age; this.say=function(){ } } 方式二:使用无参数的构造方法 functionPerson(){ } //创建对象 varperson=newPerson(); //在创建对象之后再定义属性和方法 //定义属性 ="rose"; person.age=30; //定义方法 person.say=function(){ alert("rose的方法"); } 方式三:使用Object对象创建对象 varperson=newObject();//注意:在javascriptt中只有一种object类型,没有其他例如Cat、Dog... //定义属性 ="jacky"; person.age=40; person.say=function(){ alert("jacky的方法"); } 方式四:使用字面量形式创建对象 varperson={ //定义属性 name:"lucy" , age:50, //定义方法 say:function(){ alert("lucy的方法"); } }; 3.3原型 注意: 1)每个javascript的对象中都隐藏了一个叫prototype的属性,该属性的类型是Prototype对象2)可以往对象的prototype属性添加方法,该添加的方法会自动添加到prototype属性所在的对象中。 原型属性:主要用于给javascipt的内置对象添加方法。 作业: 往String对象添加两个方法: 1)toCharArray():返回字符串的字符数组 2)reverse():返回反转后的字符串。abcdef->fedcba小结: 1)变量和数据类型(number、string、boolean、object) 2)运算符 3)流程控制语句 for-in语句:遍历数组和遍历对象 4)函数 函数的原理:每个对象隐含arguments数组。 5)基于对象 内置对象:String、Number、Date、Math、Array 自定义对象:四种方式定义和创建对象。4BOM编程 4.1什么是BOM编程? BOM(BroswerObjectModel):浏览器对象模型。 通过浏览器对象获取和操作浏览器的相关部分,叫BOM编程。 涉及到BOM对象: 窗口:window 地址栏:location 历史记录:history 屏幕:screen 4.2window对象 window对象表示浏览器的一个窗口。 常用的方法: open():打开新窗口 alert():提示框 confirm():确认提示框 prompt():提示输入框 setInterval():定时任务 clearInterval():清除定时任务 setTimeout():定时任务 4.3location对象 代表浏览器一个窗口中的地址栏。 常用的属性或方法: href:获取或设置当前窗口的URL reload():刷新当前页面 4.4history对象 代表浏览器窗口中的历史记录 常用的方法 back():返回上一页 forward():前进到下一页 go(参数):-1表示上一页1前进到下一页 4.5screen对象 代表浏览器窗口的屏幕 availWidth:排除window任务栏的宽度 availHeight:排除window任务栏的高度 width:window窗口屏幕宽度 height:window窗口屏幕高度 Day05javascript加强1课程回顾Javascript基础 1)数据类型:number、string、boolean、object、undefined 2)流程控制语句 if语句 for语句 switch语句 for-in语句:遍历数组和遍历对象 while语句/do-while语句 with语句:可以让with语句内的对象省略不写 3)函数 a)函数不需要声明,可以直接使用return返回数据即可! b)函数没有重载,后面的函数覆盖掉前面同名函数。 c)函数的实际参数和形式参数数量可以不一致,依然能够调用 d)函数原理:每个函数隐藏了一个arguments数组,该数组接收函数的实际参数值,然后从左到右依次赋值给函数的形式参数变量。 4)内置对象 String:charAt()indexOf()split()substring()replace()fontcolor() Number:valueOf() Math:ceil()floor()round()random() Date:getFullYear()getMonth()getDate()getHours()getMinutes()getSeconds() Array:join()reverse()反转 5)自定义对象 a)使用有参的构造方法 functionPerson(name,age){ =name; this.age=age; this.say=function(){} } varperson=newPerson("eric",20); b)使用无参的构造方法 functionPerson(){} varperson=newPerson(); ="rose"; person.say=function(){} c)利用Object对象 varperson=newObject(); ="rose"; person.say=function(){} d)使用字面量 varperson={ name:"eric", say:function(){} }; 6)对象原型 prototype属性,往原型属性添加等同于往对象添加方法 Atoype.search=function(){} arr.search(); 主要用于给内置对象添加方法 今天的目标:DOM编程 BOM编程:基于浏览器对象模型的编程。 浏览器对象: window location history screen 2DOM编程 2.1什么是DOM编程? DOM(DocumentObjectModel文档对象模型)。javascript引擎加载完html文档后,会把html页面上的每个标签封装成节点对象,通过html文档上的节点对象(标签对象)获取或设置对象的属性和调用方法,从而改变html页面显示效果,这叫DOM编程。 2.2得到Node对象 1)通过document对象的集合 document常用的集合:(主要用于获取html页面上某种类型的节点对象) all:获取html文档中的所有节点对象 forms:获取所有form节点对象 images:获取img节点对象 links:获取a超链接节点对象 2)通过节点关系(属性) 父节点:parentNode 子节点:childNodes 第一个子节点:firstChild 最后一个子节点:lastChild 上一个兄弟节点:previousSibling 下一个兄弟节点:nextSibling 3)通过document的方法 根据ID查找:document.getElementById("ID属性值");(使用最频繁) 根据name查询:document.getElementsByName("name属性值"); 根据标签查询:document.getElementsByTagName("标签名"); 2.3获取或设置Node对象属性 常用的属性: value:得到或设置标签的value属性值。通常是输入域。 innerHTML:得到或设置标签体内容。通用在有标签体的标签上面使用。例如<span>xx</span> checked:得到或设置标签的状态。通常用于单选或多项按钮 src:得到或设置图像标签的图片源。通常用于图像标签 2.4调用Node对象方法 常用的方法: 节点创建相关: document.createElement("name");创建一个标签 Node.setAttribute("name","value");设置标签对象的属性 节点添加相关: Node.appendChild(新节点);把新节点放到节点的子节点中(在某个节点下添加子节点) Node.insertBefore("新节点","指定节点");在指定节点之前添加子节点。 节点删除相关: Node.removeChild("节点");删除子节点3事件编程 3.1Java事件编程 GUI事件编程的三要素: 事件源:组件。JButton、JFrame、JPanel 事件:MouseEvent、KeyEvent、WindowEvent 事件监听器:MouseListener、KeyListener、WindowListener 3.2Javascript事件编程三要素 事件源:标签。<a><input/> 事件:click,dbclick(内置有的) 事件监听器:函数onXXXX属性 把事件监听器注册到事件源上: 标签上使用onXXXX属性注册事件监听器 关键:有哪些事件可以注册? 常用的事件: 点击相关的:(多用在按钮标签) onclick:单击事件 ondblclick:双击事件 焦点相关的:(多用在输入域标签) onfocus:聚集焦点事件 onblur:失去焦点事件 鼠标相关的: onmouseover:鼠标经过事件 onmouseout:鼠标移除事件 选项改变相关的 onchange:选项发生改变事件(多用在select标签)4正则表达式 4.1语法 语法1 re=/pattern/[flags] 语法2 re=newRegExp("pattern",["flags"]) 4.2正则表达式方法 test(str):匹配目标字符串。看是否符合正则表达式规则。返回true,表示符合。false,不符合 4.3正则常用语法 [0-9]:数字 [a-z]:小写字母 [A-Z]:大写字母 *:零或多个 ?:零或1个 +:1次或多个 {n,m}:n到m个 {m}:m个 边界匹配符: ^:开始 $:结束Day06xml基础1课程回顾Javascript加强: 1)什么是DOM编程? DOM,文档对象模型,javascript引擎在加载html页面完毕之后,把html页面的各个标签封装成对象(节点对象),然后通过javascript代码获取或设置节点属性,调用节点对象的方法。(BOM和DOM都是基于对象的编程) 2)获取DOM节点对象的方式 a)document的集合获取 document.all; document.forms; document.images; document.links; b)节点关系获取 父节点:parentNode; 子节点:childNodes; 第一个子节点:firstChild; 最后一个子节点:lastChild; 上一个兄弟节点:previousSibling; 下一个兄弟节点:nextSibling; c)document方法获取 getElementById();id属性值 getElementsByName()name属性值 getElementsByTagName();标签名 3)常用的DOM属性 value:获取或设置value属性值 innerHTML:获取或设置标签体内容 src:获取或设置图片的图片源地址 checked:获取或设置单选或多项的状态值 4)常用的DOM操作方法 创建节点:document.createElement(); 设置节点属性:setAttribute("name","value"); 插入节点:appendChild();/insertBefore(); 删除节点:removeChild(); 今天的目标:XML基础2XML入门 2.1回顾 html:主要负责网页的结构。 css:主要负责网页的美观/样式。 javascript:主要负责在浏览器端与客户进行交互。 静态的网页制作语言。 html语言特点: 1)由标签组成。<p></p><br/><h2></h2>。由w3c组成规定的! 2)html语言语法结构松散的。 <html> <p> </HTML> 大小写不区分,标签可以不配对。浏览器帮我们修正html页面 其他自定义标签能不能被解析?这些自定义标签就是XML标签。 XML标签:ExtendMarkupLanguage可扩展标记语言 2.2HTML与XML的区别 HTML语言 XML语言缩写:超文本标记语言可扩展标记语言标记的范围:由w3c组成指定的标签(固定的)没有限制的,自定义标签。(符合xml语法的标签是可以的)语法结构:语法结构松散。(大小写不区分)相对严谨(大小写区分)作用(用途):用于网页的结构1)描述带关系的数据(作为软件的配置文件) properties属性文件:键值对。不能描述数据关系。 name=eric password=1234 xml可以描述带关系数据。包含与被包含关系 <user> <name>eric</name> <password></password>

温馨提示

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

评论

0/150

提交评论