欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

理解java和python類變量以及類的成員變量

 更新時(shí)間:2016年02月13日 21:42:13   作者:Shy泠  
這篇文章主要幫助大家理解java和python類變量以及類的成員變量,用實(shí)例進(jìn)行解析,感興趣的朋友可以參考一下

最可怕的不是犯錯(cuò)而是一直都沒發(fā)現(xiàn)錯(cuò)誤,直到現(xiàn)在我才知道自己對(duì)類變量的理解有問題。
大概可能也許是因?yàn)椴怀S妙愖兞康脑虬桑恢睕]有發(fā)現(xiàn)這個(gè)問題。最近在看C++時(shí)才知道了類變量到底是什么
以前我一直覺得類變量和成員變量的唯一區(qū)別是類變量可以通過類名直接訪問,是靜態(tài)的。而成員變量需要實(shí)例化一個(gè)類后通過實(shí)例來訪問。
萬萬沒想到忽視了類變量在一個(gè)類中只有一個(gè),各個(gè)實(shí)例中的都是同一個(gè)的,在一個(gè)實(shí)例中修改會(huì)影響其他實(shí)例中的類變量...(雖然平常也沒有因?yàn)檫@個(gè)而引起什么bug,但是還是要補(bǔ)上認(rèn)知的漏洞)。
這里有用java和python寫的2個(gè)例子:

public class OO{
  public static String s;
  public String m;

  static{
    s = "Ever";
  }
  public static void main(String[] args){
    OO o1 = new OO();
    OO o2 = new OO();

    o1.m = "Once";

    //不同實(shí)例中的類變量值/地址相同
    System.out.println(o1.s);
    System.out.println(o2.s);
    System.out.println(o1.s.hashCode());
    System.out.println(o2.s.hashCode());

    o1.s = "123";
    System.out.println(o2.s);//更改類變量后影響了其他實(shí)例

    System.out.println(o1.m.hashCode());
    System.out.println(o2.m.hashCode());//NullPointerException
    //成員變量具有不同的地址
  }

}


#!/bin/python

class B:
  def whoami(self):
    print("__class__:%s,self.__class__:%s"%(__class__,self.__class__))

class C(B):
  count = 0

  def __init__(self):
    super(C,self).__init__()
    self.num = 0

  def add(self):
    __class__.count += 1
    self.num += 1

  def print(self):
    print("Count_Id:%s,Num_Id:%s"%(id(__class__.count),id(self.num)))
    print("Count:%d,Num:%d"%(__class__.count,self.num))

i1 = C()
i2 = C()
i1.whoami()
i2.whoami()
#i1的成員變量增加了1次,i2的成員變量增加了2次,類變量共增加了3次
i1.add()
i2.add()
i2.add()
i1.print()
i2.print()

以上就是本文的全部內(nèi)容,明天假期就結(jié)束了,希望大家積極地投入到工作中,繼續(xù)關(guān)注小編為大家分享的文章。

相關(guān)文章

  • java 實(shí)現(xiàn)圖片合成,并添加文字

    java 實(shí)現(xiàn)圖片合成,并添加文字

    這篇文章主要介紹了java 實(shí)現(xiàn)圖片合成,并添加文字的示例,幫助大家更好的利用Java處理圖片,感興趣的朋友可以了解下
    2020-12-12
  • Java基礎(chǔ)之垃圾回收機(jī)制詳解

    Java基礎(chǔ)之垃圾回收機(jī)制詳解

    這篇文章主要介紹了Java基礎(chǔ)之垃圾回收機(jī)制詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Spring?Security前后分離校驗(yàn)token的實(shí)現(xiàn)方法

    Spring?Security前后分離校驗(yàn)token的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring?Security前后分離校驗(yàn)token的方法,本次token生成采取jwt的方式,通過引入jwt依賴文件配置token管理器,對(duì)Spring?Security校驗(yàn)token相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-02-02
  • java方法實(shí)現(xiàn)簡易ATM功能

    java方法實(shí)現(xiàn)簡易ATM功能

    這篇文章主要為大家詳細(xì)介紹了用java方法實(shí)現(xiàn)簡易ATM功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Spring AOP實(shí)現(xiàn)記錄操作日志

    Spring AOP實(shí)現(xiàn)記錄操作日志

    這篇文章主要為大家詳細(xì)介紹了Spring AOP實(shí)現(xiàn)記錄操作日志,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • SpringBoot超詳細(xì)講解yaml配置文件

    SpringBoot超詳細(xì)講解yaml配置文件

    這篇文章主要介紹了SpringBoot中的yaml配置文件問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Spring MVC url提交參數(shù)和獲取參數(shù)

    Spring MVC url提交參數(shù)和獲取參數(shù)

    本文重要講述通過url提交參數(shù)和獲取參數(shù)的具體操作與實(shí)現(xiàn)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • 網(wǎng)絡(luò)爬蟲案例解析

    網(wǎng)絡(luò)爬蟲案例解析

    本文主要介紹了網(wǎng)絡(luò)爬蟲的小案例。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • Springboot+Stomp協(xié)議實(shí)現(xiàn)聊天功能

    Springboot+Stomp協(xié)議實(shí)現(xiàn)聊天功能

    本示例實(shí)現(xiàn)一個(gè)功能,前端通過websocket發(fā)送消息給后端服務(wù),后端服務(wù)接收到該消息時(shí),原樣將消息返回給前端,前端技術(shù)棧html+stomp.js,后端SpringBoot,需要的朋友可以參考下
    2024-02-02
  • SpringCloud Feign的使用簡介

    SpringCloud Feign的使用簡介

    這篇文章主要介紹了SpringCloud Feign的使用簡介,幫助大家更好的理解和學(xué)習(xí)使用SpringCloud,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論