黑马程序员技术交流社区
标题:
为什么一个类的方法,必须加static修饰?
[打印本页]
作者:
庞登升
时间:
2013-6-27 13:04
标题:
为什么一个类的方法,必须加static修饰?
本帖最后由 庞登升 于 2013-6-27 23:32 编辑
namespace ReadInt方法
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("你们班有多少人?");
int number = ReadInt();
Console.WriteLine(number);
Console.ReadKey();
}
static int ReadInt()
{
string input = Console.ReadLine();
do //需要一个循环来重复判断是否为数字
{
try
{
int number=Convert.ToInt32(input);
return number;
}
catch (System.Exception ex)
{
Console.WriteLine("type in again");
}
} while (true);//直接用true循环
}
}
}
复制代码
是不是这样的,比如说在不同的类底下,就必须用 实例化这个类之后,用class.Program调用
而在同一个类里面,就只能用static修饰之后直接调用了???
作者:
leayon
时间:
2013-6-27 13:55
用static修饰的方法是为静态方法,Main方法就是一个静态方法,在同一个类中,不能在静态方法里面直接调用非静态方法或属性,而应该由该类的对象来调用。而在静态和非静态方法中,都可以直接调用静态方法或属性。
作者:
浪子小雨
时间:
2013-6-27 14:16
static指的是一个静态的方法,静态是不能实例化的,比如“人都会说话”这就是一个静态的方法,不能说“张三会说话”,因为所有人都会说话,而main方法就是一个静态的方法,里面的成员不能实例化,所以在main方法中想要引用的方法前都必须加一个static。(以上是我个人的理解)
作者:
王涵晴
时间:
2013-6-27 14:31
static是对 对象的共享数据进行单独空间的存储,
静态方法只能访问静态成员(静态变量和静态方法),
非静态方法可以访问既可以静态成员,也可以访问非静态成员;
作者:
李晓峰
时间:
2013-6-27 14:36
一个类中的方法不是必须加static修饰的。
不同类中方法的调用 :如果是静态函数(除了内部类),可以直接用
类名.方法
的格式来调用, 也可以创建对象调用;如果是非静态的函数,必须创建对象调用。
同一个类中方法的调用:如果是静态函数:直接写函数名称就可以调用,也可以创建本类对象调用;
如果是非静态函数:被静态调用时,只能通过创建本类对象来调用;被非静态调用时,
直接写函数名称就可以调用;
作者:
leayon
时间:
2013-6-27 14:46
本帖最后由 leayon 于 2013-6-27 14:48 编辑
别客气,不过静态方法也可以直接被非静态方法用类名.方法名()的方式调用哦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2