zoukankan      html  css  js  c++  java
  • 静态和非静态的区别

    声明 静态类和非静态类

    1.非静态类中:既可以定义静态字段、静态属性、静态方法,也可以定义非静态(实例成员)字段、非静态(实例成员)属性、非静态(实例成员)方法、

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace 静态和非静态的区别
     8 {
     9 
    10     /**
    11      * 非静态类
    12      * 既可以定义静态字段、静态属性、静态方法。
    13      * 也可以定义非静态(实例成员)字段、非静态(实例成员)属性、非静态(实例成员)静态方法。
    14      **/
    15 
    16     //非静态类
    17     public class Person1
    18     {
    19         //实例成员(非静态)
    20         private int _id;
    21 
    22         //实例属性(非静态)
    23         public int ID
    24         {
    25             get { return _id; }
    26             set { _id = value; }
    27         }
    28 
    29         //实例方法(非静态)
    30         public void Showinfo()
    31         {
    32         }
    33 
    34 
    35 /*--------------------------------------------------------------------*/
    36 
    37 
    38         //静态字段
    39         private static string _name;
    40 
    41         //静态属性
    42         public static string Name
    43         {
    44             get 
    45             {
    46                 return _name;
    47             }
    48             set
    49             {
    50                 _name = value;
    51             }
    52         }
    53         //静态方法
    54         public static void Sho()
    55         {
    56  
    57         }
    58     }
    59 }

     

    2.静态类中:只可以定义静态字段、静态属性、静态方法。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace 静态和非静态的区别
     8 {
     9 
    10     /**
    11      * 静态类
    12      * 只能定义静态字段、静态属性、静态方法。
    13      **/
    14 
    15     //静态类
    16     public static class Person2
    17     {
    18         /**
    19          * 静态类中不能定义非静态成员
    20          * **/
    21         ////实例成员(非静态)
    22         //private int _id;
    23 
    24         ////实例属性(非静态)
    25         //public int ID
    26         //{
    27         //    get { return _id; }
    28         //    set { _id = value; }
    29         //}
    30 
    31         ////实例方法(非静态)
    32         //public void Showinfo()
    33         //{
    34         //}
    35 
    36 /*--------------------------------------------------------------------*/
    37 
    38         //静态字段
    39         private static string _name;
    40 
    41         //静态属性
    42         public static string Name
    43         {
    44             get
    45             {
    46                 return _name;
    47             }
    48             set
    49             {
    50                 _name = value;
    51             }
    52         }
    53         //静态方法
    54         public static void Sho()
    55         {
    56         }
    57     }
    58 }

    调用 静态类和非静态类

      1.非静态类

        :使用实例化的对象来调用属性和方法。

    1             // 非静态类
    2             // 使用实例化的对象来调用属性和方法。
    3             Person1 p = new Person1();
    4             p.ID = 20;
    5             p.Showinfo();

      2.静态类

        :直接使用类名来调用属性和方法。

    1             // 静态类
    2             // 直接使用类名来调用属性和方法。
    3             Person2.Name = "KaiDi";
    4             Person2.Sho();

    为什么使用静态类?

      1.如果想要你的类当做工具类去使用,这个时候可以使用静态类。因为不需要实例化对象,直接可以用类名调用。

      2.静态类在整个项目中资源共享,除非重新编译,否则静态类不会改变。QQ只登陆一次,如果在QQ中跳转到其他模块,就不需要在进行登录。只有在程序结束的时候,静态了才会释放资源。

    完成。

  • 相关阅读:
    三地气温的典型相关分析
    android 使用 BroadcastReceiver 总结
    发布网站问题笔记
    Android 两个Activity 实现数据的来回传递
    input 标签屏蔽谷歌浏览器高亮显示
    javascript 获取当前html 标签的位置
    c# 四舍五入
    利用SQL的charindex实现字符串数组和Split函数
    ExtJs 一些常用的控件
    C#中return、break、continue的用法
  • 原文地址:https://www.cnblogs.com/KTblog/p/4435417.html
Copyright © 2011-2022 走看看