本文目錄一覽:
- 1、java中繼承的數值傳遞引用
- 2、java引用傳遞怎麼用
- 3、誰知道Java中參數是引用傳遞還是值傳遞?
- 4、java到底是值傳遞還是引用傳遞
- 5、java引用數據類型的傳遞
- 6、分析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-hant/n/304562.html