最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

理解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的Servlet及其生命周期詳解

    Java的Servlet及其生命周期詳解

    這篇文章主要介紹了Java的Servlet及其生命周期詳解,Servlet是用Java編寫的服務(wù)器端程序,一門用于開發(fā)動(dòng)態(tài)web資源的技術(shù),其主要功能在與交互式的瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)web內(nèi)容,需要的朋友可以參考下
    2023-11-11
  • JDK生成WebService客戶端代碼以及調(diào)用方式

    JDK生成WebService客戶端代碼以及調(diào)用方式

    WebService 是一種跨編程語言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù),下面這篇文章主要給大家介紹了關(guān)于JDK生成WebService客戶端代碼以及調(diào)用方式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Spring Boot如何解決Mysql斷連問題

    Spring Boot如何解決Mysql斷連問題

    本篇文章主要介紹了Spring Boot如何解決Mysql斷連問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java中Scanner用法實(shí)例解析

    Java中Scanner用法實(shí)例解析

    Scanner?指的是java.util包下的Scanner類,可以接收控制臺(tái)輸入的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中Scanner用法實(shí)例的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • mybatis新增到數(shù)據(jù)庫后返回當(dāng)前ID問題

    mybatis新增到數(shù)據(jù)庫后返回當(dāng)前ID問題

    這篇文章主要介紹了mybatis新增到數(shù)據(jù)庫后返回當(dāng)前ID問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java多線程:基礎(chǔ)詳解

    java多線程:基礎(chǔ)詳解

    這篇文章主要介紹了java多線程編程實(shí)例,分享了幾則多線程的實(shí)例代碼,具有一定參考價(jià)值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下。
    2021-08-08
  • 使用SpringBoot配置https(SSL證書)

    使用SpringBoot配置https(SSL證書)

    這篇文章主要介紹了使用SpringBoot配置https(SSL證書),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java如何使用multipartFile對(duì)象解析Execl

    Java如何使用multipartFile對(duì)象解析Execl

    本文介紹了如何使用Spring的MultipartFile類解析Excel文件(.xls和.xlsx),包括文件上傳、數(shù)據(jù)校驗(yàn)、輸入流獲取、文件解析、數(shù)據(jù)保存和異常處理的詳細(xì)步驟
    2025-02-02
  • java實(shí)現(xiàn)文件復(fù)制上傳操作

    java實(shí)現(xiàn)文件復(fù)制上傳操作

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件復(fù)制上傳操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java?C++算法題解leetcode801使序列遞增的最小交換次數(shù)

    Java?C++算法題解leetcode801使序列遞增的最小交換次數(shù)

    這篇文章主要為大家介紹了Java?C++題解leetcode801使序列遞增的最小交換次數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評(píng)論

利川市| 高台县| 曲靖市| 赣州市| 雷山县| 咸宁市| 亚东县| 肇东市| 平乐县| 巴里| 山东| 绥芬河市| 龙川县| 棋牌| 丰镇市| 云和县| 穆棱市| 乐陵市| 金阳县| 琼海市| 德安县| 虞城县| 孟州市| 青阳县| 九江县| 龙胜| 涞源县| 常熟市| 东台市| 油尖旺区| 于都县| 崇信县| 炎陵县| 尤溪县| 江阴市| 潮安县| 青阳县| 康定县| 泊头市| 蓝田县| 罗源县|