java 成員變量和局部變量的區別


將對象的存儲在數組中會報錯

    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類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM