---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
什么是类,它的意思是面向对象程序设计语言中的一个概念,类将具有共同特征的事物的抽象化。
什么又是面向对象程序设计(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。看着英文的原有的意思,我似懂非懂。
我的理解是一种架构不同于过程性编程.它是面向对象的,对象是类的实例化,类是将具有共同特性的事物抽象成计算机能够理解的东西。类具有封装性,将字段封装起来起到保护的作用,类的一些方法,我们不需要知道具体他是如何实现的,我们便可以对他进行调用。类的继承大大加强了类的功能,将类再分,只要添加特定的属性方法便成了更加实用的类,至于多态我还不太了解,不过从字面上应该是类的变化吧。其实我们只要知道一点,就是类是程序语言的发展所产生,为了我们更好的程序开发的工具。
通过看视频,查网页初步了解了类,下面进行了总结写了一个学生类。
public class Program1
{
static void Main(string[] args)
{
//类是面向对象的,没有静态定义的类需要实例化后才能调用类的方法
//访问修饰符和命名空间关系到调用的权限
// private只能在本类中被访问,public 哪里都可以访问,protect 只有本类和子类中能访问
// intemal只能在本项目中被访问,类的级别中默认intermal(扩展了解项目之间的调用,原来在引用中)
Student zsStudent = new Student("张三", '男', 23);//实例化student类并通过构造方法传参
Student lsStudent = new Student("李四", '男', 25, 98, 99, 105);//发现这的传参是没有经过set方法的
zsStudent.SayHi();//调用类的方法
zsStudent.Sum();//没有传入成绩时,默认为0
//lsStudent.Name = "李三";//这里是错误的,Name属性为只读不能再赋值
lsStudent.ChineseScore = 103;//属性中有set方法为可写,可以重新赋值
lsStudent.MathScore = 106;
lsStudent.Sum();
Student.wag = 18;//静态的变量(方法)不需要new,可以直接调用
Console.ReadKey();
}
}
class Student//这里定义了一个Student类,这个类中有3个字段6个属性2个方法
{
public static int wag;//静态的变量
//这里是字段,可以通过封装属性保护字段
string name;
char sex;
int age, chineseScore, englishScore, mathScore;
//构造方法一般加public让别人访问到(不写构造方法,系统会默认产生一个无参的构造方法)
public /*加了void就不是构造方法了*/ Student(string name, char sex, int age)
{
this.name = name;
this.sex = sex;
this.age = age;
}
//构造方法可以重载
public Student(string name, char sex, int age, int chineseScore, int englishScore, int mathScore)
{
this.name = name;
this.sex = sex;
this.age = age;
this.chineseScore = chineseScore;
this.englishScore = englishScore;
this.mathScore = mathScore;
}
//这里是封装了的属性
public char Sex { get { return sex; } }
public string Name { get { return name; } }
public int Age
{
get { return age; }
}
public int MathScore
{
get { return mathScore; }
set //我想怎么控制传参进来数的大小,结果不能控制用户输入的范围
{
if (value > 100 || value < 0)
mathScore = 0;//只有超出范围后返回一个特定值给他
else
mathScore = value;
}
}
public int ChineseScore
{
get { return chineseScore; }
set { chineseScore = value; }
}
public int EnglishScore
{
get { return englishScore; }
set { englishScore = value; }
}
//类的两个方法,方法也可以用static修饰,不过静态的方法中只能访问静态的变量,静态的变量也可用在非静态的方法中使用
public void SayHi()
{
Console.WriteLine("大家好!我叫{0},性别{1},今年{2}岁.", name, sex, age);
}
public int Sum()
{
int sum = chineseScore + englishScore + mathScore;
Console.WriteLine("语文{0},数学{1},英语{2},三门的总成绩为{3}", chineseScore, mathScore, englishScore, sum);
return sum;
}
}
也许程序员的经验积累便是对一些类的积累,视频中还特别讲到了String类,是一个处理字符串的类,很重要。这里没有总结以后再学习下,进一步总结。在网上查阅到常用.Net Framework类中包括:String类常用方法、StringBuilder类、IO类(FileStream、File、Path)、XML操作类、集合类(ArrayList、List<T>、Dictionary<K,V>)等。需要做进一步多的了解。