现在的位置: 首页 > 综合 > 正文

黑马程序员_学习日记13_视频中的基本知识点补充

2013年12月09日 ⁄ 综合 ⁄ 共 8341字 ⁄ 字号 评论关闭

视频中的重要知识点

 

C#

l        在定义的方法中尽量不要对用户做输入提示,让主函数提示,否则会缩小方法适用范围

l        类:类不占内存,对象才占内存

在我们自己定义的类中,写方法时,先不加static

在类中定义的变量我们通常叫属性,其实应该叫字段

Java在类外只能用方法给变量赋值

什么叫属性?通俗点说就是定义一个public的具有get/set方法的变量,这个变量是用于保护一个私有变量的。

允许外部访问的变量一定要声明为属性

字段封装

l        当我们初始化一个类时,系统会自动对这个类的属性进行初始化:

数字类型初始化为0

string类型初始化为null

char类型初始化为\0

使用构造方法的好处:

(1)      对多个属性进行赋值时,不需要重复的写实例名

(2)      可以保证用户在new一个对象的时候必须对某一个属性进行赋值

(3)      和(2)类似,在创建对象时,对只读属性进行初始化

构造方法没有返回值,连void都可以省略不写;定义构造方法一般加public;构造方法传参是只读属性

类图:项目->右键->查看类关系图

l        析构函数(前面加~):构造函数是实例化对象时最先调用的方法,析构函数是最后调用的方法。

不能在结构中定义析构函数,只能对类使用析构函数。

一个类只能有一个析构函数

无法继承或重载析构函数,它们是自动被调用的

析构函数既没有修饰符,也没有参数

params 传递多参数

l        如果代码和被使用的类在一个namespace则不需要using

在不同命名空间下的类调用有两种方法:

1、 写全称命名空间.类名

2、 using引用命名空间,再调用

可以在命名空间下建立命名空间。.Net命名空间是逻辑划分,和物理位置无关

System.Net框架的根命名空间

常用命名空间:System.Threading
和线程有关 Text和文本编码有关 Data和数据库操作有关 Collections
和集合有关

l        string可以看做是char的只读数组。

C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改

如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new
string(char[])
这个构造函数来创建char

数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。

 

String类常用方法:

ToLower():得到字符串的小写形式

注意:字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。

ToUpper():得到字符串的大写形式;Trim():去掉字符串两端的空白

s1.Equals(s2,StringComparison.OrdinalIgnoreCase)两个字符串进行比较不区分大小写

       字符串的连接用“+”,两边只要有一个是字符串类型,另一个也会被自动转换为字符串类型;一切对象都可以用ToString()方法转换成字符串类型

      
字符串的分割:string[] Split(char[] separator,StringSplitOptions options)
将字符串按照指定的char分隔符分割为字符串数组(optionsRemoveEmptyEntries的时候移除结果中的空白字符串)

字符串替换:string Replace(string oldValue,string newValue)将字符串中出现oldValue的地方替换为newValue

取子字符串:string Substring(int startIndex,int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。

boolContains(string value)
判断字符串中是否含有子串value,可用于过滤敏感词汇

boolStartsWith(string value)
判断字符串是否以子串value开始

boolEndsWith(string value)

intIndexOf(string value)
取子串value第一次出现的位置

 

l        方法中定义的变量称为局部变量,不能加访问修饰符

 

 

数据库

l        平时谈到“数据库”可能有两种含义:

MSSQLServerOracle等某种DBMS;存放一堆数据表的一个分类(Catalog

不同品牌的DBMS有自己的不同特点:MYSQLMSSQLServerDB2OracleAccessSybase等。对于开发人员来讲大同小异

除了AccessSQLServerCE等文件型数据库之外,大部分数据库都需要数据库服务器才能运行。学习、开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器上。

l        Catalog(分类)的作用:

便于对各个catalog进行个性化管理;

避免命名冲突;

安全性更高。

列(Column)、字段(Field

l        SQLServer的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行。

l        用标识列实现字段自增可以避免并发等问题,不要开发人员控制自增。用标识列的字段在insert的时候不用指定主键的值。

Int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低,数据导入导出的时候很痛苦。

Guid的优点:效率高、数据导入导出方便;缺点占用空间大、不易读。

l        Where中可以使用的其他逻辑运算符:orandnot<>>=<=!=(或<>)等。

ORDER BY子句要放到WHERE子句之后

l        Alter::用于在已有的表中添加、修改或删除列

添加列:ALTERTABLE table_name

ADD column_name datatype

删除列:ALTERTABLE table_name

             
DROP COLUMN
column_name

更改表中列的数据类型:ALTERTABLE table_name

                                    
ALTER COLUMN column_name datatype

 

 

ADO.Net

ADO.Net中提供了对各种不同数据库的统一操作接口。

l        ExecuteNonQuery方法执行一个非查询语句(UpdateInsertDelete等)

ExecuteScalar方法用于执行查询,返回object类型

      
得到自动增长字段的主键值,在values关键词前加上output inserted.Id,其中Id为主键字段名。执行查询结果就是插入的主键值,用ExecuteScalar执行最方便。例:

cmd.CommandText=”Insertinto T_Users(UserName,Password) output inserted.Id values(‘admin’,’888888’)”;

inti=Convert.ToInt32(cmd.ExecuteScalar());

ExecuteReader执行有多行结果集的,例

SqlDataReaderreader=cmd.ExecuteReader();

while(reader.Read())

{

       Console.WriteLine(reader.GetString(1));

}

readerGetStringGetInt32等方法只接受整数参数,也就是序号,用GetOrdinal方法根据列名动态得到序号

l        using在出了作用域以后调用DisposeSqlConnectionFileStream等的Dispose内部都会做这样的判断:判断有没有close,没有则先CloseDispose

l        WinForm中新建一个类,这个类要写在 class Form
类下面,否则报错。

一个类的ToString方法默认返回这个类的类名

ComboBoxDisplayMember属性:设定列表中显示对象的哪种属性

l        (视频:读取配置中的连接字符串)访问数据库的三种方式DataReaderDataSet、强类型DataSet

l        将连接字符串写在App.config中:

添加App.config文件:添加→新建项→常规→应用程序配置文件。App.config.Net通用配置文件,在ASP.Net中也能同样使用。

App.config中添加connectionStrings段,添加一个add项,用name属性起一个名字(比如DbConnStr),connectionStrings属性指定连接字符串。

在“引用”节点上点右键“添加引用”,找到System.configuration。不是所有.Net中的类都能直接调用,类所在的Assembly要被添加到项目的引用中才可以。

ConfigurationManager.ConnectionStrings[“DbConnStr”].ConnectionString得到连接字符串。

l        文件选择对话框 FolderBrowserDialog

按照通配符搜索目录下的文件string[] Directory.GetFiles(string path,string searchPattern,SearchOptionsearchOption)

Path.GetFileNameWithoutExtension(filename),得到文件的文件名(不要扩展名);Path.Combine(stringpath1,string path2),将两个路径合并(高级字符串拼接);Path.GetExtension(string
path)
,得到文件的后缀;Path.GetFileName(string path),得到文件的文件名;Path.GetFullPath(string path):得到文件的全路径

string[] lines = File.ReadAllLines(file);//当文件很小时不用StreamReader,可以一次性加载

 

 

HTML

l        浏览器兼容性测试:ACID

IE是浏览器的一种,还有FireFoxOperaChrome等,注意遨游、(Maxthon)、世界之窗、搜狗浏览器、360浏览器并不是独立于IE的,其内核还是IE。用WebBrowser控件开发浏览器

所谓Trident引擎就是IEWebBrowser控件。很多非IE核心的浏览器用的是WebKit引擎,比如遨游3或搜狗的双核、ChromeSafari

l        静态页面:有一个html页面保存在服务器上

动态页面:服务器上没有浏览者要看的页面,而是服务器动态生成的HTML页面发给浏览器,动态语言的服务器端可以用C#VB.NetPHPJavaC等编写

l        所有内容都在<html></html>标签之内;<head></head>内放的是头部信息,是对页面的描述,不会直接显示在页面内,<title><head>

body标签的bgcolor属性可以设定网页的背景颜色

l        HTMLXML的联系、区别

属性值:HTML中属性值既可以用单引号括起来,也可以用双引号,甚至不用引号(不推荐)。

注释:HTMLXML一样用<!--注释-->

特殊字符:HTML<>有特殊含义,空格是不会被显示的,所以需要特殊符号,相当于C#中的‘\n’转义符。&lt;(小于号,less
than
);&gt;(大于号,greater than);&nbsp;(空格,no-break space)。

格式标签:<p></p>创建段落;<br/>回车,也可以写成<br>,在HTML中有一些标签可以不关闭,<br>就是一个,这是和XML不一样的地方,但为了遵循XHTML规范,推荐像XML一样严格关闭。

l        文字格式:

<br/>回车,<p>分段。<p>前后会有较大的空白,<br/>则没有

<center>传智博客</center>居中显示

h标签,HTML定义了<h1></h1><h6></h6>六个h标签,分别表示不同大小的字体。

<b>a</b>粗体

<font></font>字体标签

l        超链接深入

相对URL:相对URL表示相对于当前文档的资源,“/”表示网站根目录,“../”表示父目录,“../../”表示父目录的父目录,“./”或者什么都不写表示相对于当前路径的目录。站内引用最好用相对URL,这样域名改变了、目录改变了都不受影响。例:

<a href=”a.htm”><img src=”a.jpg”/></a>

<a>target属性设为”_blank”就可以在新窗口中打开超链接

name属性为<a>起名字:<a name=”Last”>这里是最后</a>。这样可以通过<a
href=”#Last”>
转到平台</a>来跳转到超链接的部分。

l        图片

<img src=”a.jpg”/>注意图片是链接的,不是插入的,所以如果src指向的文件不存在了,就看不见了。alt属性为图片无法显示时显示的文本,鼠标放上去也会有悬浮提示“点击查看大图”;border属性指定边框,border=”0”,不显示边框;widthheight属性指定图片的显示大小,如果不指定则是图片的原始大小。最好指定,如果不指定,图片会不占位置,图片下载后才调整大小,会造成页面很乱。

如果网页上要显示小图,不要只把大图设定一下widthheight来缩小,因为仍然会下载大图,会使得加载速度很慢。

l        列表、表格

列表:<ul><li>灌水区</li><li>版务区</li><li>原创贴图</li></ul>unordered
list

有序的列表<ol></ol>,用的少 ordered list

表格:<table></table>为表格,在内部通过<tr>创建行,<tr>内部通过<td>创建单元格。可以将tableborder属性设为0来隐藏表格线。

<tr>的属性:align
水平对齐,可选值leftrightcentervalign
垂直对齐,可选值topmiddlebottom

建议将表头用<thead>代替<tr>

l        关于表单(视频教程)网站表单与填表

<form>标签为表单标签。如果要把数据提交到数据库,则需要将<input><textarea><select>等表单元素放到form中。

<input>是主要的表单元素,type的可选值:submit(提交按钮)、button(普通按钮)、checkbox(复选框)、file(文件选择框)、hidden(隐藏字段)、image(图片按钮)、password(密码框)、radio(单选按钮)、reset(重置)、text(文本框)

 

Input表单详解

Submit:点击submit按钮表单就会被提交给服务器,中文IE下默认按钮文本为“提交查询”,可以设置value属性修改按钮的显示文本

Textsize属性为宽度,value为值,maxlength为可以输入的最大长度,readonly只读。

<input type = “text” readonly/>或者<input type = “text” readonly=”readonly”/>(推荐)

只有一个可选值的属性可以省略属性值,只写属性名

Radio:通过name属性分组,通过取指定name的值就知道谁被选中,不用单独判断

File:向服务器提交file的内容,formenctype必须设置为multipart/form-datamethod属性为POST

image:使用src属性指定图片的地址,用来实现美化的“登录按钮”。

<select>标签

l        用来创建类似于WinForm中的ComboBox或者ListBox

l        如果size属性大于1就是ListBox,否则就是ComboBox

<selectmultiple>或者<selectmultiple=”multiple”>(推荐),那么就是可以多选的ListBox

l        select中的项是<option><option>北京</option>还可以设定项的值

<optionvalue=”1”>北京</option>

l        将一个option设置为选中:<optionselected>333</option>或者

<optionselected=”selected”>333</option>(推荐)就可以将这个项设定为选择项

l        如何实现“不选择”,添加一个<option value=”-1”>--不选择--<option>,然后编程判断select选中的值如果是-1就认为是不选择。

l        select分组选项,可以使用optgroup对数据进行分组,分组本身不会被选择,无论对于下拉列表还是列表框都适用。

 

l        其他标签:

<textarea>多行文本(也是表单元素):<textarea>文本</textarea>colsrows属性表示行数和列数。

<label>:在<input type=”text”>前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id<label
for=”txt1”>asdfad</label>

fieldsetGroupBox效果,将控件划分一个区域,看起来更规整

       <fieldset>

              <legend>常用</legend>

              <inputtype=”text”/>

</fieldset>

l        样式选择器:对于非元素内联的样式需要定义样式选择器,通俗的说就是这些样式适合于哪些元素;三种:标签选择器、class选择器、id选择器

1、标签选择器 input{border-color:Yellow;color:Red;},对于指定的标签采用统一的样式

2class选择器,定义一个命名的样式,然后在用到它的时候设定元素的class属性为样式的名称,还可以同时设定多个class,名称之间加空格。

       样式名称开头加“.

              .warning{background:Yellow;}

              .highlight{font-size:xx-large;cursor:help;}

<table><tr><td class=”highlight”>aaa</td><tdclass=”warning”>bb</td><td class=”highlight warning”>ccc</td></tr></table>

3、标签+class选择器

class选择器也可以针对不同的标签,实现相同的样式对于不同的标签有不用的效果,只要在样式名前加标签名即可。

       input.accountno{text-align:right;color:Red;}

       label.accountno{font-style:italic;}

       <input class=”accountno” type=”text”value=”1111111”/>

       <label class=”accountno”>33333</label>

4、 
id选择器

为指定id的元素设定样式,id前加#

       #username

       {

       font-size:xx-large;

}

       <input id=”username” type=”text”value=”aaaaaa”/>

 

 

问题:

fieldsetdivspan有何区别?

列表与表格的区别?

class选择器与id选择器的区别?

【上篇】
【下篇】

抱歉!评论已关闭.