理解:静态成员属于类所有,为各个类的实例所公用,与实例无关,需要全局共享的属性或者方法定义成静态的
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. (Problem 35)Circular primes

    The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, ...

  2. OC基础教程 C语言中的格式占位符:

    C语言中的格式占位符: %a,%A 读入一个浮点值(仅C99有效) %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x,%X 读入十六进制整数 ...

  3. cygwin org/apache/zookeeper/KeeperException

    以前用cdh3-0.20的hbase,在windows下面直接启动就行了,但是最近安装0.94以上的,就不行了. 报标题的错误,搜遍网络,几乎都是要加HBASE_CLASSPATH的,后来看老外的文章 ...

  4. PDF417码

    PDF417码是由留美华人王寅敬(音)博士发明的.PDF是取英文Portable Data File三个单词的首字母的缩写,意为“便携数据文件”.因为组成条码的每一符号字符都是由4个条和4个空构成,如 ...

  5. ASP.NET CS文件中输出JavaScript脚本

    ClientScript.RegisterStartupScript:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscrip ...

  6. AnyEvent::HTTP 介绍

    AnyEvent::HTTP - simple but non-blocking HTTP/HTTPS client 一个简单的非堵塞的 HTTP/HTTPS 客户端: use AnyEvent::H ...

  7. JNI_Java Native Interface

    一.简介 Java Native Interface(JNI),java与c/c++交互的接口,下面是一个简单是示例. javah 可以生成native方法对应的头文件,javap 可以查看方法或者属 ...

  8. Android显示GIF动画完整示例(二)

    MainActivity如下: package cc.testgif2; import android.os.Bundle; import android.app.Activity; /** * De ...

  9. 误mlogc.c:32:23: error: curl/curl.h: No such file or directory

    出现以下错误: mlogc.c:32:23: error: curl/curl.h: No such file or directory mlogc.c:1091: error: expected ' ...

  10. IP数据包结构

    Linux 网络编程——IP 数据报格式详解 http://www.linuxidc.com/Linux/2015-04/116149.htm