C# 静态和非静态的区别
静态标记 – static
//静态方法
public static void Max(){ }
//非静态方法
public void Max(){ }//静态类
public static class program{ }
//非静态类
public class program{ }
静态和非静态的区别
- 在静态类中既可以有静态成员,也可以有非静态成员。
- 非静态成员也称为【实例成员】。
- 在调用实例成员/方法(非静态成员)的时候,需要用
实例对象.实例成员/方法(非静态成员)
- 在调用静态成员/方法的时候,需要用
类名.静态成员/方法
- 静态方法(函数)中,只能访问静态成员,不能访问实例成员。
- 非静态方法(函数)中,既可以访问静态成员,也可以访问实例成员。
- 静态类中,只允许有静态成员/方法。
静态类的特征
- 静态类本身占内存,静态存储区域,因为静态类不需要实例。
- 静态类在整个项目中是资源共享的。
- 上述两种特征导致,静态类是作为“工具类”来使用。存放经常调用的方法,或存放需要共享的数据。
- 静态类只在项目所有应用程序结束时,才会释放资源,否者一直占据内存空间。
- 因为占内存,静态类越少越好
常用的系统静态类: 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# 静态和非静态的区别相关推荐
- java中静态是什么,java中静态和非静态有什么区别
首先我们先来说说jvm内存模型: jvm内存分为:方法区.堆.栈和程序计数器. 下面我们来简单的说说方法区.栈和堆: 方法区:是各个线程共享的区域,存放类信息/常量/静态变量: 栈:其实每个线程都会分 ...
- C# 面向对象编程 1 面向对象类,静态和非静态的区别,构造函数,new关键字 ,析构函数
C# 面向对象编程 1 文章目录 C# 面向对象编程 1 1.面向过程-----> 面向对象 2.类 3.静态和非静态的区别 4.构造函数 5.new关键字 6. 析构函数 1.面向过程---- ...
- java 静态变量和非静态_Java中静态和非静态变量之间的区别
变量为我们提供了程序可以操纵的命名存储.Java中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局.可以存储在该内存中的值的范围:以及可以应用于该变量的一组操作. 静态变量 静态变量也称为 ...
- C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态
C#基础--类/接口/成员修饰符,多态.重载.重写,静态和非静态 类/接口/成员修饰符 C#修饰符---接口: 接口默认访问符是internal 接口的成员默认访问修饰符是public C#修饰符-- ...
- 开发三年,java静态和非静态的这些弯弯绕绕你真的知道吗?
问 Java 中,为什么不允许从静态方法中访问非静态变量? 了解特点 静态方法.属性:类加载时调用创建,通过类名直接调用,子类可继承不可重写 普通方法.属性:new对象时创建.注意new对象的时候 静 ...
- 第十七节:易混淆的概念(静态和非静态、拆箱和装箱)
一. 静态和非静态 1. 概念介绍 ① 静态类(被static修饰) vs 普通类(没有被static修饰) ② 静态成员:被static修饰的成员,比如:静态方法.静态字段等 ③ 普通成员(实例成 ...
- java 静态与非静态之间的访问规则简述
java 静态与非静态之间的访问规则简述 1.静态与静态之间直接访问 2.非静态(实例级别)访问静态直接访问 3.静态访问非静态(实例级别),必须先创建对象再访问 package com.qfedu. ...
- java的静态与非静态 及其代码演示示例
静态与非静态的概念 运行Java应用程序时,在实际的代码运行之前的一个步骤是加载类,具体点说,在Java SE 8的JVM中,需要先把类加载到Metaspace.如果类中有静态成员,加载类时会在hea ...
- 火山PC静态调用非静态
1.一个编辑框,一个按钮 2.建立静态方法 3.建立一个类,放非静态方法 4.静态调用非静态 如需要在同一个类中直接静态调用非静态,等大佬,封装相关模块 5.演示 本文转载自利快云,原文地址:点击阅读 ...
最新文章
- 2021年速卖通828年中大促活动报名攻略
- Solution 7: 判断两链表是否相交
- BugkuCTF-PWN题pwn7-repeater详细讲解多解法
- BCC实例(如何修改NS解析方式为百度智能云解析) - 解答篇
- Python风格总结:错误和异常
- C++11 右值引用与移动语义
- MyEclipse插件不能安装原因
- antd vue form 手动校验_vue测试模板与jsonSchema自动生成elment组件
- 逆向CS生成的exe马
- 推荐几个很实用的编程网站
- 085400计算机技术专业怎么参加公考,2021年东南大学电子信息(085400)计算机技术_考研专业目录_考试科目_考试范围 - 学途吧...
- Java POI 设置字体下划线、方框打勾、字体加粗
- java 图片 大小_在JAVA中调整图片大小
- Hog源码注释(hog.cpp的注解)
- 美国队长的工资 python代码-详解用Python练习画个美队盾牌
- oracle ebs r12 nls,Oracle EBS R12 - 如何通过命令上传XML/BI Publisher数据定义文件和模板文件...
- lcd屏和amoled屏哪个护眼呢 lcd屏和amoled屏哪个更耗电
- 简易计时闹钟设计verilog语言实现
- 分治法——查找最大最小元素(Python)
- 微软OEM序列号探究
热门文章
- mysql var目录很快_删除/var/lib/mysql目录的解决办法
- C++解一元二次方程
- 虚实接口是当前元宇宙发展的重中之重
- Python数据分析之pandas统计分析
- 【機器學習2021】預測本頻道觀看人數 (下) - 深度學習基本概念簡介
- Linux桌面 失败,ubuntu无法进入桌面,安装ubuntu-desktop失败的解决办法
- C/C++加减乘除运算效率分析
- 和尚挖井故事给程序员的启示
- 戴尔服务器能用大白菜装系统吗,戴尔如何用u盘装系统xp
- SEO关键词排名优化做到百度首页的核心操作