一、java初印象

來源:互聯網
上載者:User

標籤:

工作了些時候,用的java語言,看了下thinking in java ,特在此記錄和分享些自己的理解。

一、關於程式設計,就是對於複雜性的管理

關於複雜性,可以認為有兩個方面的考慮:待解決問題的複雜性, 解決該問題工具的複雜性。待解決的問題,程式員不好把控,而解決的工具,就是程式設計語言。

 

二、關於java是完全物件導向的語言

1.java完全物件導向,需要以“類”層級才能獨立存在,比如方法,是不能獨立存在的,一個方法總會要屬於一個類。

這個“類”層級,並不完全是class, interface,enum也是“類”層級。

對於“類”層級的存在,可以理解成一個一個人, 有人的地方就有江湖,有類的地方類之間就可能有關聯,對於這種關聯,比較好的一種理解方式是“把類看成服務者”(同時也是別的類的“被服務者”)。這種關係從小了看就是A類調用B類的方法, 從大了看也可以是某一個系統調用另一個系統提供的介面。

2.關於完全物件導向,就必須考慮代碼複用的問題,java中對於複用的解決方式有兩種:組合和繼承。

組合:汽車擁有引擎,不必在汽車裡面自己寫引擎如何?,而是調用引擎類,放到汽車類裡面即可;繼承之後再講。

對於設計來說,一般是優先使用組合避免過多使用繼承的原則。(雖然繼承是java最重要的特性之一)

3.關於繼承,簡單的講就是extends,A extends B ,那麼A就擁有B中的所有元素,這樣才寫代碼的時候就可以避免一些屬性過多的重複寫。

4.關於多態,常見的情境如下:

 1 class Animal { 2  3   public void f(){} 4 } 5  6 class Fish extends Animal { 7   @Override 8   public void f() {} 9 }10 11 class Dog extends Animal {12   @Override13   public void f() {}14 }15 16 public class Test {17   public static void main(String[] args) {18     Animal animal = new Fish();19     animal.f();20   }21 }

注意聲明animal這裡,父類聲明指向子類對象, 可以把Fish換成Dog,其他地方不變,執行f()方法的時候系統會自動判別f()方法所述的對象,動態綁定到底是運行Fish中的f(),還是運行Dog中的f()。這個就是多態。

 

三、java中的四個特徵:抽象、封裝、繼承、多態

參考二中的內容,把“類看成服務者”的範疇,對應的就是抽象和封裝---level1

為了減少代碼重複設計出來的父子關係,對應的就是繼承--------------level2

在繼承的基礎上能夠動態判定執行的方法,對應的就是多態------------level3

 

一、java初印象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.