1 / 28

زبان شی گرای c#

زبان شی گرای c#. بخش دوم رشته ها کلاس ( سازنده – مخرب – ارث بری و چند ریختی). رشته ها. تعریف یک رشته به شکل زیر می باشد: String نام متغیر رشته ای ; مثال : string strname = “university”; نکته: دررشته ها می توان به کاراکترهای آن دستیابی داشت: Char ch = strname [2];.

judith
Download Presentation

زبان شی گرای c#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. زبان شی گرای c# بخش دوم رشته ها کلاس ( سازنده – مخرب – ارث بری و چند ریختی)

  2. رشته ها • تعریف یک رشته به شکل زیر می باشد: • String نام متغیر رشته ای; مثال: string strname = “university”; نکته: دررشته ها می توان به کاراکترهای آن دستیابی داشت: Char ch = strname[2];

  3. متد کار با رشته ها: • متد copy to: تعدادی کاراکتر را ازمکان مشخص از یک رشته در آرایه کاراکتری کپی می کند. String st; Char[] charrarray; St = “hello worls”; St.copyto(0,charrarray,0,5); مبدا اندیس مقصد تعداد

  4. متد کار با رشته ها(ادامه ...) • متد length: طول رشته را بر می گرداند: • Intlen = st.lenght(); • متد Compareto: مقایسه دو رشته : • St.compareto(s2); • متد Equals: تساوی دو رشته را بر می گرداند: • St.equals(s2); • String.equals(st,st2); • متد startswith: تعیین می کند آیا رشته ای با رشته خاصی شروع میشود: • St.startswith(st2)

  5. متد کار با رشته ها(ادامه ...) • مثال: • String[] strname = new string[4]{“azad” “university”, “shahr”, “ghods”}; For(inti=0;i<strname.lenght();i++) if(strname[i].startswith(“az”)) label1.text = strname[i]+”startswithaz”;

  6. متد کار با رشته ها(ادامه ...) • متد Endswith:مشخص می کند آیا رشته با رشته خاصی به اتمام می رسد: • String.Endswith(st); • متد indexof: اولین مکان وقوع رشته ای را در رشته دیگر نشان می دهد. • St.Indexof(‘کاراکتر’ یا “رشته”); • St.Indexof(‘کاراکتر’ یا “رشته”,شماره شروع جستجو,تعداد جستجو); • متد lastindexof: شماره آخرین وقوع یک رشته در رشته ای دیگر (فرمت آن همانند indexof می باشد.) • نکته: اگرموجود نباشد عدد 1- را بر می گردانند.

  7. متد کار با رشته ها(ادامه ...) • متد lastindexofany: هرکدام از کاراکترهای آرایه را ببیند اندیس آن را بر می گرداند. Char[] charlist = new char[3]{‘a’,’b’,’c’}; St.indexofany(charlist,شماره شروع,تعداد); متد lastindexofany : همانند متد بالا اما اندیس آخرین کارکتر پیدا شده را بر می گرداند.

  8. متد کار با رشته ها(ادامه ...) • متد replace: رشته ای را با رشته دیگر جایگزین میکند. String st = “university”; St = st.replace(‘e’,’s’); Label1.text = st; • متد toupper()و Tolower: • St.tolower(); • متد Trim() : فضای خالی سمت راست و چپ رشته را حذف می کند. • St.Trim();

  9. متد کار با رشته ها(ادامه ...) • متد TrimEnd(): فضای خالی انتهای رشته را حذف می کند: St.TrimEnd(); • متد TrimStart() : فضای خالی انتهای رشته را حذف می کند: St.TrimStart(); • متد Substring: بخشی از یک رشته را بر می گرداند: • St.substring(مکان شروع, تعداد);

  10. متد کار با رشته ها(ادامه ...) • متد Remove: بخشی از یک رشته را حذف می کند. • St.Remove(مکان شروع , تعداد); • متد Insert :رشته ای را در مکان خاصی قرار می دهد. • متد Sprit : رشته ای را با ساتفاده از یک جدا کننده خاص به چند زیر رشته تبدیل می کند: String strname = “azad university shahreghods”; String[] str = new string[3]; Strname = strname.split(‘ ‘); Label2.text = strname[0];

  11. کلاس ها در c#: • جهت ایجاد کلاس در C# از واژه کلیدی class استفاده می شود. • مراحل ایجاد: 1- برروی نام پروژه راست کلیک کرد(shift+alt+c) 2- گزینه add و سپس class را انتخاب می کنید. 3- نامی برای کلاس انتخاب کنید. Public class نام کلاس { اعضا کلاس ; }

  12. کلاس ها در c#: • بعد از ساخت کلاس می بایست آن را نمونه سازی کرد. • نمونه سازی یعنی ایجاد یک شی. • نام کلاس نام شی = new نام کلاس (); • نحوه دسترسی به اشیا یک کلاس: • نام شی . هر یک از اعضا

  13. اعضا کلاس • نحوه تعریف • نوع اعضا عضو کلاس • نوع اعضا همان سطح دستیابی می باشند. • Public • Private • protected • نکته : اگر سطح دستیابی تعریف نشود private در نظر گرفته می شود.

  14. انواع اعضا • 1- ثابت ها: • Private const int x = 10; • 2- فیلدها: همانند متغیر ها هستند و برای نگهداری مقادیر از نها استفاده می شود. • Private/public int y=99; • خواص : متدهایی هستند که داده های خود را مقداردهی و مقدار آنها را بر می گر دانند. از set برای مقداردهی و از get برای برگرداندن مقدار استفاده می شود.

  15. انواع اعضا(ادامه..) namespace classes { class simple { private int _number_of_doors = 4; public intnumber_of_doors { get { return _number_of_doors; } set { if (value >= 2 && value <= 4) _number_of_doors = value; } } } BUTTON private void button1_Click(object sender, EventArgs e) { simple obj1_simple = new simple(); obj1_simple.number_of_doors = 8; MessageBox.Show(obj1_simple.number_of_doors.ToString()); }

  16. سازنده : • با استفاده از سازنده می توان به فیلدها مقدار اولیه داد و یا زمان ایجاد شی آنها را با مقادیر دلخواهد بخوانیم. • نحوه تعریف سازنده: Public نام کلاس { } • نام سازنده با نام کلاس یکسان است. • سازنده مثل یک متد رفتار می کند اما برای آن هیچ نوع خروجی حتی void هم تعریف نمی کنیم. • ورودی های سازنده می تواند متغیر و وابسته به تعداد ورودی هایی باشد که مقدار دهی می شوند.

  17. مثال هایی از سازنده: Class Car namespace classes { public class car { public int y; public string color; public int _speed; public int _number_of_doors; ///constructon /// public car() { color = "white"; _speed = 120; _number_of_doors = 3; } } } BUTTON private void button7_Click(object sender, EventArgs e) { car obj = new car(); label4.Text += obj._number_of_doors.ToString() + "\r" + obj._speed.ToString() + "\r" + obj.color; }

  18. مثال هایی از سازنده ها: BUTTON private void button8_Click(object sender, EventArgs e) { time t4 = new time(12, 25, 42); time t2 = new time(1); MessageBox.Show(t4._hour.ToString() + t4._minute.ToString()); MessageBox.Show(t2._hour.ToString()); } Class time namespace classes { class time { public int _hour; public int _minute; public int _second; public time(int h, int m, int s) { settime(h, m, s); } public time(int h) { settime(h, 0, 0); } public void settime(int h, int m, int s) { _hour = h; _minute = m; _second = s; } } }

  19. مخرب • جهت باز پس گیری حافظه از تمام نمونه ها از مخرب استفاده می شود. • نحوه تعریف: ~ نام کلاس() { }

  20. مرجع کلاس به عنوان فیلد کلاس دیگر • می توان از فیلدهای دیگر کلاسها برای کلاس دیگر استفاده نمود بدین ترتیب که در یک کلاس فیلدی از نوع کلاس دیگر تعریف شده و با پارامترهای مشخص صدا زده شود.

  21. مثال: namespace WindowsFormsApplication35 { class education { public int term; public intnumberofcourse; public education() { term = 2; numberofcourse = 3; } } }

  22. مثال (ادامه ...): namespace WindowsFormsApplication35 { class student { public string name; public string family; public string birthday; public education example; public student(string n, string f, string b, education std) { name = n; family = f; birthday = b; example = std; } public string tostudentstring() { return string.Format("{0}{1}{2}{3}{4}", name, family, birthday, example.term, example.numberofcourse); } } }

  23. مثال (ادامه ...) namespace WindowsFormsApplication35 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { education ex = new education(); student exg = new student("ahmad","ahmadi","1356",ex); label1.Text += exg.tostudentstring(); } } }

  24. ارث بری: • تعریف فرزندی برای یک کلاس Class derivedclass:baseclass { … }

  25. مثال ارث بری: class sdf { protected long Id; protected long year; public long ID { get { return Id; } set { Id = value; } } public long YEAR { get { return year; } set { year = value; } } }

  26. مثال ارث بری (ادامه...): class stf :sdf { private intreg; public int REG { get { return reg; } set { reg = value; } } } Button: private void button2_Click(object sender, EventArgs e) { stfobj = new stf(); obj.ID = 87996573; obj.YEAR = 1389; obj.REG = 3; label1.Text = obj.ID + "\r" + obj.REG + "\r" + obj.YEAR; }

  27. چند ریختی • توابع هم نام می توانند در کلاس های فرزند و والد باشند با این توصیف که کلاس هم نام در والد با کلمه کلیدی virtual و همان تابع در کلاس فرزند با گلمه کلیدی override می آیند.

  28. مثال چند ریختی: • کلاس والد public virtual string show() { return "we are in baseclass"; } • کلاس فرزند public override string show() { return "we are in derived class"; } • درون یک button sdf obj1 = new sdf();//parent stfobj2 = new stf();//child label1.Text += obj2.show();

More Related