静态标记 – static

//静态方法
public static void Max(){ }
//非静态方法
public void Max(){ }//静态类
public static class program{ }
//非静态类
public class program{ }

静态和非静态的区别

  1. 在静态类中既可以有静态成员,也可以有非静态成员。
  2. 非静态成员也称为【实例成员】。
  3. 在调用实例成员/方法(非静态成员)的时候,需要用实例对象.实例成员/方法(非静态成员)
  4. 在调用静态成员/方法的时候,需要用类名.静态成员/方法
  5. 静态方法(函数)中,只能访问静态成员,不能访问实例成员。
  6. 非静态方法(函数)中,既可以访问静态成员,也可以访问实例成员。
  7. 静态类中,只允许有静态成员/方法。

静态类的特征

  1. 静态类本身占内存,静态存储区域,因为静态类不需要实例。
  2. 静态类在整个项目中是资源共享的。
  3. 上述两种特征导致,静态类是作为“工具类”来使用。存放经常调用的方法,或存放需要共享的数据。
  4. 静态类只在项目所有应用程序结束时,才会释放资源,否者一直占据内存空间。
  5. 因为占内存,静态类越少越好

常用的系统静态类: Console.WriteLine(); Console.ReadLine(); Convert.ToInt32();

静态和非静态的代码演示

有兴趣的可以亲自试一下静态与非静态的实际差异,看彼此之间是否可以调用。

 class Person{private string _s1 = "我是实例成员s1。";  //实例成员private static string _s2 = "我是静态成员s2。";  //静态成员public string S1  //实例成员{set { _s1 = value; }get { return _s1; }}public static string S2  //静态成员{set { _s2 = value; }get { return _s2; }}public void M1() //实例方法{Console.WriteLine(this.S1);}public static void M2()  //静态方法{Console.WriteLine(Person.S2);}}
 public class Program{static void Main(string[] args){//实例p对象Person p = new Person();//调用实例方法p.M1();//调用静态方法Person.M2();}}

C# 静态和非静态的区别相关推荐

  1. java中静态是什么,java中静态和非静态有什么区别

    首先我们先来说说jvm内存模型: jvm内存分为:方法区.堆.栈和程序计数器. 下面我们来简单的说说方法区.栈和堆: 方法区:是各个线程共享的区域,存放类信息/常量/静态变量: 栈:其实每个线程都会分 ...

  2. C# 面向对象编程 1 面向对象类,静态和非静态的区别,构造函数,new关键字 ,析构函数

    C# 面向对象编程 1 文章目录 C# 面向对象编程 1 1.面向过程-----> 面向对象 2.类 3.静态和非静态的区别 4.构造函数 5.new关键字 6. 析构函数 1.面向过程---- ...

  3. java 静态变量和非静态_Java中静态和非静态变量之间的区别

    变量为我们提供了程序可以操纵的命名存储.Java中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局.可以存储在该内存中的值的范围:以及可以应用于该变量的一组操作. 静态变量 静态变量也称为 ...

  4. C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态

    C#基础--类/接口/成员修饰符,多态.重载.重写,静态和非静态 类/接口/成员修饰符 C#修饰符---接口: 接口默认访问符是internal 接口的成员默认访问修饰符是public C#修饰符-- ...

  5. 开发三年,java静态和非静态的这些弯弯绕绕你真的知道吗?

    问 Java 中,为什么不允许从静态方法中访问非静态变量? 了解特点 静态方法.属性:类加载时调用创建,通过类名直接调用,子类可继承不可重写 普通方法.属性:new对象时创建.注意new对象的时候 静 ...

  6. 第十七节:易混淆的概念(静态和非静态、拆箱和装箱)

    一. 静态和非静态 1. 概念介绍 ① 静态类(被static修饰) vs  普通类(没有被static修饰) ② 静态成员:被static修饰的成员,比如:静态方法.静态字段等 ③ 普通成员(实例成 ...

  7. java 静态与非静态之间的访问规则简述

    java 静态与非静态之间的访问规则简述 1.静态与静态之间直接访问 2.非静态(实例级别)访问静态直接访问 3.静态访问非静态(实例级别),必须先创建对象再访问 package com.qfedu. ...

  8. java的静态与非静态 及其代码演示示例

    静态与非静态的概念 运行Java应用程序时,在实际的代码运行之前的一个步骤是加载类,具体点说,在Java SE 8的JVM中,需要先把类加载到Metaspace.如果类中有静态成员,加载类时会在hea ...

  9. 火山PC静态调用非静态

    1.一个编辑框,一个按钮 2.建立静态方法 3.建立一个类,放非静态方法 4.静态调用非静态 如需要在同一个类中直接静态调用非静态,等大佬,封装相关模块 5.演示 本文转载自利快云,原文地址:点击阅读 ...

最新文章

  1. 2021年速卖通828年中大促活动报名攻略
  2. Solution 7: 判断两链表是否相交
  3. BugkuCTF-PWN题pwn7-repeater详细讲解多解法
  4. BCC实例(如何修改NS解析方式为百度智能云解析) - 解答篇
  5. Python风格总结:错误和异常
  6. C++11 右值引用与移动语义
  7. MyEclipse插件不能安装原因
  8. antd vue form 手动校验_vue测试模板与jsonSchema自动生成elment组件
  9. 逆向CS生成的exe马
  10. 推荐几个很实用的编程网站
  11. 085400计算机技术专业怎么参加公考,2021年东南大学电子信息(085400)计算机技术_考研专业目录_考试科目_考试范围 - 学途吧...
  12. Java POI 设置字体下划线、方框打勾、字体加粗
  13. java 图片 大小_在JAVA中调整图片大小
  14. Hog源码注释(hog.cpp的注解)
  15. 美国队长的工资 python代码-详解用Python练习画个美队盾牌
  16. oracle ebs r12 nls,Oracle EBS R12 - 如何通过命令上传XML/BI Publisher数据定义文件和模板文件...
  17. lcd屏和amoled屏哪个护眼呢 lcd屏和amoled屏哪个更耗电
  18. 简易计时闹钟设计verilog语言实现
  19. 分治法——查找最大最小元素(Python)
  20. 微软OEM序列号探究

热门文章

  1. mysql var目录很快_删除/var/lib/mysql目录的解决办法
  2. C++解一元二次方程
  3. 虚实接口是当前元宇宙发展的重中之重
  4. Python数据分析之pandas统计分析
  5. 【機器學習2021】預測本頻道觀看人數 (下) - 深度學習基本概念簡介
  6. Linux桌面 失败,ubuntu无法进入桌面,安装ubuntu-desktop失败的解决办法
  7. C/C++加减乘除运算效率分析
  8. 和尚挖井故事给程序员的启示
  9. 戴尔服务器能用大白菜装系统吗,戴尔如何用u盘装系统xp
  10. SEO关键词排名优化做到百度首页的核心操作