1. 程式人生 > >第四章 對象和類

第四章 對象和類

地址 程序 數值 bsp 代碼塊 int ima 5.1 gen

4.1 面對對象程序概述

面對對象程序設計(簡稱OOP):面對對象的程序是由對象組成的,每個對象包含對用戶公開的特定功能部分和隱藏的實現部分。

在OOP中,不必關心對象的具體實現,只有能夠滿足用戶的需求即可

4.2 類

類就是生成對象的模板,由類構造對象的過程稱為創建類的實例

4.3 對象

對象裏面的數據叫做實例域,操縱數據的過程叫做方法,這些特定的實例域值得集合就是對象得狀態。

要想生成對象就必須先構造對象,並指定其初始狀態。在java中使用構造器得方法來構造新的對象,其中要註意的是,構造器方法的名字必須和要生成對象所屬類的名字一樣。一般情況下,我們都希望構造的對象能被多次使用,所以我們將對象存儲在一個變量裏面,變量的類型為類的類型。構造方法常和new一起出現,它的值就是對象的引用。

4.4 自定義類

當我們自定義類的時候,可以選擇將多個類放在一個源文件中,也可以選擇一個類放在一個源文件中,但是需要註意,一個源文件只能有一個公共類

4.5 this關鍵字

this代表的是使用該方法對象的引用,也叫隱式參數

4.6 基於類的訪問權限

一個方法可以訪問所需類的所有對象的私有數據

4.7 final關鍵字

final的意思就是一旦被定義了,就不能修改的意思。

4.8 static

靜態static:意味著這個東西是類的東西。

4.9 方法參數

java程序設計語言總是采用按值調用。也就是說,方法得到的是所有參數值的一個拷貝

舉例說明

技術分享圖片
 1 public
class Demo { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 int a = 10; 6 add(a); 7 System.out.println(a); 8 } 9 10 public static void add(int a){ 11 a = a * 3; 12 } 13 14 }
View Code

引用類型一樣,但是傳入的是引用地址的拷貝,在函數中對地址所指對象的任何操作,都會對對象有影響。

5.1 重載

如果有多個方法有相同的名字,不同的參數,便產生了重載。編譯器必須挑選具體執行那個方法,它通過用各個方法給出的參數類型與特定方法調用值的類型進行匹配來挑選出相應的方法。java允許任何方法的重載。而且重載只是參數個數個參數類型不一樣而已。

5.2 構造器

如果在構造器中沒有顯式地給域賦予初值,那麽就會被自動地賦予默認值,數值為0,boolean為false,對象為null,只有缺乏編程經驗的人才會這樣做。

無參構造函數:很多類都有無參構造函數,如果一個類沒有給出構造函數的話,系統會自動提供一個無參構造函數,但是如果類中有含參的構造函數,沒有無參構造函數,初始化對象的時候卻用無參構造方法,系統會報錯

調用另一個構造函數:例子

1     public Animal(){
2         
3     }
4     
5     public Animal(String s,int a){
6         this();
7         this.name = s;
8         this.age = a;
9     }

這裏的this()調用了上面的構造函數,雖然沒什麽作用,但是java允許在構造函數中調用其他構造函數,這種方法非常有用,這樣對公共的構造器代碼部分只編寫了一次即可

5.3 初始化塊

在一個類中的第三種初始化數據域的方法,在一個類的聲明中,可以包含多個代碼塊。只要構造類的對象,那麽這些塊就會被執行。按照這些塊在類中定義的順序來執行。靜態初始化塊也一樣。

6 包

使用包的主要原因是確保類名的唯一性。

一個類可以使用所屬包中的所有類,以及其他包中的公有類

第四章 對象和類