java引用傳遞,java引用傳遞自身關聯結構

本文目錄一覽:

java中繼承的數值傳遞引用

這個題目如下思路與實現

思路:

依照圓和圓柱的描述抽象成Java程序里的對象Cylinder與Circle,這也是Java的特點之一

圓與圓柱的關係:圓柱繼承圓

寫測試類TestCylinder

實現:

1.圓:

class Circle {

private double radius;// 半徑

// 構造方法半徑設為1

public Circle() {

super();

this.radius = 1.0;

}

// 設置半徑

public void setRadius(Double radius) {

this.radius = radius;

}

// 得到半徑

public Double getRadius() {

return radius;

}

}

2.圓柱

class Cylinder extends Circle {

private double length;

public Cylinder() {

super();

this.length = 1.0;

}

public void setLength(double length) {

this.length = length;

}

public double getLength() {

return length;

}

public double findVolume() {

return this.length * super.getRadius() * super.getRadius() * Math.PI;

}

}

3.測試

public class TestCylinder {

public static void main(String[] args) {

Cylinder cy = new Cylinder();//實例化一個圓柱

System.out.println(cy.findVolume());//因為length有默認值1,圓柱的父類圓具有半徑且初始值是1,此處,沒有主動給length和radius賦值,所以findVolume里使用的半徑與高都是1,所以體積是3.141592653589793

cy.setRadius(2.0);

cy.setLength(2.0);

System.out.println(cy.findVolume());//主動給半徑和高設置值,那麼cy的半徑與高的初始值就會被改變,結果就是2*2*2*PI

}

}

運行結果:

3.141592653589793

25.132741228718345

java引用傳遞怎麼用

String類型的傳遞是引用傳遞。也即是地址傳遞。傳的是str的地址。把str里「good」的地址傳給change()方法里的str。change()里的str賦予新的地址。是「testok」的地址。此時ex.str對「good」的引用沒變。就是還是存放「good」的地址。所以。ex.str還是「good」基本數據類型傳遞的是值。但是數組類型是引用類型。傳的也是ch的中{『a』,『b』,『c』}的地址。ch[0]修改為『g』。基本數據類型的修改改的是其值。所以change()中ch接受傳來的ex.ch的地址,指向{『a』,『b』,『c』},修改其中的ch[0]後。修改保持。ex.ch引用不變。變為{『g』,『b』,『c』}要想修改它們的值,change()傳的是Exampleechange(Examplee){e.str=「testok」;e.ch[0]=’g’;}

誰知道Java中參數是引用傳遞還是值傳遞?

java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(複製品)傳入方法內,而自己本身不會受到任何影響。

如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。 

如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。

java到底是值傳遞還是引用傳遞

java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(複製品)傳入方法內,而自己本身不會受到任何影響。

如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。 

如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。

java引用數據類型的傳遞

引用數據類型就是以對象的形式存在於計算機棧內存中,在堆內存中保存着一個地址引用,這個引用地址指向了這個對象。我們通過操作這個地址引用,就能獲取到這個對象,並對其進行操作。類似於c中的指針。

你具體想問的什麼問題呢

基本類型八種:

byte、short、int、long、float、double、boolean、char,

除了這八種,都是引用類型,包括string

分析java中有沒有引用傳遞

java中沒有引用傳遞,只存在值傳遞。

值傳遞:是對所傳遞參數進行一次副本拷貝,對參數的修改只是對副本的修改,函數調用結束,副本丟棄,原來的變量不變(即實參不變);引用傳遞:參數被傳遞到函數時,不複製副本,而是直接將參數自身傳入到函數,函數內對參數的任何改變都將反映到原來的變量上。

我們經常看到對於對象(數組,類,接口)的傳遞似乎有點像引用傳遞,可以改變對象中某個屬性的值。但是不要被這個假象所蒙蔽,實際上這個傳入函數的值是對象引用的拷貝,即傳遞的是引用的地址值,所以還是按值傳遞。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/304562.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-01 11:05
下一篇 2025-01-01 11:05

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論