Java—物件導向(一),java物件導向

來源:互聯網
上載者:User

Java—物件導向(一),java物件導向

    說到物件導向,就應該說說它的那幾個核心的機制:繼承,重寫,多態,抽象,介面。它們是判斷是否運用了物件導向編程的核心。接下來用幾個例子,看看它們的演變過程和它們之間的關係。

    繼承:簡單來說,子類自動擁有父類的所有方法和屬性。

    舉例:狗和貓都繼承了動物的叫聲。子類繼承父類。

    

class Animal {  private String name;  public void setName(String name){this.name=name;}  public String getName(){return name;}  public void enjoy(){                       //動物叫聲。。。    System.out.println("叫聲......");  }} class Cat extends Animal {          private String eyesColor;                 //貓自己特有的方法。public String geteyesColor() {return eyesColor;}         public void seteyesColor(String eyesColor)        {this.eyesColor =eyesColor;}}class Dog extends Animal {private String eyesColor;               ////狗自己特有的方法。          public String geteyesColor() {return eyesColor;}        public void seteyesColor(String eyesColor)       {this.eyesColor =eyesColor;} }public class Test {    public static void main(String args[]){    Cat c = new Cat();    Dog d = new Dog();     c.seteyesColor("貓是藍眼睛");            //實現了自己的特有方法。    d.seteyesColor("狗是黑眼睛");         c.enjoy();                               //也繼承了父類的方法。          d.enjoy();         System.out.println(c.geteyesColor());    System.out.println(d.geteyesColor());    }}
  結果:

 

    解釋:狗和貓既有自己的特有屬性和方法,也全部擁有了動物(父類)的方法和屬性。這就是繼承的特點。

    不過上述明顯有缺陷的就是狗和貓都有自己獨特的叫聲,但是在這卻都只是擁有了動物這個福士化的聲音。該怎樣改變呢?就用到了我們的重寫。

    重寫:在子類中可以根據需要對從基類中繼承來的方法進行重寫。看看下面的改寫。

    

class Animal {  private String name;  public void setName(String name){this.name=name;}    public String getName(){return name;}    public void enjoy(){                       //動物叫聲。。。    System.out.println("叫聲......");  }} class Cat extends Animal {          private String eyesColor;                            public String geteyesColor() {return eyesColor;}        public void seteyesColor(String eyesColor)      {this.eyesColor =eyesColor;}      public void enjoy() {                  //重寫了父類動物的方法。    System.out.println("貓叫聲......");  }}class Dog extends Animal {private String eyesColor;                         public String geteyesColor() {return eyesColor;}         public void seteyesColor(String eyesColor)       {this.eyesColor =eyesColor;}        public void enjoy() {               //重寫了父類動物的方法。     System.out.println("狗叫聲......");  }}public class Test {    public static void main(String args[]){        Cat c = new Cat();        Dog d = new Dog();        c.seteyesColor("貓是藍眼睛");                    d.seteyesColor("狗是黑眼睛");      c.enjoy();                                      d.enjoy();      System.out.println(c.geteyesColor());        System.out.println(d.geteyesColor());    }}
    結果:

    

    解釋:狗和貓都重寫了動物的Enjoy()方法,所以實現了自己專屬的叫聲。增加了靈活性。

    從上面可以看出重寫是在繼承上進化而來的,所以先繼承再進行重寫。

          PS:由於內容比較多,所以剩下的3個物件導向特點,在下篇部落格中講解。


Java中的物件導向是什?

面對對象就是:
把資料及對資料的操作方法放在一起,作為一個相互依存的整體——對象。對同類對象抽象出其共性,形成類。類中的大多數資料,只能用本類的方法進行處理。類通過一個簡單的外部介面與外界發生關係,對象與對象之間通過訊息進行通訊。程式流程由使用者在使用中決定。
對象即為人對各種具體物體抽象後的一個概念,人們每天都要接觸各種各樣的對象,如手機就是一個對象。
在物件導向的編程方式中,對象擁有多種特性,如手機有高度、寬度、厚度、顏色、重量等特性,這些特性被稱為對象的屬性。對象還有很多功能,如手機可以聽音樂、打電話、發資訊、看電影等工作功能,這些功能被稱為對象的方法,實際上這些方法是一種函數。而對象又不是孤立的,是有父子關係的,如手機屬於電子產品,電子產品屬於物體等,這種父子關係稱為對象的繼承性。在編程中,把所有的問題看做對象,以人的思維方式解決。這種方式非常人性化,對象實際上就是一組資料的集合,並且資料都已經命名。這些資料根據就是對象的屬性,可以被程式訪問。對象還包括很多函數,這些函數被稱為對象的方法,也可以被程式訪問。不過在外部存取對象內的屬性或方法,必須先引用對象,然後用點號訪問對象的屬性和方法

面向過程就是:
自頂向下順序執行,逐步求精;其程式結構是按功能劃分為若干個基本模組,這些模組形成一個樹狀結構;各模組之間的關係儘可能簡單,在功能上相對獨立;每一模組內部均是由順序、選擇和迴圈三種基本結構組成;其模組化實現的具體方法是使用子程式。程式流程在寫程式時就已決定。
 
用java類物件導向的方式,描述一下你自己,具體代碼

比如你是李剛,增加一個喊的方法,main也寫上.main方法裡不能再有別的方法,所以這樣寫
Class Person{
int age //年齡
String name //姓名
String gender //性別

public person(){}
public person(String name1){
name=name1;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
//你說的喊方法
public say(){
System.out.println("hello");
}
}
public class YourSelf{
public static void main(String args[]){
Person you=new Person("李剛");
you.say();
}
}
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.