理解:静态成员属于类所有,为各个类的实例所公用,与实例无关,需要全局共享的属性或者方法定义成静态的
C#静态成员: 
1、静态成员属于类所有,故用类名调用,非静态成员属于类的实例所有,用实例名调用 
2、非静态成员有一片固定的空间,而每创建一个类的实例,都会在内存中为非静态成员新分配一块存储; 
C#静态方法 
1、C#静态方法属于类所有,故用类名调用 
2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。 
   因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存, 
静态方法、静态字段
namespace _2_静态_非静态方法
{
    class Program
    {
        static void Main(string[] args)
        {
            Person.name = "key";           //用类名调用静态字段、方法
            Person.show1("哈哈哈哈哈");
            Console.WriteLine("================");
            Person per1 = new Person();
            per1.age = 19;                 //用实例名调用非静态字段、方法
            per1.show2("呵呵呵呵呵呵呵呵");
            Console.ReadKey();
        }
    }
    class Person
    {
        public static string name;        //静态字段
        public int age;                   //非静态字段
        public static void show1(string str)          //静态方法
        {
            Console.WriteLine(str);
            Console.WriteLine(name);          //可以调用静态字段,不能调用非静态字段
        }
        public void show2(string str)           //非静态方法
        {
            Console.WriteLine(str);
            Console.WriteLine(name+"今年"+age.ToString()+"岁");
        }
    }
}
==================================
静态类
namespace 静态类
{
    class Program    //静态类的所有成员也都是静态的,作用就是建一个数学方法和值的数学库
    {
        static void Main(string[] args)
        {
            int val = 3;
            Console.WriteLine("{0} is odd is {1}",val,MyMath.IsOdd(val));
            Console.WriteLine("{0}*2={1}",val,MyMath.Times2(val));
        }
    }
    static public class MyMath
    {
        public static float PI = 3.14f;
        public static bool IsOdd(int x)
        {
            return x % 2 == 1;
        }
        public static int Times2(int x)
        {
            return 2*x;
        }
    }
}

C#面向对象2 静态类、静态成员的理解的更多相关文章

  1. 对static静态成员的理解

    疑惑: 数据成员可以分静态变量.非静态变量两种.  静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例 ...

  2. C#面向对象中类的静态成员与非静态成员的区别

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)

    PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态   面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...

  4. 面向对象SOLID原则的自我理解

    S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写.面向对象设计的原则SRP The Single Res ...

  5. 面向对象的异常处理之深入理解java异常处理机制

    什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...

  6. oop面向对象知识总结 静态成员和友元

    第十一章 静态成员和友元 11.1 静态成员 1.C++类当中的静态数据成员仍借用保留字static,但是与之前的静态全局变量,静态局部变量以及静态函数没有关系. 2.静态数据成员不占用具体对象的数据 ...

  7. JavaScript面向对象之函数构造器的理解

    1,在使用函数创建类时,函数本身也被称为该类的构造器,该类的构造器方法,该类的构造方法,该类的构造函数等等. 2,注意构造器方法是没有返回值的,当创建该类的实例时,必须调用该类的构造方法. 3,获取构 ...

  8. C# 面向对象之概念理解

    什么是对象? <韦氏大词典>中对对象定义: (1)某种可为人所感知的物质. (2)思维.感受或动作所作用的物质或精神体. ----说白了万物皆对象 熟悉的对象描述: 对象就是客观世界中的物 ...

  9. java面向对象编程思想的理解

    1.我们总说java是一门面向对象编程的语言,那什么是面向对象呢? 我是这样理解的,对象是事物存在的实体,如,猪.狗,花早等都是对象,对象由两部分组成.面向对象编程的三大特点:继承,多态,类是封装对象 ...

随机推荐

  1. HTML 总结-表单-表单属性

    HTML5 表单属性 HTML5 的新的表单属性 本章讲解涉及 <form> 和 <input> 元素的新属性. 新的 form 属性: autocomplete novali ...

  2. The model used to open the store is incompatible with the one used to create the store

    说什么数据不兼容,,,,这时删除模拟器的应用,,,重新启动测试.

  3. 关于java中强制转换

    在百度上遇到一个问题,描述如下: 在java中,定义两个变量 byte x = (byte) 128; byte y = (byte)-129; 输出后,为什么结果是-128和128? 借此机会,自己 ...

  4. 转: cmd和amd的区别

    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMDCMD 规范在这里:https://github.com/seajs/seajs/issues ...

  5. 在windows下的QT编程中的_TCHAR与QString之间的转换

    由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef ...

  6. urllib2使用2

    Timeout 设置 import urllib2 response = urllib2.urlopen('http://www.google.com', timeout=10) 在 HTTP Req ...

  7. Windows Azure 社区新闻综述(#77 版)

    欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻.内容和对话.以下是本周的亮点. 文章.视频和博客文章 ·   文章: Windows Azure 表存储简 ...

  8. 【图文】雪佛兰Suburban 美国特工标准座驾_新闻中心_易车网

    [图文]雪佛兰Suburban 美国特工标准座驾_新闻中心_易车网 雪佛兰Suburban 美国特工标准座驾

  9. 怎么在Ubuntu Scope中获取location地址信息

    Location信息对非常多有地址进行搜索的应用来说非常重要.比方对dianping这种应用来说.我们能够通过地址来获取当前位置的一些信息.在这篇文章中,我们来介绍怎样获取Scope架构中的位置信息. ...

  10. 在MDK中怎样生成*.bin格式的文件?

    在Realview MDK的集成开发环境中.默认情况下能够生成*.axf格式的调试文件和*.hex格式的可运行文件. 尽管这两个格式的文件很有利于ULINK2仿真器的下载和调试,可是ADS的用户更习惯 ...