面向对象的几个概念性问题

using System;

using System.Collections.Generic;

using System.Text;

namespace oop

{

class Person

{

public string name;

public int age;

/**

* static修饰的字段

*

* static修饰的字段,它们属于类,而不属于类的某一个实例,

* 也就是说,在调用静态字段时,只能通过类名来调用,(Person.sex)

* 而不能通过类的某一个实例来调用,而不是(Person person = new Person();person.sex)

* 2.

* 如果方法被声明为静态的,也是如此

*/

public static string sex;

/**构造方法

* 特点:

* 1.与类名相同

* 2.构造方法一般被声明为public

* 3.构造方法一般用来初始化成员变量

* 4.构造方法可以重载

* 5.构造方法在实例化对象的时候被调用

* 6.如果类中没有默认构造方法,也没有带参数的构造方法,编译时,将会自动添加一个默认构造方法,

* 7.如果类中有带参数的构造方法,而没有默认构造方法,则编译器不会再添加默认构造方法,

* 8.默认构造方法也叫无参构造方法

*/

public Person()

{

}

public Person(string name, int age)

{

/**

* this

* this代表类的实例.

* 如果一个字段或者方法被声明为static,则不能用this来调用,因为static声明的字段或者方法属于类,

* this代表的是类的实例(:this.sex是错误的)

*/

this.name = name;

this.age = age;

}

/**

* 方法的重载

*

* 重载的特点:

* 1.方法名都要相同

* 2.方法的可以参数不同,返回值可以不同,方法的访问权限可以不同,方法参数不同的几种情况如下:

*

* 重载的几种情况:

* 1.参数的类型不同

* 2.参数的个数不同()

* 3.参数的顺序不同(参数的列表不同 在C# ,这种情况没有实际使用价值)

* 4.返回类型不同

* 5.访问修饰符不同

*/

public void GetInfo()

{

Console.WriteLine("这个是无参的方法");

}

public void GetInfo(string name)

{

Console.WriteLine("姓名是:" + name);

}

public int GetInfo(int age)

{

Console.WriteLine("年龄:" + age);

return age;

}

internal void GetInfo(int age, string name)

{

Console.WriteLine(" 年龄: " + age + "姓名:" + name);

}

public void GetInfo(string name, int age)

{

Console.WriteLine("姓名:" + name + " 年龄: " + age);

}

/* static修饰的方法

*

* 1.static修饰的方法中,不能用this关键字来调用实例字段

* 2.static修饰的方法中,也不能直接调用实例字段,如果要调用这些字段,

* 要先实例化对象( Person p1 =new Person();p1.age=2;)

* 3.静态方法中,可以类名调用静态方法

*/

public static void StaticInfo()

{

Console.WriteLine("这个方法是一个静态方法");

}

/**

* 析构函数

*

* 特点:

* 1.析构函数前有一个"~",表明是一个析构函数

* 2.析构函数的函数名和类名相同

* 3.一个类只有一个析构函数

* 4.析构函数没有参数

* 5.析构函数没有返回值

* 6.析构函数没有访问修饰符

* 7.析构函数不能重载

* 8.析构函数不能实现继承

* 9.析构函数是用来清理垃圾的(:用来清除不再使用的对象)

* 10.析构函数不用手动调用,而是由垃圾回收器自动调用

*

*/

~Person()

{

}

}

class Program

{

static void Main(string[] args)

{

Person p = new Person();

p.GetInfo();

Console.WriteLine("\n");

p.GetInfo("sofie");

Console.WriteLine("\n");

p.GetInfo("sofie", 21);

Console.WriteLine("\n");

p.GetInfo(21, "sofie");

Console.WriteLine("\n");

int a = p.GetInfo(12);

Console.WriteLine(a);

}

}

}

转自:

http://blog.163.com/pengpeng_614/blog/#m=0&t=1&c=fks_087067093083088069093095086095085081086067083087080074

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值