筆試題(靜態(tài)與非靜態(tài))
靜態(tài)成員和非靜態(tài)成員的區(qū)別?
答:
靜態(tài)變量使用 static 修飾符進(jìn)行聲明,在類被實(shí)例化時(shí)創(chuàng)建,通過(guò)類進(jìn)行訪問(wèn)不帶有 static 修飾符聲明的變量稱做非靜態(tài)變量,在對(duì)象被實(shí)例化時(shí)創(chuàng)建,通過(guò)對(duì)象進(jìn)行訪問(wèn)一個(gè)類的所有實(shí)例的同一靜態(tài)變量都是同一個(gè)值,同一個(gè)類的不同實(shí)例的.同一非靜態(tài)變量可以是不同的值靜態(tài)函數(shù)的實(shí)現(xiàn)里不能使用非靜態(tài)成員,如非靜態(tài)變量、非靜態(tài)函數(shù)等
示例:
using System;using System.Collections.Generic;using System.Text; namespace Example01{ class Program { class Class1 { public static String staticStr = "Class"; public String notstaticStr = "Obj"; } static void Main(string[] args) { //靜態(tài)變量通過(guò)類進(jìn)行訪問(wèn),該類所有實(shí)例的同一靜態(tài)變量都是同一個(gè)值 Console.WriteLine("Class1's staticStr: {0}", Class1.staticStr); Class1 tmpObj1 = new Class1(); tmpObj1.notstaticStr = "tmpObj1"; Class1 tmpObj2 = new Class1(); tmpObj2.notstaticStr = "tmpObj2"; //非靜態(tài)變量通過(guò)對(duì)象進(jìn)行訪問(wèn),不同對(duì)象的同一非靜態(tài)變量可以有不同的值 Console.WriteLine("tmpObj1's notstaticStr: {0}", tmpObj1.notstaticStr); Console.WriteLine("tmpObj2's notstaticStr: {0}", tmpObj2.notstaticStr); Console.ReadLine(); } }}結(jié)果:
Class1's staticStr: Class
tmpObj1's notstaticStr: tmpObj1
tmpObj2's notstaticStr: tmpObj2
【筆試題(靜態(tài)與非靜態(tài))】相關(guān)文章:
動(dòng)態(tài)禮儀與靜態(tài)禮儀12-13
php靜態(tài)成員變量分享11-25
設(shè)計(jì)靜態(tài)廣告BANNER的技巧10-04
考研復(fù)試面容及靜態(tài)禮儀01-20
公路經(jīng)濟(jì)靜態(tài)研究論文09-14
淺談校園網(wǎng)靜態(tài)與動(dòng)態(tài)內(nèi)部路由組建08-08
靜態(tài)頁(yè)面生成方案介紹10-06