學習Java語言也有一段時間了,現在回過頭來總結一下最基本的類和對象的知識。
之前大一上就接觸了C語言,大二上的時又候花了一學期學習了C++,如今大三上,我開始學習Java語言了。說實話,有了之前C語言尤其是C++的基礎,學習Java起來還算比較輕松的。畢竟C++和Java都是面向對象的程式設計語言,并且程式設計語言本身之間都有很多相似相同的地方。
說到面向對象,那麼不得不提的就是類和對象了。Java代碼是以類為機關的。(這點和C++有差別,Java都是在類中寫方法,并且把主函數也放在類中)
在我看來,類就是一個模闆,比如一個學生類,這并沒有指定這個學生類是某某某(換句話說就是沒有特定指某個個體),而是抽象出一種學生的模闆,每一個學生都包含性别年齡班級學校等等屬性,每一個學生也包含一些共同的行為,比如都要完成作業,都要到學校上課,等等。
對象則是一個具體的概念了。比如在學生類模闆的基礎上,我要指一個特定的學生---XX學校XX班的小馮,它肯定具有所有學生的屬性和行為,但是她的屬性和行為又和其他學生不一樣。
我們可以看一個學生類和對象的執行個體:
public class Student{
private String name;
private int age;
public void setname(String name)
{
this.name=name;
}
public void setage(int age)
{
this.age=age;
}
public void study(int hour)
{
System.out.println(name+"學習了"+hour+“個小時”);
}
public static void main(String args[])
{
Student stu=new Student();
stu.setname("小馮");
stu.study(10);
}
}
根據上述例子說明,我們可以知道,
一個類,它包含了屬性和方法兩大子產品。屬性是指的一些變量或者常量,如上面的name/age;而方法就是函數體,在函數裡面可以完成某些行為,如上例中的study()函數。
對象,就是在主函數中建立的特定的學生,如上例中通過 Student stu=new Student(),來建立了一個基于學生類模闆的stu對象。這個stu對象可以有生類裡面所有的屬性和方法,不過具體化了。
總的來說:
1.類可以看做一個模闆,我們可以根據類來建立很多的對象,而這些對象都具有我們在類中定義的方法和屬性。
2.類是抽象的,而對象是具體的。可以通過new關鍵字去執行個體化對象。
另外,我們再來讨論一下 類中的構造方法。
我們在學習C++的時候,其實也都接觸和掌握了類和對象。由上面的分析可以看出,除了主函數的位置,Java類和對象的思想和C++的一模一樣。同樣的,我認為構造方法也是相同的!
構造函數就是在建立對象時,用來初始化對象的方法。
構造函數的特點:
1.函數名必須和類名相同
2沒有傳回值
注意:
1.如果類中沒有聲明構造方法,那麼編譯時會自動生成一個預設的構造方法,隻是會責怪方法體裡面什麼也沒有寫。
2.如果類中有聲明構造方法,那麼就不會再去生成預設的構造方法,而直接使用你定義的構造方法。
3.構造方法也可以重載:通過形參類型和個數的不同,可以定義不同的構造方法體。在建立對象時根據傳進來的實參的類型和個數來選擇到底調用哪一個構造方法。
總的來說,我通過一個執行個體說明了類和對象的關系,順便提及了類中構造方法的特點等。
希望大家多多支援,如果有啥不對的,大家指出來喲~ ~