2013-11-18

[Java]Static method與non-Static method呼叫時差異

每星期五John大師開釋 這邊是Class
public class Book {
    //成員變數
    public String name;
    public int price;
    public static int count = 0;

    //建構子1
    public Book() {
        System.out.println("建構子1");
        name = "none";
        price = 0;
        count++;
    }

    //建構子2
    public Book(String name, int price) {
        System.out.println("建構子2");
        this.name = name;
        this.price = price;
        count++;
    }

    //non-static method
    public void showBook() {
        System.out.println(" non-static name:" + name + ",price:" + price);
    }

    //static method
    public static void staticShowBook() {
        System.out.println("static method()");
    }
}
這邊是主程式
public class BookMain {
    public static void main(String[] args) {
        Book b = new Book();
        b.showBook();

        Book b2 = new Book("Java", 100);
        b2.showBook();

        System.out.println(Book.count);

        Book.staticShowBook();
        int i = Book.count;
    }
}
範例觀念 1、Static method與non-Static method,呼叫時的差異 Static method使用時,不需要New就可以使用 Ex:Book.staticShowBook(); non-Static method呼叫時需要New完物件後才可以進行呼叫 Ex: Book b = new Book(); b.showBook(); 2、成員變數分為Static與non-Static public使用時每New一次會有不同的記憶體位置儲存 static共用這個變數(記憶體裡面只有一份,不管本身Class或其他Class) 3、 this關鍵字表示目前使用的實體或者用_name與name作區別 _name表示Method外、Class內 name表示Method內

沒有留言:

張貼留言