C# 面向對象之類和方法
阿新 • • 發佈:2017-09-03
姓名 特點 div 個數 closed adk job 修改 調用函數
一、新建一個類,用來存放屬性和方法( 屬性和方法寫在同一個類中)。
先新建一個類:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork 8 { 9 /* 10 * 創建人:龐 11 * 類型:P27 第一題 12 * 時間:2017.09.02 13 * 14 * *View Code*/ 15 public class Student 16 { 17 /// <summary> 18 /// 創建自我介紹的方法 19 /// </summary> 20 /// <param name="Class"></param> 21 /// <param name="Name"></param> 22 /// <param name="Age"></param> 23 /// <param name="Like"></param>24 public void SelfIntroduction() 25 { 26 Console.WriteLine("我來自"+Class+"班,我叫"+Name+",我今年"+Age+"歲,我的愛好是"+Like+"。"); 27 } 28 29 #region 學生屬性 30 /// <summary> 31 /// 學生班級 32 /// </summary> 33 publicstring Class { get; set; } 34 35 /// <summary> 36 /// 學生姓名 37 /// </summary> 38 public string Name { get; set; } 39 /// <summary> 40 /// 學生年齡 41 /// </summary> 42 public int Age { get; set; } 43 /// <summary> 44 /// 學生愛好 45 /// </summary> 46 public string Like { get; set; } 47 #endregion 48 } 49 }
然後在入口函數中將上面新建的類進行實例化,並給屬性進行賦值,並調用函數(類和入口函數在兩個頁面上)。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork 8 { 9 /* 10 * 創建人:龐 11 * 類型:P27 第一題 12 * 時間:2017.09.02 13 * 14 * **/ 15 class Program 16 { 17 static void Main(string[] args) 18 { 19 //實例化 20 Student student1 = new Student(); 21 student1.Class = "T806"; 22 student1.Name = "小李"; 23 student1.Age = 18; 24 student1.Like = "唱歌"; 25 //調用函數 26 student1.SelfIntroduction(); 27 //實例化 28 Student student2 = new Student(); 29 student2.Class = "T803"; 30 student2.Name = "小黃"; 31 student2.Age = 20; 32 student2.Like = "nv"; 33 //調用函數 34 student2.SelfIntroduction(); 35 Console.WriteLine("請按任意鍵繼續……"); 36 Console.ReadKey(); 37 } 38 } 39 }View Code
顯示效果:
二、新建一個類頁面,然後在裏面新建一個入口函數用來調用方法、實例化、賦值;在下面再新建一個類,用來存放屬性和方法。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork.題2 8 { 9 /* 10 * 創建人:龐 11 * 類型:P27 第2題 12 * 時間:2017.09.02 13 * 14 * **/ 15 public class Class2 16 { 17 /// <summary> 18 /// 創建主程序入口函數 19 /// </summary> 20 /// <param name="args"></param> 21 static void Main(string[] args) 22 { 23 Console.WriteLine("請輸入姓名:"); 24 string name = Console.ReadLine(); 25 Console.WriteLine("請輸入年齡,如果您輸入的年齡有誤,默認為18歲:"); 26 int age = Convert.ToInt32(Console.ReadLine()); 27 Console.WriteLine("請輸入您的愛好,愛好不能超過20個字符:"); 28 string like = Console.ReadLine(); 29 //給屬性賦值 30 dierti dierti = new dierti(); 31 dierti.Name = name; 32 dierti.age = age; 33 dierti.Like = like; 34 dierti.Check(); 35 Console.WriteLine("請按任意鍵繼續……"); 36 Console.ReadKey(); 37 38 } 39 /// <summary> 40 /// 學生信息類 41 /// </summary> 42 public class dierti 43 { 44 #region 屬性 45 /// <summary> 46 /// 輸入姓名 47 /// </summary> 48 public string Name { get; set; } 49 /// <summary> 50 /// 年齡 51 /// </summary> 52 public int age { get; set; } 53 public string Like { get; set; } 54 #endregion 55 /// <summary> 56 /// 封裝方法 57 /// </summary> 58 public void Check() 59 { 60 Console.WriteLine("\n你剛才輸入的姓名:{0}", Name); 61 if (age < 0 || age == -1) 62 { 63 Console.WriteLine("年齡:18"); 64 } 65 else 66 { 67 Console.WriteLine("年齡:{0}", age); 68 } 69 if (Like.Length > 20) 70 { 71 Console.WriteLine("對不起,愛好不能超過20個字符!"); 72 } 73 else 74 { 75 Console.WriteLine("愛好:{0}", Like); 76 } 77 } 78 } 79 } 80 81 }View Code
顯示效果:
1.調試的時候要修改啟動項,方法步驟如下:
首先:
然後:
三、使用不同的構造函數來創建employ類
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork.題3 8 { 9 /* 10 * 創建人:龐 11 * 類型:P57 第1題 12 * 時間:2017.09.03 13 * 14 * **/ 15 public class demo03 16 { 17 /// <summary> 18 /// 建立主入口函數 19 /// </summary> 20 /// <param name="args"></param> 21 static void Main(string[] args) 22 { 23 Employee employee = new Employee(); 24 employee.Method01("小李"); 25 employee.Method02("小楊",1001,"主管"); 26 Console.WriteLine("請按任意鍵繼續……"); 27 Console.ReadKey(); 28 } 29 /// <summary> 30 /// 建立員工類 31 /// </summary> 32 public class Employee 33 { 34 #region 定義屬性 35 public string Name { get; set; } 36 public int Id { get; set; } 37 public string Job { get; set; } 38 #endregion 39 /// <summary> 40 /// 創建方法1 41 /// </summary> 42 public void Method01(string Name) 43 { 44 Console.WriteLine("我的姓名為{0}",Name); 45 } 46 /// <summary> 47 /// 創建方法2 48 /// </summary> 49 public void Method02(string Name,int Id,string Job) 50 { 51 Console.WriteLine("我的姓名為{0},員工編號為{1},崗位是{2}。",Name,Id,Job); 52 } 53 } 54 } 55 }View Code
顯示效果:
四、使用方法的重載調用帶參數的函數
1.重載的特點:一同三不同
- 方法名稱一樣;
- 方法的參數個數不一樣;
- 參數類型不一樣;
- 當參數的類型相同時,參數的順序不一樣;
2.註意:方法的重載一定要在同一個類中進行;否則不能稱之為重載。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork.題3 8 { 9 /* 10 * 創建人:龐 11 * 類型:P57 第1題 12 * 時間:2017.09.03 13 * 14 * **/ 15 public class demo03 16 { 17 /// <summary> 18 /// 建立主入口函數 19 /// </summary> 20 /// <param name="args"></param> 21 static void Main(string[] args) 22 { 23 Employee employee = new Employee(); 24 employee.Method01("小李"); 25 employee.Method02("小楊",1001,"主管"); 26 Console.WriteLine("請按任意鍵繼續……"); 27 Console.ReadKey(); 28 } 29 /// <summary> 30 /// 建立員工類 31 /// </summary> 32 public class Employee 33 { 34 #region 定義屬性 35 public string Name { get; set; } 36 public int Id { get; set; } 37 public string Job { get; set; } 38 #endregion 39 /// <summary> 40 /// 創建方法1 41 /// </summary> 42 public void Method01(string Name) 43 { 44 Console.WriteLine("我的姓名為{0}",Name); 45 } 46 /// <summary> 47 /// 創建方法2 48 /// </summary> 49 public void Method02(string Name,int Id,string Job) 50 { 51 Console.WriteLine("我的姓名為{0},員工編號為{1},崗位是{2}。",Name,Id,Job); 52 } 53 } 54 } 55 }View Code
3.入口函數為靜態方法:
1 static void Main(string[] args) 2 { 3 //chongzai chongzai = new chongzai(); 4 methord("小李"); 5 methord(201,"小王"); 6 methord(502,"小胡","男"); 7 Console.ReadKey(); 8 }
所以在構造方法時也要標明為靜態方法,即要用到static關鍵字,否則vs會報錯:
1 public static void methord(string name) 2 { 3 Console.WriteLine("我來自T102班,我叫{0},我今年18歲,我的愛好是唱歌。", name); 4 }
顯示效果:
五、方法的重載
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _9._02WeekendHomeWork.題5 8 { 9 /* 10 * 創建人:龐花輝 11 * 時間:2017.9.03 12 * 類型:P57 第3題 13 * **/ 14 class demo05 15 { 16 /// <summary> 17 /// 創建入口函數 18 /// </summary> 19 /// <param name="args"></param> 20 static void Main(string[] args) 21 { 22 methord01(); 23 Console.WriteLine("該正方形的邊長為{0}", methord01(5)); 24 methord02(); 25 Console.WriteLine("該長方形的面積為{0}", methord02(5,6)); 26 methord03(); 27 Console.WriteLine("該圓的面積為{0}", methord03(2.2)); 28 Console.ReadKey(); 29 } 30 /// <summary> 31 /// 方法01 32 /// </summary> 33 public static void methord01(){ 34 Console.WriteLine("該正方形的邊長為5"); 35 } 36 public static int methord01(int a){ 37 return a * a; 38 } 39 /// <summary> 40 /// 方法02 41 /// </summary> 42 public static void methord02() 43 { 44 Console.WriteLine("該長方形的長和寬為5,6"); 45 } 46 public static int methord02(int b,int c) 47 { 48 return b * c; 49 } 50 /// <summary> 51 /// 方法03 52 /// </summary> 53 public static void methord03() 54 { 55 Console.WriteLine("該圓的半徑為2.2"); 56 } 57 public static double methord03(double r) 58 { 59 return r * r * Math.PI; 60 } 61 } 62 }View Code
C#中圓周率的書寫:
1 public static double methord03(double r) 2 { 3 return r * r * Math.PI; 4 }
顯示效果:
C# 面向對象之類和方法