我的代碼由2個類組成。 (1.測試)(2.狗)Java封裝設置程序不改變實例變量
該代碼的目的是測試使3只狗和使用setters設置狗的名稱和大小,然後使3只狗叫。
這是我的代碼。
public class Dog {
private int size;
public void bark(){
System.out.println("Size: " + size);
if(size > 19) System.out.println("Woof Woof Woof");
if(size > 9 && size < 20) System.out.println("Bark Bark Bark");
if(size < 10 && size > 0) System.out.println("Yip Yip Yip");
if(size == 0) System.out.println("Size Not Set");
}
public void setSize (int s){
if(size > 0 && size < 60) size = s;
if(size > 60) {
size = 60;
System.out.println("Debug: Size sent to large resetting to max.(60)");
}
}
public class Test{
public static void main (String[] args){
//dog size
int s1 = 100;
int s2 = 100;
int s3 = 100;
//create dog and make him bark
Dog d1 = new Dog();
d1.setSize(s1);
d1.bark();
//create dog and make him bark
Dog d2 = new Dog();
d2.setSize(s2);
d2.bark();
//create dog and make him bark
Dog d3 = new Dog();
d3.setSize(s3);
d3.bark();
}}
這裏是輸出
Size: 0
Size Not Set
Size: 0
Size Not Set
Size: 0
Size Not Set
時Dog
運行setSize
它不chaning size
傳遞的參數怎麼想嗎?如果是的話我該如何解決這個問題?
當我更改private int size;
爲private int size = 10;
它的工作原理。 但是,當我將其更改爲private int size = 0;
它不。
這是爲什麼?
你爲什麼檢查大小? – imoteb
更改尺寸> 60; to s> 60 –