类和对象
对象:看得见,摸得到,具体的,特指的
类:是模板,确定对象将会拥有的特征(属性)和行为(方法)
类和对象的区别
- 类是对象的类型
- 对象是类的实例
- 类不占内存,对象占内存
类的代码定义
[访问修饰符]class 类名
{
成员;
...
}
//Person 类
public class Person
{
public string _name;//public 定义访问级别
public char _gender;//_gender 字段而非属性
public int _age;
//定义SayHello方法
public void SayHello()
{
Console .WriteLine("hello 大家好");
}
public void Walk()
{
Console.WriteLine("我走着走");
}
}
访问修饰符
代码中类的默认访问修饰符为internal;
属性和方法的默认访问修饰符为public;
访问修饰符 | 访问权限 |
---|---|
private | 私有成员,在类的内部才可以访问 |
public | 公共成员,完全公开,没有访问权限 |
protected | 保护成员,该类内部和继承类中可以访问 |
internal | 当前程序集内可以访问 |
类的实例化
当Person类中字段的访问修饰符为public时,实例化代码为:
class program
{
static void Main(string[]args)
{
//实例化Person类
Person per=new Person();
per._name="张三";
per._age=18;//类的成员的访问
per._gender='男';
per.SayHello();
per.Walk();
Console.WriteLine(per._name);
Console.ReadKey();
}
}
而一般情况下,一个类中字段用private修饰。
若仍按上面方法实例化,代码就会报错。
这时我们可以通过在Person类中添加属性来实现实例化。
属性
- 属性是为了保护与之相对应的字段的
- 保证对字段的读取和赋值符合要求
- 属性分为:读写,只读,只写
- 允许外部访问的变量一定要声明为属性
//Person 类
public class Person
{
private string _name;
private char _gender;
private int _age;
//定义属性
public string Name
{
get{return _name;}//读
set{_name=value;}//写
}
public char Gender
{
get{return _gender;}
set{_gender=value;}
}
public int Age
{
get{return _age;}
set{_age=value;}
}
//定义SayHello方法
public void SayHello()
{
Console .WriteLine("hello 大家好");
}
public void Walk()
{
Console.WriteLine("我走着走");
}
}
//program 类
class program
{
static void Main(string[]args)
{
//实例化Person类
Person per=new Person();
per.Name="张三";//赋值
per.Age=18;
per.Gender='男';
per.SayHello();
per.Walk();
Console.WriteLine(per.Name);//读值
Console.WriteLine(per.Gender);
Consoel.Writeline(per.Age);
Console.ReadKey();
}
}