c#类、方法

c#类、方法 1.类和对象internal class Program { static void Main(string[] args) { //类对象的模板或者对象蓝图具有相同属性和方法的集合 //对象类的实例化 //类的作用定义属性、字段、方法 通过类构建对象的作用 //对象作用给具体对象的属性和字段赋值 以及调用方法 //类人类 人类都包含年龄、性别 吃喝拉撒行为 //对象张三 李四 //创建对象类名 对象名 new 类名() Student zhangsan new Student(); //对象属性赋值 对象.属性值 zhangsan.Name 张三; zhangsan.Age 1; zhangsan.Sex 男; //访问对象属性 对象.属性值 Console.WriteLine(zhangsan.Age); //创建对象 对象赋值的第二种方式 Student list new Student() { Name 李四,Age 20,Sex 女}; Console.WriteLine(list.Name); //创建多个对象 string s ; for (int i 0; i 10; i) { //创建对象 Student s1 new Student(); s1.Name 学生 i 号; s1.Age i*20; s1.Sex i % 2 0 ? 男 : 女; s s1.Name : s1.Age : s1.Sex \n; } Console.WriteLine(s); } } //定义类public class Student //一般修饰符选择 public/internal //class类的关键字 //Student 类名大驼峰命名法则 //public修饰符公共的公开的类 //private 私有的类 //internal 内部的修饰 //protected 受保护的 public class Student { private int _age; //字段在类内部使用时候一般定义成字段并且为私有的并且名字一般添加_单词首字母小写 //属性定义公共的 并且首字母要大写并且加上set和get访问器属性一般对外调用。 //属性内部本质是访问内部私有的字段 public int Age { get; set; } //带get set属于属性 public string Name { get; set; } public string Sex { get; set; } }2.值类型和引用类型internal class Program { static void Main(string[] args) { //值类型:变量存储值本身存在栈空间中在赋值过程中把值本身复制拷贝一份把拷贝一份给新变量了在去修改 //其中一个时候 ,另外一个不会受影响 //值类型:int float double bool char long uint sbyte ushort ulong 枚举 结构体类型 int a 10; int b a;//出现赋值过程 把值拷贝了一份赋值bb当成副本 a 30; Console.WriteLine(b); //引用类型:变量存储的对象的引用或者说变量保存是内存地址存储在堆空间 在赋值过程中把内存地址复制一份新变量和之前变量内存地址一样 //这俩个变量是指向同一个内存地址再去修改其中一个另一个会被修改。 //引用类型:string(特殊的引用类型)、class 、数组、集合 Random等 //创建对象 Book b1 new Book(); b1.Name 明朝那些事; Book b2 b1;//赋值过程 b2.Name 清朝; Console.WriteLine(b1.Name);// 清朝 } } public class Book { public string Name { get; set; } }3.方法的定义和调用internal class Program { //都是在Program里面去定义和调用 static void Main(string[] args) { Console.WriteLine(hello world);//hello world实参在调用方法传递的实际的值 //实参在调用方法传递的实际值 //形参在定义方法时候小括号里面int aa就是形参形式上参数。 //返回值是方法的具体结果 //Console.WriteLine(); 有结果的方法 //string name Console.ReadLine(); //方法把相关功能的代码添加到一个方法体里面以后有需要相关功能的时候只需要调用方法即可 //减少代码重复率 可以定义方法时候带参数在调用的时候把实参传递方法里面形参可以通过形参实现不同功能 //方法也可以通过返回值把方法结果拿到其他地方去使用 //方法包含1.方法的定义 2.方法的调用 //2.方法调用 //如果方法是static 使用类名打点去调用 //如果方法是没有static 使用对象.调用前提先new一个对象 Program.Test();//调用方法的时候会把方法里面全部执行一遍 Test();//可以把类名省掉 } //1.定义方法 //public 方法修饰符一般定义公共的 //static 静态的方法不写static 非静态方法 //void 方法的返回值无返回值 不能赋值给一个变量 //Test 方法名字 符合大驼峰命名法则 //{int a,int b} 参数列表 //{}方法体 public static void Test() { Console.WriteLine(清清); } }4.方法的参数internal class Program { static void Main(string[] args) { //调用方法 把实参值传递给形参 Test(清清);//清清属于实参 //Test(749);//参数是什么类型 决定传入实参类型 string name 紫幻; Test(name);//传递一个变量 //调用两个参数Test1方法 Test1(10, 清清1); //调用Test2方法 Dog d1 new Dog() { Name 豆豆,Age 1}; Test2(d1); //调用Test3方法 Test3(5, 清清);//不传默认参数的情况 默认参数值是定以时候写的值 Test3(5, 暖阳, 北京WB); } //定义一个静态的 无返回值的 带一个参数的方法 //name 形参 public static void Test(string name) { for (int i 0; i 10; i) { Console.WriteLine(name); } } //要求次数不定 名字不定 需要传递多个参数 public static void Test1(int count ,string name) { for (int i 0; i count; i) { Console.WriteLine(name); } } public static void Test2(Dog d1) { for (int i 0; i 10; i) { Console.WriteLine(d1.Name:d1.Age); } } //传递三个参数 个数 姓名 默认值是狼队 //zd 这个形参有一个默认值 如果传递实参就是实参的值不传的实参zd就是默认值 //默认参数只能写在最后面 public static void Test3(int count, string name, string zd 狼队) { for (int i 0; i count; i) { Console.WriteLine(name是zd的); } } } //定义类 public class Dog { public string Name { get; set; } public int Age { get; set; } }