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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 静态与非静态的区别
{
        public  class person
         {

            public void M1()
            {
                Console.WriteLine("我是一个非静态的方法");
            }
            public static void M2()
            {
                Console.WriteLine("我是一个静态的方法");
            }
        }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 静态与非静态的区别
{
    class Program
    {
        static void Main(string[] args)
        {
            person p = new person();
            p.M1();//实例方法
            person.M2();//静态方法
            Console.ReadLine();
        }
    }
}

静态与非静态的区别:

1)在非静态中,既可以有实例成员,也可以有静态成员。

2)在调用实例成员的时候,需要使用    对象名.实例成员

在调用静态成员的时候,需要使用    类名。静态成员名

总结:

1)静态成员必须使用类名去调用,而实例成员使用对象名调用

2)实例函数中,既可以使用静态成员,也可以使用实例成员

3)静态函数中,只能访问静态成员,不允许访问实例成员

使用:

1)如果你想要你的类当作一个“工具类”使用,这个时候可以考虑将类写成静态的

2)静态类在整个项目中资源共享

时间: 2024-11-13 03:30:43

C#面向对象中类的静态成员与非静态成员的区别的相关文章

.Net中的静态类和非静态类、静态成员和非静态成员

正如标题,这样的资料网上很多,也说的很到位,但是都感觉解释的很多,理论性过强,在这里我简单的总结和概括下他们之间的区别,可以一目了然: 一.静态类和非静态类 Definition: 静态类可以视为类库中都是单一的过程,不存在“状态”的概念: 非静态类是存储有状态的一类操作过程 Summary: 非静态类可以包含静态方法: 静态类只能包含静态方法(不允许有非静态方法的存在) 二.静态方法和非静态方法(实例方法) Priority in Memory When Class Loaded: 类在加载时

静态成员和非静态成员的细节

--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等 --总之,不允许在外部类的静态成员中直接使用非静态内部类 public class StaticTest{ //定义一个非静态内部类,是一个空类 private class In(){} public static void main(String[] args){ //下面代码引起编译错误,因为静态成员main方法 //无法访问非静态成员(In类)

C++中静态成员变量和静态成员函数(面向过程&&面向对象)

数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态          成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员  存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成             员的生存期决定于该类的生存

static作用,静态成员变量和静态成员函数

static关键字有俩作用:(1).控制存储分配:(2).控制一个名字的可见性和连接. 随着C++名字空间的引入,我们有了更好的,更灵活的方法来控制一个大项目的名字增长. 在类的内部使用static是在全程序中控制名字的另一种方法.这些名字不会与全局名冲突,并且可见性和访问也限制在程序内部,使得在维护代码时有更多的控制. 数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静

类静态成员变量和静态成员函数的访问方式

1.在类所有实例中静态成员变量和静态成员函数都只有一份拷贝 2.静态成员函数不能调用非静态成员,非静态成员函数可以调用静态成员 3.静态成员变量在使用前要初始化 一.静态成员变量的访问 class B { public: static int a; }; int B::a=0;//必须要先初始化 int main(){ cout<<B::a<<endl; return 0; } 二.静态成员函数的访问 class B { public: static void a(){ print

Java中static静态与非静态的区别

先前看到一个技术大牛写了一个关于静态成员与非静态成员,静态方法和非静态方法的各自区别,觉得挺好的,在这里写一个小程序来说明这些区别. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package com.liaojianya.chapter5; /**  * This program will de

03.静态和非静态的区别

静态和非静态的区别 方法,字段,属性都可以被static修饰. (1).在非静态类中,即可有实例(非静态)成员,可以有静态成员. 静态成员和非静态成员在调用上有什么不一样呢? (1.1)非静态成员(实例成员)必须被实例化对象之后,的对象名来调用. 对象名.实例成员名; (1.2)静态成员必须被定义它的类的类名来调用. 类名.静态成员名;      //注意,如果要在定义静态方法的类的内部使用静态 方法,我们可以省略类名.直接写. (1.3).静态方法可以访问静态成员,但是静态方法不可以访问非静态

static的应用以及静态与非静态的区别

先前看到一个技术大牛写了一个关于静态成员与非静态成员,静态方法和非静态方法的各自区别,觉得挺好的,在这里写一个小程序来说明这些区别. package com.ljy.chapter5; /** * This program will demonstrate the use of static method. * @author LIAO JIANYA * */ public class StaticTest { public static void main(String[] args) { S

对【面向对象的类访问和对象访问的区别【this以及类访问】、静态成员的访问区别、类常量等、继承和重写、访问修饰限定符、冒泡排序】的总结

面向对象的总结1.首先面向对象的编程使用的都是使用对象作为处理对象而言[例如继承等情形,继承的本质来说,依旧针对的是对象]但是只有针对类的访问.静态成员以及访问修饰限定符时,针对的是类的概念 2.类内定义时,只有五种情形:类常量[const关键字定义并且使用类来调用]属性[这些属性和方法是针对该类实例的对象来调用]方法[在这种情形下使用$this进行指代作用环境(调用该方法的对象),只有继承中,子类实例的对象会向下传递到静态调用里]静态属性[用来作为实例该类的所有对象之间共享的数据.保存在类中]