C#基础知识(八)——面向对象

时间:2021-07-30 17:23:18

一、一些主要概念:

对象:就是一个实体。可以是一个事物,也可以是一个人。是看得见、摸得到的具体的东西。

属性:对象具有的各种特征。例如:张三的属性有姓名,性别,年龄等等。

属性值:描述这个特征的值。

方法:对象的行为、动作、执行的操作。例如:老师的行为:上课。

类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)。类是对象的类型。

类和对象的区别:

类是抽象的概念,不仅仅是模板。比如说“人”类;对象是一个你能够看得到、摸得着的具体实体。

类是对象的抽象;对象是类的具体实例。

类是抽象的,不占用内存;而对象是具体的,占有内存空间。

例如:类就是水果,对象就是苹果。

二、类的定义:

语法:

[访问修饰符] class 类名

{

成员;

......

}

类在命名空间下面写,类中可以包含变量的定义、方法。

例子:

<pre name="code" class="csharp">public class Person
{
//字段
private string _name;
private char _gender;
private int _age;
public void SayHello()
{
Console.WriteLine("hello,大家好,我是小明");
}
public void Walk()
{
Console.WriteLine("我走着走");
}
}
 

三、类的实例化:

语法:

类 实例名 = new 类 ();

类的成员的访问:

实例名.属性      实例名.方法名();

字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。

访问修饰符:public     private   (internal     protected)

例如

static void Main(string[] args)
{
Person per = new Person();
per._name="张三";
per._age=18;
per._gender='男';
per.SayHello();
per.Walk();
Console.WriteLine(per._name);
Console.ReadKey();
}
四、构造函数:

构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。

构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用。

构造函数可以有参数,new对象的时候传递函数参数即可。

如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

构造函数可以重载,也就是有多个参数不同的构造函数。

例子:

class Program
{
static void Main(string[] args)
{
Person per = new Person();
//写一个类,如果没有写任何的构造函数,那么这个类有个默认的无参数的构造函数。
}
}
//定义Person类:public class Person{    public Person(string name, char gender, int age)    {        this._name = name;//指示代词        this._gender = gender;        this._age = age;    }    public Person(string name)    {        this._name = name;    }    //构造函数的重载    public Person()    {    }}
class Program{    static void Main(string[] args)    {        Person per = new Person("张三", '男', 18);        Person p = new Person("张三");        Person p1=new Person();    }}

面试题:

简述 private、 protected、 public、 internal 修饰符的访问权限。 
private : 私有成员, 在类的内部才可以访问。类中字段和方法默认的访问修饰符是private  。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。 
internal: 当前程序集内可以访问。