Q:java中參數傳值的機制?
A:方法中參數變量的值是調用者指定的值的拷貝
Q:怎樣理解將兩個類型相同的數據互相賦值的情況?
A:類型相同兩個數據,互相賦值就是使得他們的引用相同。類型相同的兩個對象/數據一旦引用相同,就有一樣的實體(變量)
Q:怎樣創建一個對象?
A:包括兩部分:
(1)聲明對象 :
學生 哈拉澤空:
此時,哈拉澤空只是個空對象,裏面什麼也沒有。此時不要讓空對象去訪問變量或方法,,否則編譯通過,運行出現NullPointerException
(2)爲對象分配變量(創建對象):用new運算符和構造方法
哈拉澤空 = new 學生();
此時,纔可以調用哈拉澤空這個對象,纔不會出現NullPointerExceprion
Q:什麼叫對象的引用和實體
A:對象本身中存放着引用,自己可以操作分配個自己的變量,調用類提供的方法。分配給對象的變量稱作對象的“實體”
這圖說明了,兩個類型相同的對象,如果二者的引用相同,那麼二者就具有完全相同的“實體”
Example:
用面向對象的思想編寫程序,求圓錐的體積
main方法
public class Example01 {
public static void main(String[] args) {
Circle c=new Circle();
c.SetRadius(5.0);
Circular cir=new Circular(10.0);
cir.setbottom(c);
System.out.println("底面的的半徑"+c.radius);
System.out.println("圓錐的高"+cir.height);
System.out.println("地面的面積"+c.CaculateS());
System.out.println("圓錐的體積"+cir.getvolume());
c.SetRadius(7.0);
System.out.println("修改圓的半徑,底面半徑同樣發生變化");
System.out.println(cir.getbottomRadius());
}
}
圓錐類
public class Circular {
double height;
Circle c;
Circular(double height) {
this.height=height;
}
double getvolume() {
if(c==null)
return -1;
else
return c.CaculateS()*height/3.0;
}
void setbottom(Circle c) {
this.c=c;
}
double getbottomRadius() {
return c.radius;
}
double getbottomS() {
return c.CaculateS();
}
}
圓類
public class Circle {
double radius;
void SetRadius(double radius) {
this.radius=radius;
}
double CaculateS() {
return 3.14*radius*radius;
}
}