今天是在云和学院学习面向对象的第一天,发现程序的写法可以有好多种,但是简单的还是要自己学习,其实都很想用简单的方法,但是还是需要面向对象这个理解的更加明白,或许我真的在这方面只是知道这个名词但是还真的不知道这个怎么整,今天就初步的写下我学习的面向对象的一些基本的知识。
<1>首先讲述了类与对象的区别以及类的定义与对象的定义,虽然学习类与对象很抽象,但是我认为首先是自己能够理解类与对象的定义,从定义上在去区别类与定义,这样可能会简单些吧。
类的定义:把具有相同性质和功能的事物所构成的集合就叫做类。例如:动物类包括:兔兔,灰灰,羊羊···;车类包括:大卡车,汽车,火车···,是一类的事物。
对象的定义:就是类抽象出来的具体事例。例如:很简单的说,人类的实例就是世界上的每一个人。
下面写一个学生类的例子:
•定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。
•有2个方法:
–一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。
–两个计算自己总分数和平均分的方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}
•实化两个对象并测试:
–张三 男 18 三科成绩为:90 95 80
–小兰 女 16 三科成绩为:95 85 100
class Student1 { public string name; public string gender; public int age ; public int chinese; public int math; public int English; public void SayHi() { Console.WriteLine("大家好"); } public void SumAvg(string name, int chinese, int math, int English) { int sum = 0; sum = chinese + math + chinese; Console.WriteLine("这次考试总成绩为{0}分,平均成绩为{1}分", sum, sum / 3); } } class student { static void Main(string[] args) { Student1 student = new Student1(); Student1 student1 = new Student1(); student.name = "张三"; student.age =18; student.gender="男"; student.chinese = 90; student.math = 95; student.English = 80; student1.name = "小兰 "; student1.age = 16; student1.gender = "女"; student1.chinese = 95; student1.math = 85; student1.English = 100; student.SayHi(); student.SumAvg(student.name,student.chinese,student.math,student.English); Console.WriteLine("名字为{0},今年{1}岁了,{2}生。", student.name, student.age, student.gender); student.SayHi(); student.SumAvg(student.name, student.chinese, student.math, student.English); Console.WriteLine("名字为{0},今年{1}岁了,{2}生。", student1.name, student1.age, student1.gender); Console.Read(); } }
输出的结果如下所示:
这就是类的应用。
<2>访问修饰符public,protected以及private;在这有一句话需要记得:在同一命名空间内,类名字前的修饰符可以省略也可以不省略。
<3>对象初始化的用法,举例说明:
上面圈到的就是一样的用法,简单点的写法,在对象初始化后面加一个花括号这样的写法就是运用了初始化器的写法,用起来比上面的更简单些····
<4>属性的写法,有三种
第一种就是最基本的: 第二种: 第三种:快捷键ctrl+R+E,点击确定两次。
<5>析构函数,定义一个人类来说吧
enum Gender { male, famale } class Person { public Person(string n, int a, Gender g) { this.name = n; this.age = a; this.gender = g; } string name; public string Name { set; get; } int age; public int Age { set; get; } Gender gender; public Gender Gender { set; get; } } class Program { static void Main(string[] args) { Person p = new Person("张三",18,Gender.male); Console.WriteLine("我是{0},今年{1}岁,{2}",p.Name,p.Age,p.Gender); Console.ReadKey(); } }
这个和上面定义的学生类相比简单了好多吧,析构函数和构造函数的名字相同,它主要用来销毁程序占用的资源。如果未定义,则默认存在一个析构函数,析构函数具有以下特点:
•不能在结构中定义析构函数。只能对类使用析构函数。
•一个类只能有一个析构函数。
•无法继承或重载析构函数。
•无法调用析构函数。它们是被自动调用的。
析构函数既没有修饰符,也没有参数
好啦,今天我就学习了这些····话说我现在需要练习题,知道了方法怎么写,但是在写方法时间还是不熟练吧,不能很快的写好一个方法。
哇咔咔,继续努力写程序喽