今天學習的建構函式與字串的詳解

2021-09-06 19:39:42 字數 3678 閱讀 5494

今天學習的還好吧,但是感覺太陌生啦,或許沒有接觸的人都感覺這個太抽象,但是其實不是啦,要理解啦就可以把建構函式好好地使用啦,但是在寫程式中出的問題還是難免的·

•方法名和類名一樣,沒有返回值,連void都不用。

•建構函式可以有引數,new物件的時候傳遞函式引數即可

•如果不指定建構函式,則類有乙個預設的無參建構函式。如果指定了建構函式,則不再有預設的無參建構函式,如果需要無參建構函式,則需要自己來寫。

•建構函式可以過載,也就是有多個引數不同的建構函式。

舉例:•給前面寫的學生類新增構造方法.使在例項化學生類的時候可以通過構造方法對姓名性別年齡語數英等屬性賦值,也可以只對姓名和性別賦值.年齡預設為18歲,語數英成績預設為0分.

–張三 男 18  三科成績為:90 95 80

–小蘭 女 16  三科成績為:95 85 100

enum

gender

class

student

string

name;

public

string name

int age=18

;

//public int age

gender gender;

public gender gender

intchinese;

intmath;

int english=0

;

public student( string n,int a,gender g,int c,int m,int

e)

public

void

say()

,今年歲了,,三科成績為,,

", name, age, gender,chinese,math,english);

}} class

program

}

這就是建構函式的方法,另外還有個就是給字段賦初值,下面這樣也可以實現傳參:

從結果看:

2.寫乙個ticket類,有乙個距離屬性(本屬性唯讀,在構造方法中賦值),不能為負數,有乙個**屬性,**屬性唯讀,並且根據距離distance計算**price (1元/公里):

–0-100公里        票價不打折

–101-200公里    總額打9.5折

–201-300公里    總額打9折

–300公里以上    總額打8折

有乙個方法,可以顯示這張票的資訊.90公里90塊錢

class

ticket

this.distance =d;

}intdistance;

public

intdistance

}double price = 500

;

public

double

price

else

if (distance > 100 && distance <= 200

)

else

if (distance > 200 && distance <= 300

)

else}}

}}class

program

}

這就是構造方法。

2.欄位與屬性

簡單的說下,就是前面有-的都是字段,+的為屬性和方法。

3.命名空間

•namespace(命名空間),用於解決類重名問題,可以看做「類的資料夾」。

•如果**和被使用的類在乙個namespace則不需要using。

•在不同命名空間下的類呼叫有兩種方法:

–寫全稱  命名空間.類名

–先using引用命名空間,再呼叫

4.字串的處理

•string可以看做是char的唯讀陣列。char c = s[1];。例子:遍歷輸出string中的每個元素。

•c#中字串有乙個重要的特性:不可變性,字串一旦宣告就不再可以改變。所以只能通過索引來讀取指定位置的char,不能對指定位置的char進行修改。

•如果要對char進行修改,那麼就必須建立乙個新的字串,用s. tochararray()方法得到字串的char陣列,對陣列進行修改後,呼叫new string(char)這個建構函式(暫時不用細研究)來建立char陣列的字串。一旦字串被建立,那麼char陣列的修改也不會造成字串的變化。例子:將字串中的a替換為a。

•練習一:隨機輸入你心中想到的乙個名字,然後輸出它的字串長度  length:可以得字串的長度

enum

gnder

class

program

static

void length(string

name)

}

•一切型別都可以呼叫.tostring()方法轉換成字串型別.

5.string類常用方法

•tolower():得到字串的小寫形式。

•注意字串是不可變的,所以這些函式都不會直接改變字串的內容,而是把修改後的字串的值通過函式返回值的形式返回。s.tolower()與s=s.tolower()

•toupper():得到字串的大寫形式; trim()去掉字串兩端的空白。

•s1.equals(s2, stringcomparison.ordinalignorecase),兩個字串進行比較不區分大小寫的比較。

•string split(params char separator):將字串按照指定的分割符分割為字串陣列;

•string split(char separator, stringsplitoptions options)將字串按照指定的char分割符分割為字串陣列( options 取removeemptyentries的時候移除結果中的空白字串);

•字串替換:string replace(string oldvalue, string newvalue)將字串中的出現oldvalue的地方替換為newvalue。例子:名字替換。

•取子字串:string substring(int startindex),取從位置startindex開始一直到最後的子字串;

•string substring(int startindex, int length),取從位置startindex開始長度為length的子字串,如果子字串的長度不足length則報錯。

•bool contains(string value)判斷字串中是否含有子串value

•bool startswith(string value)判斷字串是否以子串value開始;

•bool endswith (string value)判斷字串是否以子串value結束;

•int indexof(string value):取子串value第一次出現的位置。

•int indexof(string value,int startindex)

今天在雲和學院學習了這些,也是我邁向面向物件導向的開始··························

字元與字串的處理函式

putchar ch ch getchar gets 字元陣列 從終端輸入乙個字串到字元陣列 puts 字元陣列 將字串輸出到終端 strcat 字元陣列1,字元陣列2 把字串2接到字串1後面 strcpy 字元陣列1,字元陣列2 把字串2複製到字串1中去 strcmp 字元陣列1,字元陣列2 比較...

swift 字串的構造

字串的拼接可以用 但是字串沒有 使用 let str1 text let str2 setting letstr str1 str2 print str 字串的插入 var nunber int nunber 4 var url string url var message dhiudha png ...

與字串相關的函式

一 求字串長度的函式 strlen 二 長度不受限制的字串函式 strcpy strcmp strcat 三 長度受限制的字串函式 strncpy strncat strncmp 四 字串查詢 strstr strtok 五 錯誤資訊報告 strerror 一 求字串長度的函式 strlen 注意 ...