1. 程式人生 > >C#基礎筆記(第十九天)

C#基礎筆記(第十九天)

傳遞 函數 -s this關鍵字 none font 度量 訪問修飾符 系列

1、CSS 層疊樣式表 對HTML的補充
實現網頁內容和頁面效果的徹底分離
1.內聯樣式表(在標簽內設置元素的樣式)
<p style="background:red; font-size:xx-large">今天天氣好晴朗,處處好風光</p>
比較靈活,想給誰設置數據就給誰設置數據
但如果想讓當前頁面所有P標簽都變成這樣,得所有的都寫一遍,太麻煩了。

2.嵌入樣式表(需要在head標簽內寫<style type="text/css"></style>)
<style type="text/css">
p{

font-size:xx-small;
}
全局改變,但是不會改變到內聯樣式表,內聯樣式表的優先級更高

3.外部樣式表 link
下載別人寫好的樣式
tt{

font-size:xx-large;
}
<link href="Test.css" rel="stylesheet" type="text/css"/>
優先級低於前面兩種

2、樣式規則的選擇器(通過怎樣的途徑來獲得頁面上要設置樣式的元素)
1)、HTML Selector
tt{

}
2)、Class Selector(類選擇器,需要給要設置樣式的元素的class屬性賦值)
tt.tt1{

}
tt.tt2{
font-size:xx-large;
}

<tt class="tt1">
<tt class="tt2">
頁面中某些元素要顯示同一樣式的時候采用類 class選擇器
3)、ID選擇器(需要給要設置樣式的元素的class屬性賦值)
.p1{

}
#p2{

}
#p3{

}
#p4{

}
要保證每一個ID是唯一的,盡量不要給標簽賦值同一個ID 單一用ID
<p class="p1">
<p class="p1">
<p id="p2">
<p id="p3">
<p id="p4">
4)、關聯選擇器
標簽可以相互嵌套 根據嵌套的標簽來賦值
p em{

}

<p><em>今天天氣好晴朗</em></p>
<em>哈哈</em>
<em>哈哈哈</em>
<p>今天天氣好晴朗</p>
<p>今天天氣好晴朗</p>
<p>今天天氣好晴朗</p>
5)、組合選擇器
h1,h2,h3,h4,h5,h6,td{

}

<h1>我是一個粉刷匠</h1>
<h2>我是一個粉刷匠</h2>
<h3>我是一個粉刷匠</h3>
<h4>我是一個粉刷匠</h4>
<h5>我是一個粉刷匠</h5>
<h6>我是一個粉刷匠</h6>
<table border="1" cellspacing="0px" cellpadding="0px">
<tr>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
</tr>
<tr>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
</tr>
<tr>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
<td>粉刷本領強</td>
</tr>
6)、偽元素選擇器
偽元素選擇器是指對同一個HTML元素的各種狀態和其所包括的。部分內容的一種定義方式。例如,對於超鏈接標簽(<a></a>)的正常狀態(沒有任何動作前)、訪問過的狀態、選中狀態、光標移動到超鏈接文本上的狀態,對於段落的首字母和首行,都可以使用偽元素選擇器來定義。
常用的偽元素
A:active 選 中超鏈接時的狀態
A:hover 光標移動到超鏈接上的狀態
A:link 超鏈接的正常狀態
P:first-link 段落中的第一行文本
P:first-letter 段落中的第一個字母

a:active{
text-decoration:none;
}
a:hover{
font-size:xx-large;
}

P::first-letter{
font-size:xx-small;
}
p::first-line{
font-size:xx-large
}

<p>小李子是一個二貨<br/>
小李子是一個二貨<br/>
小李子是一個二貨<br/>
小李子是一個二貨<br/>
小李子是一個二貨</p>
<a href="#">超鏈接</a>
<a href="#">超鏈接</a>
<a href="#">超鏈接</a>
<a href="#">超鏈接</a>
<a href="#">超鏈接</a>

3、CSS字體屬性介紹
1)、字體
font-family:該屬性用於設置字體系列。
font-size:該屬性定義文字的大小,可以使用度量單位來設置字體的大小,也可以使用一個相對的字體大小。還可以使用絕對的大小標記符。絕對大小的設置為 xx-small、x-small、small、medium、large、x-large、xx-large中的任意一個。xx-small為最小,xx-large為最大。
font-style:該屬性用於定義字體樣式為normal、italic或者oblique(斜體)
text-decoration:該屬性用於文本中的下劃線、上劃線、閃爍效果。
font-weight:該屬性擁有設置粗體字的磅值,該屬性的值有:normal、bold、bolder、lighter、100~900

4、文檔流
position:absolute;絕對定位,定到哪就是哪
position:fixed; 固定
z-index:3;數值越高的越顯示在外面
div{
height:300px;
width:300px;
}
div.div1{

top:100px;
left:100px;
position:absolute;
z-index:3;
}
div.div2{

top:130px;
left:130px;
position:absolute;
z-index:2;
}
div.div3{

top:160px;
left:160px;
position:absolute;
z-index:1;
}
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>

5、文本屬性
文本屬性包括:文字間距、對齊方式、上標、下標、排列方式、首行縮進。
word-spacing:設置單詞之間的間距。
letter-spacing:設置字符之間的間距。
text-align:設置文本的水平對齊方式,取值可以是left、right、center、justfy
text-indent:設置第一行文本的縮進值
line-height:設置文本所在行的行高。

6、盒子模型
一個盒子就是div
DIV盒子和網頁或其他DIV盒子之間的間距用margin表示
DIV盒子和DIV盒子裏面的內容的間距用padding表示
DIV盒子的邊框用border表示

表示所有的外邊框間距為0。
*
{
margin:0px;
}

auto表示自動(居中)
把網頁格式,局先布好了,再往裏面填內容
先每一塊DIV都弄一個背景顏色,等局布完了,再撤掉只留內容
寫之前先以這個形式把網頁的框架搭出來。
float:left(貼著左邊漂浮) 漂浮要同個div裏的都漂浮
飄起來就不在那個div內占地方了。

7.簡單工廠和抽象類復習
1)、註釋符
單行註釋 // 註釋單行代碼
多行註釋 /*要註釋的內容*/
文檔註釋 ///註釋類和方法
HTML <!--要註釋的內容-->
CSS /*要註釋的內容*/

2)、命名規範
Camel駱駝命名規範:要求首單詞的首字母小寫,其余單詞首字母大寫,變量、字段
int age string name char gender string highSchool
int _chinese 字段加下劃線

Pascal:類或方法 GetMax GetAvg GetSum

起名一定要有意義,不要亂起

第一部分:面向對象
process 進程 操作進程

StartInfo是你要打開的那個文件的那個東西,它需要 ProcessStartInfo類型,把打開這個文件的地址傳給這個對象 再把這個對象賦值給要打開的這個startInfo,最後調用它的start方法,把它打開
//使用進程打開指定的文件
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\SJD\Desktop\AE.txt");
Process p = new Process();
p.StartInfo = psi;
p.Start();

3)、面向對象的復習
1.封裝、繼承、多態
***字段:存儲數據,訪問修飾符應該設置為priveate私有的
***屬性:保護字段,對字段的取值和賦值進行限定
***new關鍵字:1、在堆中開辟空間 2、在開辟的空間中創建對象 3、調用對象的構造函數
***this關鍵字:1.代表當前類的對象 2.調用自己的構造函數
構造函數就是一個特殊的方法
構造函數沒有void 必須是Public
單立模式,只能創建一個對象,如QQ
構造函數:初始化對象,當創建對象的時候,會調用構造函數。
給對象的每個屬性賦值的過程稱之為對象的初始化
***對字段的保護方法:
1.get()
2.set()
3.構造函數
***return:
1.立即結束本次方法
2.在方法中返回要返回的值

public Person(int age, string name,char gender,int chinese,int english,int math)
{
this.Age = age;
this.Name = name;
this.Gender = gender;
this.Chinese = chinese;
this.English = english;
this.Math = math;
}
public Person(int age,string name,char gender):this(age,name,gender,0,0,0)
{

}

4)、繼承復習
解決代碼的冗余,實現多態,增強了代碼的擴展性,便於維護。
1.單根性
2.傳遞性
子類並沒有繼承父類的構造函數,而是會默認調用父類那個無參數的構造函數。
如果一個子類繼承了一個父類,那麽這個子類除了可以使用自己的成員外,還可以使用從父類哪裏繼承過來的成員。但是父類永遠都只能使用自己的成員,而不能使用子類的成員。
子類之間也不能互相使用對方的成員。

5)、裏氏轉換
1、子類可以賦值給父類
2、如果父類中裝的是子類對象,那麽可以將這個父類轉換為子類對象
3、as
Person person = new Student();
Teacher t = person as Teacher;
轉換成功返回對應的對象
轉換失敗返回一個Null
4、is
Person person = new Student();
{
Console.WriteLine("OK,可以轉換");
}
else
{
Console.WriteLine("NO,不可以轉換");
}
轉換成功返回true
轉換失敗返回false

6)、多態
1.虛方法 virtual
2.抽象類 abstract

C#基礎筆記(第十九天)