java的類class 和對象object


java 語言的源代碼是以類為單位存放在文件中,已public修飾的類名須和存放這個類的源文件名一樣。而

一個源文件中只能有一個public的類,類名的首字母通常為大寫。

使用public修飾的類可以被外部程序使用,而不使用public修飾的類則不能被外部程序使用。

類中定義的變量,可以稱為類的‘’屬性property‘’,或‘’成員變量member variable'。

通過類可以自定義新的變量類型。這種新的自定義類型與數組類似,只是其成員的類型可以是各種不同的

基本或非基本類型,而不必像數組所有成員的類型都一致。

例如定義新類型book。

public class Book {

String bookName ;//書名

String firstAuthor;//書的第一作者

String authors;//書的其他作者

int bookNumber;//書的頁數

int bookSize;//書是多大的,例如32開,16開等

String language;//書的語言

}

定義完了就可以在其他的程序中使用Book這種類型。

可先聲明一個Book變量:Book math1;  再創建一個Book對象賦值給Book變量:math1=new Book()。

然后就可以使用math1這個Book變量了:math1.bookName="飛屋環球記";math1.bookNumber=56;

 

對於在另一個類中調用Book類時,默認情況下,類和類中使用的其他類的源文件要放在同一個目錄下。若在其他文件夾中

也可在代碼中注明路徑。

java編譯器會在找不到     .class文件但可以找到源文件的情況下,會自動對源文件(.java文件)進行編譯並使用

產生出來的.class文件。

 

引用外部的類,創建類對象object賦值給一個已聲名的引用reference,reference只是指向某個具體的object

的索引而已。所以一個object可以有多個reference,reference的性質同數組名,object的性質同數組元素。

如下創建的類BookShelf中science1和position都是引用,java會為每一個創建的對象賦初值。

package BookShelf;

 

import Book.Book;

 

public class BookShelf {

Book science1;

String position;

int floors;

}

當創建一個BookShelf對象時,引用的初始值為null,整型默認值為0.

public class library1 {

 public static void main(String[] args){

  BookShelf geography;

  geography = new BookShelf();

  System.out.println(geography.science1);

  System.out.println(geography.position);

  System.out.println(geography.floors);

 }

上述輸出結果為:

null

null

0

當引用的值為null時,表示該引用目前不指向任何的對象,當使用值為null的引用時,就是在訪問一個不存在

的東西,這時會出現錯誤.

定義類時,可以為其賦初值

public class BookShelf {

Book science1=new Book();

String position="block 2";

int floors=4;

}

如上對BookShelf的屬性science1、position、floors都進行了賦初值,這樣在其他程序里定義BoolShelf對象時

其各屬性的初始值如下:

public static void main(String[] args){

  BookShelf geography;

  geography = new BookShelf();

  System.out.println(geography.science1);

  System.out.println(geography.position);

  System.out.println(geography.floors);

     System.out.println(geography.science1);

           geography.science1=new Book();

          System.out.println(geography.science1.bookName);

 

    }

輸出結果為:

Book.Book@15db9742

block 2

4

Book.Book@15db9742  //這應該表示對象中屬性Book.Book的地址

道德經

在定義類時,可以自己引用自己,例:

public class Book {

String bookName="道德經" ;//書名

String firstAuthor="";//書的第一作者

String authors="朱熹";//書的其他作者

int bookNumber=5;//書的頁數

int bookSize=16;//書是多大的,例如32開,16開等

String language="chinese";//書的語言

Book firstPublication;

但是,在類Book中若為firstPublication附初值new Book(),則會造成死循環,出現錯誤:StackOverflowError.


免責聲明!

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



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