java基礎(chǔ) java面試提問(wèn):什么是OOP?
java面試提問(wèn):什么是OOP?面向?qū)ο缶幊蹋∣OP)是一種計(jì)算機(jī)編程體系結(jié)構(gòu)。面向?qū)ο缶幊痰囊粋€(gè)基本原理是,一個(gè)計(jì)算機(jī)程序由一個(gè)可以作為子程序的單元或?qū)ο蠼M成。OOP實(shí)現(xiàn)了軟件工程的三個(gè)主要目標(biāo):可
java面試提問(wèn):什么是OOP?
面向?qū)ο缶幊蹋∣OP)是一種計(jì)算機(jī)編程體系結(jié)構(gòu)。面向?qū)ο缶幊痰囊粋€(gè)基本原理是,一個(gè)計(jì)算機(jī)程序由一個(gè)可以作為子程序的單元或?qū)ο蠼M成。OOP實(shí)現(xiàn)了軟件工程的三個(gè)主要目標(biāo):可重用性、靈活性和可擴(kuò)展性。為了實(shí)現(xiàn)整個(gè)操作,每個(gè)對(duì)象都可以接收信息、處理數(shù)據(jù)并向其他對(duì)象發(fā)送信息。OOP主要包括以下概念和組件:
組件—運(yùn)行中的計(jì)算機(jī)程序中由數(shù)據(jù)和函數(shù)組成的單元。在面向?qū)ο蟮挠?jì)算機(jī)程序中,組件是模塊和結(jié)構(gòu)的基礎(chǔ)。
抽象-程序忽略正在處理的信息的某些方面的能力,也就是說(shuō),專注于信息的主要方面的能力。
封裝-也稱為信息封裝:確保組件不會(huì)以意外方式更改其他組件的內(nèi)部狀態(tài);只有提供內(nèi)部狀態(tài)更改方法的組件才能訪問(wèn)其內(nèi)部狀態(tài)。每種類型的組件都提供了與其他組件聯(lián)系的接口,并指定了其他組件的調(diào)用方法。
多態(tài)性-組件引用和類集涉及許多其他不同類型的組件,引用組件的結(jié)果取決于實(shí)際調(diào)用的類型。
繼承-允許在現(xiàn)有組件的基礎(chǔ)上創(chuàng)建子類組件,從而統(tǒng)一并增強(qiáng)多態(tài)性和封裝。通常,組件按類分組,新類可以定義為現(xiàn)有類的擴(kuò)展。通過(guò)這種方式,類可以被組織成樹(shù)或網(wǎng)絡(luò)結(jié)構(gòu),這反映了動(dòng)作的普遍性。
由于抽象性、封裝性、可重用性和易用性,基于組件的編程在腳本語(yǔ)言中特別流行。Python和ruby是最新的語(yǔ)言,它們?cè)陂_(kāi)發(fā)中完全采用了面向?qū)ο蟮乃枷耄餍械腜erl腳本語(yǔ)言從版本5開(kāi)始逐漸增加了新的面向?qū)ο蟮墓δ芙M件。這就是JavaScript(ECMAScript)流行使用組件而不是“真實(shí)”實(shí)體的原因。事實(shí)證明,適當(dāng)?shù)慕M件組合可以替代Internet上HTML和XML的文檔對(duì)象模型(DOM)。
零基礎(chǔ)的人如何學(xué)習(xí)Java?
我已經(jīng)使用java很長(zhǎng)時(shí)間了,并且已經(jīng)出版了關(guān)于java的書(shū)籍,所以讓我談?wù)剬W(xué)習(xí)java的過(guò)程。
java學(xué)習(xí)的重點(diǎn)是web開(kāi)發(fā),學(xué)習(xí)的難點(diǎn)是對(duì)java面向?qū)ο蟾拍畹睦斫?。學(xué)習(xí)java需要一個(gè)系統(tǒng)的過(guò)程,在學(xué)習(xí)java的不同階段需要做不同的準(zhǔn)備。下面是一個(gè)描述(以web開(kāi)發(fā)為例)。
在第一階段,我為自己設(shè)定了方向。例如,我想在將來(lái)做web開(kāi)發(fā)或Android開(kāi)發(fā)。當(dāng)我有了方向,我自然知道我的重點(diǎn)是什么。畢竟,編程語(yǔ)言是一種工具,所以在學(xué)習(xí)工具之前我需要知道該怎么做。
第二階段是開(kāi)始了解Java的語(yǔ)法細(xì)節(jié)。此階段的準(zhǔn)備工作是構(gòu)建開(kāi)發(fā)環(huán)境并安裝JDK。在學(xué)習(xí)初期,建議使用記事本編程,鍛煉程序員的手寫(xiě)代碼能力,并在編程初期養(yǎng)成一些好習(xí)慣。
第三階段是開(kāi)始學(xué)習(xí)web開(kāi)發(fā)。在這個(gè)階段,我們需要準(zhǔn)備數(shù)據(jù)庫(kù)知識(shí)和一些前端知識(shí)。數(shù)據(jù)庫(kù)產(chǎn)品可以選擇mysql,mysql也是一種應(yīng)用廣泛的數(shù)據(jù)庫(kù)產(chǎn)品。
第四階段開(kāi)始學(xué)習(xí)框架開(kāi)發(fā)。框架開(kāi)發(fā)可以節(jié)省大量的開(kāi)發(fā)時(shí)間。目前,springmvc得到了廣泛的應(yīng)用。
第五階段開(kāi)始實(shí)習(xí)。實(shí)習(xí)對(duì)程序員的成長(zhǎng)有很大的幫助。通過(guò)實(shí)際項(xiàng)目的磨練,我們將更全面地掌握編程語(yǔ)言。