C C++最新C#—静态成员和实例成员,卧槽

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

3)实例方法可以调用实例数据和静态数据。

**附:**我们在C#中经常使用的WriteLine等方法都是静态成员,是直接调用类名Console来使用的。

让我们来用代码来说明方法对数据的调用情况:

class Demo

{
    int a;                // 实例数据
    static int b;         // 静态数据
    void A()              // 实例方法

    {
        a = 1;             // 正确:实例方法可以调用实例数据
        b = 1;             // 正确:实例方法可以调用静态数据
    }

    static void B()       // 静态方法

    {
        a = 1;             // 错误:静态方法不能调用实例数据
        b = 1;             // 正确:静态方法可以调用静态数据
    }

    static void Main()        // 静态方法
    {
        Demo d = new Demo();  // 实例化对象
        d.a = 1;              // 正确:实例可以调用实例数据
        d.b = 1;              // 错误:实例不能调用静态数据
        Demo.a = 1;           // 错误:类名不能调用实例数据
        Demo.b = 1;           // 正确:类名可以调用静态数据
        d.A();                // 正确:实例可以调用实例方法
        d.B();                // 错误:实例不能调用静态方法
        Demo.A();             // 错误:类名不能调用实例方法
        Demo.B();             // 正确:类名可以调用静态方法
    }
}

另外,让我们来用代码说明一下,静态数据只使用一块内存空间:

public class Demo

{
    static int count=0;  //定义静态数据count
    int number=0;        //定义实例数据number
    public Demo()
    {
	number =number+ 1;
        count = count + 1;        
    }

    public void show()
    {
        Console.WriteLine("number={0} : count={1}", number, count);
    }
}

class Test
{
    public static void Main()
    {
        Demo a = new Demo();
        a.show();
        Console.WriteLine("***************");
        Demo b = new Demo();
        b.show();
        Console.WriteLine("***************");
        Demo c = new Demo();
        c.show();
    }
}


输出结果为:

number=1 : count=1
    ********************
    number=1 : count=2
    ********************
    number=1 : count=3

**可以看出:**静态数据的值是随着实例化出的对象数目而改变的,每增加一个实例化对象都会使静态数据值+1,所以所有的对象都是使用的同一个静态数据,即证明了静态数据公用一块内存空间,而每个对象的实例数据都相同,说明每实例化一次都会开辟一块新的内存空间。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

pics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值