1. 程式人生 > >類和物件 - 方法的呼叫

類和物件 - 方法的呼叫

 

這個方法呼叫  列印的結果是  1  跟 2  :基本資料型別問題

解:change方法呼叫的時候 傳進去的引數屬於基本資料型別。 change方法在壓站執行的時候 只是重新賦值了  a 跟 b ;main方法執行完change的方法之後 change方法就沒有用了 就出站了  不影響原本定義的 a 跟 b

 

 

 這個方法 執行結果 是  3 跟 100 :引用資料型別問題

解: 方法首先從main方法進入  第一步 建立的int靜態型陣列, 此時JVM中的已經存在了陣列的記憶體地址,因為是靜態型的所以記憶體裡面已經賦好了值,列印2索引-就會打出結果 3,此時又執行方法呼叫,將剛才定義的arr陣列傳入進去,注意:這時候傳入的是 記憶體地址,並非資料! change方法開始執行 將arr陣列中的2索引重新賦值。因為change中定義的陣列引數跟main方法中的陣列 指向的是同一個記憶體地址,所以change方法重新賦值的話,更改的實際上是記憶體中2索引的內容 。此時change方法出站,可是arr陣列中的記憶體地址已經被改變,在列印的話 2索引就會打印出100

 

繼剛才的知識點衍生的記憶體圖 如下: 

引用資料型別 陣列  的記憶體圖

基本資料型別 int 型 記憶體圖:

相關推薦

物件 - 方法呼叫

  這個方法呼叫  列印的結果是  1  跟 2  :基本資料型別問題 解:change方法呼叫的時候 傳進去的引數屬於基本資料型別。 change方法在壓站執行的時候 只是重新賦值了  a 跟 b ;main方法執行完change的方法之後

黑馬程式設計師-OC-方法物件方法呼叫

1.類方法 宣告:在.h檔案中宣告,必須以+開頭。 實現:在.m檔案中實現 2.物件方法 宣告:在.h檔案中宣告,必須以-開頭。 實現:在.m檔案中實現 對比: 1)類方法只能類呼叫,物件方法只能物件呼叫 2)類方法與物件方法可以

物件(5)—— 建構函式的分類及呼叫

無引數建構函式、有引數建構函式、賦值建構函式 (3)拷貝建構函式   由已存在的物件,建立新物件。也就是說新物件,不由構造器來構造,而是由拷貝構造器來完成。拷貝構造器的格式是固定的。   #define _CRT_SECURE_NO_WARNINGS #includ

通過反射建立私有化物件呼叫的私有方法,改變私有屬性

首先建立一個類 public class ReflectDemo { private int m=0; //私有屬性 private ReflectDemo(){ //私有無參建構函式 } public ReflectDemo(int aa

一種JavaScript繼承super方法呼叫的實現

在設計實現一種Java、Objective-C與JavaScript混合程式設計的程式設計風格JSAppSugar時,需要 JavaScript 語言支援類導向的程式設計風格,然而JavaScript本身是原型導向(Prototype-based)的,因此在JavaScript中也有很多種實現類繼承

1.面向過程程式設計 2.面向物件程式設計 3.物件 4.python 建立物件 如何使用物件 5.屬性的查詢順序 6.初始化函式 7.繫結方法 與非繫結方法

1.面向過程程式設計 面向過程:一種程式設計思想在編寫程式碼時 要時刻想著過程這個兩個字過程指的是什麼? 解決問題的步驟 流程,即第一步幹什麼 第二步幹什麼,其目的是將一個複雜的問題,拆分為若干的小的問題,按照步驟一一解決,也可以說 將一個複雜的問題,流程化(為其制定一個固定的實現流程),從而變得簡單化例如

面向物件基礎、物件、繫結方法

一、面向物件程式設計 回顧:面向過程程式設計 是一種之前程式設計師們設計出來的比較好的程式設計方法,也是一種程式設計思想。 核心是過程二字,顧名思義,就是先幹什麼,再幹什麼,完成一個事情具有的所有步驟。 優點:複雜的流程簡單化,程式化,一步一步拆分,降低開發難度。 缺點:擴充套件性差, 不容易維護。 主要使用

內的方法呼叫 之間的方法呼叫

A類 {        a公開方法 {        b()√        c()√ }        b私有

Java面向物件-finalfinal方法、final變數(常量)

為什麼得需要使用final修飾符 繼承關係最大的弊端是破壞封裝:子類能訪問父類的實現細節,而且可以通過方法覆蓋的形式修改實現細節。 final本身的含義是“最終的,不可改變的”,它可以修飾抽象類,非抽象方法和變數。 注意:構造方法不能使用final修飾,因

【C++物件】計算兩點間距離的兩種方法

使用類的組合(線段Line類中包含點Point類成員): #include <iostream> #include <cmath> using namespace std; //Point類的定義 class Point { public: Po

OC方法物件方法對比

方法 1. 方法的宣告和實現,都必須以+/—開頭 2. +表示類方法(靜態方法) 呼叫方式:[className classMethod]; 3. -表示例項方法(動態方法) 呼叫方式:[obj instanceMethod]; 區別:

IOS之OC入門--方法物件方法

程式碼時錯誤的  主要是為了瞭解類方法和物件方法的使用時注意的一些細節 /* 4.設計一個成績類 * C語言成績(可讀可寫) * OC成績(可讀可寫) * 總分(只讀) * 平局分(只讀) */ # import <Foundation/Founda

物件(欄位=變數、方法=函式、方法過載、靜態成員、屬性、建構函式)

一、類 類包括:欄位(用來儲存資料)、屬性(用來保護欄位,屬性的本質是兩個函式get和set)、建構函式(用來初始化物件,給物件的每一個屬性賦值)、函式(描述物件的行為)、索引器(以索引的方式去訪問物件)。 一個類都可以包含兩種成員:欄位(Field)與方法(Method)

Java用物件,構造方法來實現超市管理系統

1.用自己的思維模式構建了2個類(User類和Account類)來實現。 2.根據馮經理的思維多建立了幾個方法(login(),initDate(),search(),delete(),),發現把很多功能模組寫成方法會使程式可讀性更強 • 遇到的問題和解決方案; 問題:

python 物件屬性,方法,靜態方法,例項屬性,例項方法

類:類是抽象的,在使用的時候通常會找到這個類的一個具體的存在,使用這個具體的存在。一個類可以找到多個物件物件: 某一個具體事物的存在,在現實世界中可以是看的到摸得著的。 可以直接使用類與物件的關係: 類就是建立物件的模板類的構成:                1.類的名稱:

Java中父中的方法呼叫引數傳遞探討

有這樣一段程式,看看它會輸出什麼結果 public class Test { public static void main(String [] args){ System.out.println(new B().getVa

根據字串名稱動態呼叫Python的函式物件方法

#!/usr/bin/python #coding: UTF-8 """ @author: CaiKnife 根據函式名稱動態呼叫 """ def do_foo(): print "foo!" def do_bar(): print "bar!" c

物件+構造方法(Java)

關於什麼是的物件? 先不用思考物件的定義是什麼,想一想生活中有哪些物件。一支筆,一本書,都是一個物件。其實所謂物件就是真實世界中的實體,物件與實體是一一對應的,也就是說現實世界中每一個實體都是一個物件,它是一種具體的概念。 生活中有很多筆,很

objective-c 物件中靜態資料成員靜態成員函式(方法)詳解

作為初學者,相信大家都對objective-c的靜態資料成員和靜態成員函式都挺糾結的,我現在和大家分享下我對這個知識點的理解,請大家多多指點.... 如果大家學過C++,那麼都應該知道和了解靜態資料成

四、資源物件的區別、抽象抽象方法、過載技術、介面interface

一、資源和物件的辨析 熟悉的資源:       $link = mysql_connect(“localhost”, “root”, “123”); //得到一個“連線到mysql資料庫”的資源。       $result = mysql_query(“select ..