四、c#类的定义和使用方法
类的构成:字段和方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpData
{
public class Person
{
//定义字段年龄
public int Age;
//定义字段性别
public Gender gender;
//定义字段姓名
public string Name;
//定义方法
public void Greating()
{
string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, gender, Age);
Console.WriteLine(Words);
}
}
//性别是枚举类型
public enum Gender
{
male,
female
}
}
属性相当于字段的升级版,可以通过属性实现对字段的控制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpData
{
public class Person
{
//定义字段年龄
private int age;
//属性
public int Age
{
get { return age; }
set
{
if (value < 0)
{
age = 18;
}
else
age = value;
}
}
//定义字段性别
public Gender gender;
//定义字段姓名
public string Name;
//定义方法
public void Greating()
{
string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, gender, Age);
Console.WriteLine(Words);
}
}
//性别是枚举类型
public enum Gender
{
male,
female
}
}
属性和字段都是针对类的对象实例化之后才可以使用,我们可以用一些静态字段来描述类本身的特点。比如“人类”这个类,就可以用总人口数来描述。这种字段前面要加上一个static,这样引用的时候就可以直接通过类名来直接调用。
函数和方法是同样的道理。
构造函数:就是在构造这个类的同时,将其初始化。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpData
{
public class Person
{
//定义字段年龄
private int age;
//属性
public int Age
{
get { return age; }
set
{
if (value < 0)
{
age = 18;
}
else
age = value;
}
}
public string Name { get; set; }//定义名字属性
public Gender Gender { get; set; }//定义性别属性
public Person(string name,Gender gender,int age)//构造函数
{
Name = name;
Gender = gender;
Age = age;
}
//定义字段性别
//public Gender gender;
定义字段姓名
//public string Name;
//定义方法
public void Greating()
{
string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, Gender, Age);
Console.WriteLine(Words);
}
}
//性别是枚举类型
public enum Gender
{
male,
female
}
}
->>Person person1 = new Person("william", Gender.female, -3);//创建对象并传入参数
person1.Greating();//实例化
类的继承:就是在创建类的时候可以有效的复用。比如说已经有了一个HUMAN类,我们现在要创建一个STUDENT类,student和human有很多地方非常相似,只不过多了一些特性,那么我们就可以让student继承human所有的属性和方法。那么student就是子类,human就是父类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpData
{
public class Student : Person
{
public Student(string name, Gender gender, int age) : base(name, gender, age)
{
//继承大大的提高了类的复用性,这里的student继承了person类的所有属性
}
}
}
类的封装:封装主要是用修饰符来实现的。
private protected等等修饰符来封装类的权限控制。