將對象的存儲在數組中會報錯
public static void main(String[] args) {
ArrayList<Goods> arrayList = new ArrayList<Goods>();
init(arrayList);
int size = arrayList.size();
String[] array = (String[] )arrayList.toArray(new String[size]);
System.out.println(Arrays.toString(array ));
}
// 錯誤信息
Exception in thread "main" java.lang.ArrayStoreException
04成員變量和局部變量的區別
- 區別一:定義的位置不同
- 定義在類中的變量是成員變量
- 定義在方法中或者{}語句里面的變量是局部變量
- 區別二:在內存中的位置不同
- 成員變量存儲在對內存的對象中
- 局部變量存儲在棧內存的方法中
- 區別三:聲明周期不同
- 成員變量隨着對象的出現而出現在堆中,隨着對象的消失而從堆中消失
- 局部變量隨着方法的運行而出現在棧中,隨着方法的彈棧而消失
- 區別四:初始化不同
- 成員變量因為在堆內存中,所有默認的初始化值
- 局部變量沒有默認的初始化值,必須手動的給其賦值才可以使用。
接口的定義
-
A: 接口的定義
與定於類的class 不同, 接口定義時需要使用interface 關鍵字 -
B :定義的格式
public interface 接口名 { 抽象方法1; 抽象方法2; }
類的構造方法
-
累的構造方法
public class Person { private int age; private String name; // 私有無參數的構造方法, 及外界不能通過new Person() 語句創建本類對象 private Person() { } Person(int newAge , String newName ) { age = newAge; name = newName; } public void speak() { System.out.println("name =" + name + ", age = " + age ); } }
final修飾類不可以被繼承,但是可以繼承其他類。
class Yy {}
final class Fu extends Yy{} //可以繼承Yy類
class Zi extends Fu{} //不能繼承Fu類