博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 Using Static Function 的总结 By greenhand
阅读量:5836 次
发布时间:2019-06-18

本文共 1344 字,大约阅读时间需要 4 分钟。

 1 
namespace
 Using_Static_Function
 2 
{
 3 
    
class
 Program
 4 
    {
 5 
       
///
 
<summary>
 6 
       
///
 总结静态的方法调用的时候应该注意的问题;  静态的方法只能调用静态的成员变量或成员方法 
 7 
       
///
 
</summary>
 8 
       
///
 
<param name="args"></param>
 9 
        
static
 
void
 Main(
string
[] args)
10 
        {
11 
            Student.ShowName_1();
//
调用静态方法的方式 按原理来说应该是直接写静态方法名就可以的,但是因为这个静态的方法不是写在本类里面所以要用 类名来访问;  
12 
            
13 
            
//
静态的方法调用非静态的方法另一种方式;
14 
15 
            Student stu 
=
 
new
 Student();  
//
通过实例化对象的方式引用一个类对象的域;
16 
            stu.ShowName_2();
17 
        }
18 
    }
19 
20 
    
///
 
<summary>
21 
    
///
 总结:为什么静态的方法只能调用静态的方法 而不能调用非静态的方法?
22 
    
///
 因为:类中的非静态成员,在每个类的实例中都会占有一定的存储空间,
23 
    
///
 多个类也就有多个这样的同名的非静态成员的内存地址存在【地址不冲突 是因为 有个类似于应用程序域一样的概念将各个对象的区域隔开了,跟应用程序域很像,这里不研究】,
24 
    
///
 程序也不知道到那个对象域里面去读取这个值(编译器也不是智能的也是按某种约定去检测执行代码),因为静态的东东是全局共享的,所以它的域就是整个应用程序,所以静态方法里面就可以访问静态的内容,它们在一个应用程序域里面,
25 
    
///
 应用程序的进程关了静态的东东才会释放掉;
26 
    
///
 
</summary>
27 
    
public
 
class
 Student   
28 
    {
29 
        
public
 
static
  
string
 Name { 
get
set
; }
//
Static Property
30 
31 
        
public
 
static
 
string
 ShowName_1()  
//
Static Function
32 
        {
33 
            
return
 Student.Name;
34 
            
//
return this.Name;
//
这种写法是错误的,this在静态的方法里面充当的并不是当前类对象的角色,而是应用程序级的;
35 
           
36 
        }
37 
38 
        
public
 
int
 Age { 
get
set
; }  
//
UnStatic Property
39 
40 
        
public
 
string
 ShowName_2()  
//
UnStatic Function
41 
        {
42 
            
return
 ShowName_1();
//
【非静态的方法能够访问类中的任何成员,包括静态的成员属性或方法;】
43 
            
44 
        }
45 
46 
        
public
 Student()
47 
        {
48 
49 
        }
50 
51 
    }
52 
}

转载于:https://www.cnblogs.com/wangm01-mysoft/archive/2011/08/30/2159410.html

你可能感兴趣的文章
swift3.0 常用字符操作 <持续整理>
查看>>
Oracle11g及PL/SQL Developer的安装和配置
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
Ubuntu各类软件推荐
查看>>
关于angular post提交数据接收问题
查看>>
查找两个增序数组中第K大的数
查看>>
java程序员为什么使用Groovy
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>
java socket编程实例代码讲解
查看>>
PHP_5.3.20 源码编译安装PHP-FPM
查看>>
动态代理解释-JDK,CGLIB,JAVASSIST,ASM
查看>>
在51CTO三年年+了,你也来晒晒
查看>>
js控制图片等比例缩放
查看>>
Java高级开发工程师面试考纲
查看>>
FreeMarker表达式
查看>>
No module named 'apt_pkg' 出错
查看>>
Debian9.2 下使用vnstat查看服务器带宽流量统计
查看>>
NGINX + PHP-FPM 502
查看>>
Windows Server 2012 之DHCP服务器的备份,还原及转移
查看>>
oracle linux 5.7 布署ogg v11 oracle to oracle之环境配置及数据初始化
查看>>