Ⅰ java 里的面向對象的編程,1.是怎麼找到類與類(對象與對象)之間的關系 2.為什麼要初始化數據
1、這個設計到java底層的動態綁定機制。你只要知道用類聲明了對象,即便在程序中你將其強制轉化為其他類。但java仍能判斷出它初始的類型。比如
String s=new String("test");
s=(Object)s;
System.out.println(s.getClass());//這里輸出的依然會是String類型的,雖然上一部經過強制轉換。
2、java中很多基本數據類型都有默認值,比如INT類型的是0,但是java最多的數據類型還是對象。
如果不初始化數據,那麼對象的值默認為null,調用該對象的時候就會拋出空指針異常。我舉個簡單的例子。
String s="";和String s;的區別,前一個表示,我按照s中保存的地址去尋找這個String類型的對象,找到了,而且是一個空字元串。後一個表示,我想通過s中保存的地址去找對象,但是s中沒有地址,是空的,因此我想去調用s的方法的時候會出錯,因為他並沒有指向任何一個對象。
Ⅱ java中 類 對象 屬性之間的關系的研究
萬物皆對象,對象是實際存在的,類則是某一種對象的匯總,將這一種對象共同具有的特徵(即屬性和方法)抽象出來,類是虛的,看不見摸不到的,是對象的模板,對象就是給類中的屬性賦值,變成具體存在的一個實體,即實例化對象。打個比喻形容上邊說的話:人是一個類,人類共同具有的特徵是什麼呢?性別,年齡,名字,等等,人類共同具有的方法是什麼呢?睡覺,吃飯,走路等等。那麼這個類就抽象出來了:
package
com.classes;//定義包
//import
導入所應用到的類(這里不導了。)
//定義人類
public
class
People{
private
String
name;//
名字(私有欄位)
private
String
sex;
//性別(私有欄位)
private
int
age;
//年齡(私有欄位)
public
String
getName(){
return
name;}
//封裝欄位get訪問器(讀取)
public
void
setName(String
name)
{
this.name
=
name;}
//封裝欄位set訪問器(寫入)
public
String
getSex(){
return
sex;}
public
void
setSex(String
sex){
this.sex
=
sex;}
public
int
getAge(){
return
age;}
public
void
setAge(int
age){
this.age
=
age}
public
String
eat(){
System.out.println(this.name+"在吃飯");}//
吃飯的方法
public
String
sleep(){
System.out.println(this.name+"在睡覺。")}
//睡覺的方法
public
People(){}
//無參
構造函數
/**
*
有參
構造函數
*/
public
People(String
name,String
sex,int
age){
this.name
=
name;
this.sex
=
sex;
this.age
=
age;}}
人類定義好了,可是人類是虛的,你不知道這個人類到底是誰,所以我們用的時候就要實例化一個具體的對象出來,People
zhangSan
=
new
People("張三","男",18);
實例化一個張三對象(具體的張三這個人。)通過張三可以調用它的方法,String
zhangSanEat
=
zhangSan.eat();
這里的zhangSanEat
的值就是"張三在吃飯。"
這里體現了
類和對象
的關系就是,對象是類的具體表現,類是一種對象的共同具有的特徵總匯。在談談類的訪問許可權,類的訪問許可權有4種,一個事默認的DEFAULT(理論上,不能寫):也叫做包訪問修飾符,顧名思義,同一個包內才可以訪問,還有就是public
公共的
哪裡都可以訪問,private
私有的
類本身可以訪問,
protected
:在同一個包內均可訪問,不同包的子類可以訪問,在談談屬性:屬性包括欄位,和方法。每一個欄位都有訪問修飾符
類型
名稱;如:private
int
age;就是一個私有的整形變數age,既然定義為私有的,那麼超出本類范圍就訪問不到了,所以提供了公共的屬性進行封裝,即public
int
getAge(){return
age;}這樣在其他類中,先實例化對象,就可以用對象加點操作符號去調用getAge();去訪問了。大哥你的分真難賺,300分,我實在寫累了,分
不要了
,哈哈走人。。。。。。。。。。。
Ⅲ JAVA中,類、對象、實體、實體類、實體對象之間存在怎樣的聯系請高手做形象的解釋。
類: java中的類 一般來存放實現了某些功能的代碼 代碼片段,是程序的基礎元素
對象:對象是一個很抽象的概念,比如 一個java類 實例化以後可以稱為一個對象 對象一般指的就是一個類創建出來的實例 比如
public class A{}
那麼 A是一個類
A a =new A();
那麼 這里的a 指的就是A這個類的實例 也就是對象 通過對象a 可以訪問A類下面的 非私有欄位 和方法
實體類:一般會與實體對象一起出現 對應資料庫 或者其他數據源中的 一張表 俗稱為一個對象
這里的實體類對象和實體類 打個簡單的比方
實體類 就好像事一張白紙 白紙的獲得 要從廠商那邊取得 也就是我們去買 在程序里 就是用的關鍵字new 當new了以後 就好像是我們從生產廠商那裡買來了一張白紙 當然 白紙上什麼都沒有
有了這張白紙以後 我們就可以在白紙上給它賦值 讓它獨一無二 也就是對實體類進行封裝數據
每一張白紙 從我們購買的時候 都是一樣的對象 都是一個字都沒有的白紙 但是 後來通過業務處理 使得白紙上都有了自己的東西 也就是對象實體中的數據封裝
還可以把實體類比作一個模板 創建出來的實例對象 都是跟這個模板一樣的 至於 模板裡面填寫的內容 那就要看你的賦值了 就拿最簡單的簡歷來說 一般都會有簡歷模板 我們從網上下載一個簡歷模板 就是創建了一個實體類的對象 而這個簡歷模板 就相當於一個實體類 接下來 我們對下載下來的模板進行操作 也就是對 實體類對象進行操作 對實體類對象操作 是不會影響實體類的 這個例子裡面 應該一目瞭然 然後 根據個人信息不同 我們再模板上填寫的信息也不同 比如 姓名 年齡 等等 按照個人的信息來填寫 所以 就會產生實體類的對象的屬性 不同 相信這樣解釋 你應該可以理解了吧 關鍵還是要靠多寫訓練 熟能生巧 運用以後才能知道這些東西存在的奧妙