當前位置:首頁 » 編程語言 » java怎麼封裝

java怎麼封裝

發布時間: 2022-07-16 00:51:58

A. java怎麼封裝介面

我們先來封裝以前定義的Human類:
public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human(160);
System.out.println(aPerson.getHeight());
aPerson.growHeight(170);
System.out.println(aPerson.getHeight());
aPerson.repeatBreath(100);
}

}

class Human
{
/**
* constructor
*/
public Human(int h)
{
this.height = h;
System.out.println("I'm born");
}

/**
* accessor
*/
public int getHeight()
{
return this.height;
}

/**
* mutator
*/
public void growHeight(int h)
{
this.height = this.height + h;
}

/**
* encapsulated, for internal use
*/
private void breath()
{
System.out.println("hu...hu...");
}

/**
* call breath()
*/
public void repeatBreath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
this.breath();
}
}

private int height; // encapsulated, for internal use
}

B. java中「封裝」是什麼

java的特點是繼承、封裝、多態,其中封裝就是指比如一個類有很多private類型的屬性,這個類給這些屬性寫相應的get/set方法,其他類如果想訪問這個類的屬性,必須通過此類的get/set方法來訪問,此類還可以給屬性只寫get或只寫set方法來控制此屬性是只讀的還是只寫的,對屬性的訪問許可權做了很好的控制,這樣就把類中的屬性很好地封裝起來了,這就是封裝。

C. java中的封裝學習難不難

java中的封裝就是對某些邏輯進行再次重寫。達到重用的狀態,提高開發速度和能力。我們也可以從下面幾個方面進行學。

第一:先學習Java的核心庫(JavaSE)

JavaSE的內容包括:環境搭建、基礎語法、面向對象、數組、集合、常用類、IO流、反射機制、網路編程……..

第二:MySQL資料庫

搞定一門資料庫相關的課程,例如:MySQL、Oracle,搞定一個就可以了,目前互聯網公司,例如:京東、阿里等,他們都在使用MySQL,所以建議大家學習MySQL資料庫,小巧輕盈,免費。

由於互聯網公司的項目訪問量比較大,所以一般會搭建資料庫的集群,可以一個資料庫不夠,所以需要搭建資料庫集群,為了應付高並發。(搭建的比較多的時候,免費就很重要了。)

第三:WEB前端

以後從事Java開發,從事JavaEE開發,主要開發的系統結構是B/S結構的,B指的是Browser,S指的是Server。要開發這種系統,B端要會,S端也要精通。WEB前端的學習就是學習B端技術。

包括:HTML 、CSS、JavaScript(JS)、jQuery框架(底層對JS進行了封裝)…

第四:JavaWEB

WEB後端其實可以是很多種不同的編程語言,例如:php、C、C++、Java,他們都可以進行WEB後端的開發,我們既然選擇了比較火爆的Java,那麼我們學習的後端一定是基於Java語言實現的。

包括:Servlet、Filter、Jsp、EL、JSTL、MVC架構模式、資料庫連接池(阿里巴巴的Druid連接池)、代理模式(動態代理)。另外後端學習了之後,還要學習一個非同步編程技術AJAX。(完成網頁的局部刷新,AJAX其實不屬於後端,是前端瀏覽器上的程序。)

學習到這里為止,表示Java基本/基礎的技術已經學完了。但是這些最基層的技術在實際的開發中不會使用的,一般為了開發效率,都會使用大量的提前封裝好的框架。

第五:最好能夠停留下來,做一個項目。

這個項目最好能將之前所學全部串起來。(對以前的知識點進行鞏固。)

這個項目最好是基於:Servlet + Jsp+AJAX+jQuery+MySQL….

在這個項目的開發過程中:大家一定要記住,目前比較好的項目自動構建工具:Maven是一定要精通的。還有一個就是團隊協作開發:Git/SVN是一定要會用的。(目前使用Git比較多一些。)

第六:學習高級框架

Spring、SpringMVC、MyBatis(持久層框架,這個框架互聯網公司使用比較多,因為互聯網項目需要進行SQL優化,MyBatis的SQL優化很方便,所以大部分都是使用MyBatis)

Struts2(很少使用了,使用這個的肯定是很老的項目)、Hibernate(傳統企業,還有政府等可能會使用Hibernate。)

SpringBoot(新項目大部分使用的都是boot了。所以在項目中遇到還在使用SSM的一般都是遺留項目。)

當你走到這里之後,基本上你可以出山了。(去找工作應該問題不大,但前提是你學得好。學習的深度夠了,廣度夠了。)

第七:最好能有一個大型項目是使用框架來完成的。

SpringBoot做一個項目。

Spring SpringMVC MyBatis做一個項目。

這個項目最好是找幾個人搭夥做一下。體驗一下團隊協作。(尤其是使用一些協作的工具。怎麼溝通,怎麼寫日報,怎麼開會,怎麼使用Git,等等….)

第八:如果你的薪資想達到15K的話,你可能需要還要學習一些分布式相關的一些技術。

能夠應付高並發的一些技術,例如:分布式框架Dubbo、SpringCloud、MQ、Nginx、Redis…..

最後在啰嗦一下,一定要形成自己的編程思想。

編程思想的形成很難。需要大量代碼的堆積才可以。怎麼形成編程思想呢?

千萬別死抄代碼。不要像行屍走肉般的抄代碼,沒有用。只能提高指法速度,無法形成編程思路。

1、打好基礎是重中之重

基礎部分可能很枯燥,但是一定要耐心堅持下去。因為打基礎好比是在造輪子造汽車,沒有打好基礎在後面的學習就好比走路,可以說後面遇到的百分之七八十的問題都是基礎沒學好造成的。

2、多看官方文檔多讀源碼

一定要看JDK相關類庫、常用框架各種功能的源碼,去了解其底層實現的原理。總的來說這個也是在打基礎的部分,Java基礎非常扎實才能看懂,在我們學習一個類的源碼時,肯定會衍生出其他各種各樣的問題,供我們來了解和學習,這也就是我們下一步學習的目標和方向。慢慢的,我們就會學習更多的知識,並積累更多的經驗。

3、系統性學習,循序漸進

不要急於求成,每個知識點都要看,並且每個知識點都要勤加練習。有的同學在學習過程中覺得這個知識點簡單,就跳著學習,其實這是個很大的問題,知識點細節必須要了解。我們學習Java需要循序漸進,一步一步來,不能操之過急。

4、遇到問題

遇到不會做的問題,當然不能置之不理。先在網上查,目前網路上針對很多問題都有完美的解決方案,如果網上沒有類似的問題,那可能是你犯了什麼小錯誤。也不要在這個問題上花費太多時間,這需要一定的學習技巧。Java中的知識有很強的相關性,有不懂的地方,可以用其他周邊相關知識再回過頭來理解,這樣既不會耽誤學習進度,又能理解自己不懂的地方

1)jvm有很多種,其實jvm是一個標准,sun做的那個叫hotspot,作者就是後來v8的作者lars bak,其他公司也做過jvm,其中做得比較好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在內,都做得不行,所以jvm主要是整合淘汰掉這些做得不好的jvm(s),整合成一個統一的openjdk。

2)java是典型的oop語言,其執行效率的優化,最早就是lars bak等人從smalltalk等長期優化的經驗中總結出來並apply到hotspot上去滴,而smalltalk在早期apple機上搞出了那種拖拖拽拽就開發出app的做法,後來vc,delphi之類的其實都是抄襲或者說借鑒apple的smalltalk的做法,jobs說微軟從頭到尾都在抄襲apple是空穴來風,這里空穴來風跟王垠使用的空穴來風是一個意思,有趣的是,java的gui並沒有繼承這種搞法,反而對這種拖拖拽拽就作出app的做法批判有加,到今天,其實java的gui都還不能真正做到拖拖拽拽就作出來,問題很多,個人建議對於純java的gui開發,還是以寫代碼為主。

3)jee也是一個或者說是一堆標准,知乎上有些人把maven,jenkins都算做jee是不對滴,jee的標准核心是ejb,其實就是一個xml配置化的java文件,這個標准在4的時候,達到了頂峰狀態,幾乎所有的挨踢大廠都主動支持該標准,之後開始走下坡路,支持的廠越來越少。

4)java和javascript的關系比很多人認為的要密切,javascript裡面的java這四個字母可不是白叫的,比如js的版權和商標都控制在oracle手裡,oracle對於js的支持甚至超過其對java的支持,並且喜歡捆綁銷售,比如jvm裡面就有一個js引擎。

5)jvm裡面除了js engine以外還有一個瀏覽器排版引擎webkit,就是apple safari和google chrome用的那個那個。

6)java支持絕大多數腳本語言,你能叫得上名字的腳本語言,幾乎都可以在jvm上執行,比如常見的js,ruby,python,甚至php,lua,只不過除了js以外你需要找到相關的腳本引擎。

7)spring的版權被控制在vmware手裡,其實spring的那一大堆東西,本質上是一個非標準的jee實現,比如在jee裡面用的inject,在spring裡面就是autowire,當然spring曾經深刻滴影響了jee,所以有些東西比如di標准,是spring影響下制定出來的,所以spring的做法會比較特例一點。

8)maven上的jars數量前兩天突破800萬,其他語言的類庫,排名第二的是npm,大概數量是maven的十分之一,也就是幾十萬,不知道現在突破100萬沒有,然後是gem,也就是ruby那個,大概是十幾萬,下來是python的mole,大概數量級是幾萬,沒突破十萬。

9)java的標準是由一個叫做jcp的組織制定的,所有標准需要經過jcp的執行委員會通過方可執行,jcp幾乎包括了你所知道的絕大多數知名挨踢公司和組織,比如google,apple,ibm,intel,arm,red hat,twitter等,還有一些教育機構,比如我國的北京大學,阿里最近一次申請jcp執行委員會成員資格,似乎投票不通過,最近一次執行委員會新增兩個成員是arm和jetbrains。

10)微軟也曾經是jcp甚至是java的主要貢獻者,但是利益驅使下,想擴展java,從而破壞java跨平台的特性,所以跟sun鬧翻,其本質原因就是想讓客戶寫的java代碼跟windows綁定,sun堅決不同意,鬧翻,今天回頭看這個結果,只能說:雙輸,sun掛了,微軟的ria也離掛不太遠了,silverlight已經放棄了,比起當年ie自帶有jvm的支持來說,那完全就是兩回事。

11)除了微軟以外,jcp還缺少一個重要組織apache,因為apache跟oracle也鬧翻了,oracle似乎並不在乎開源組織,而更在意商業公司的支持。

12)java曾經有一個內置的資料庫,9之後被剝離。

13)j2me是j2se的子集。

14)vert.x作者tim fox最早在vmware做spring時候看到了node.js,萌生出了製作支持多核的node.x的想法,並在離開vmware後加入red hat將其實現,vmware看到後開始耍無賴,claim node.x後來改叫vert.x的版權,不惜跟red hat打官司,後來各方妥協,將其交給eclipse foundation。

15)oracle在收購bea之前,一開始的目標並不是bea和bea的weblogic,而是jboss,但是jboss表現出了極為有種的一面,在oracle收購成功之前,投入了red hat的懷抱,因為都是開源組織,從此jboss成了red hat的一個子部門,oracle收購jboss失敗之後,轉向bea,庄思浩氣死了,但是沒用,最後還是被惡意收購。

16)sun在玩不下去之前最早嘗試接觸的目標是ibm,ibm嫌太貴,放棄之後,被轉手給了oracle。(Java學習交流QQ群:589809992 我們一起學Java!)

17)vert.x的作者tim fox在離開red hat之前曾經發過twitter抱怨,外人比如我們,猜測是因為red hat內部已經有了一個jboss,所以跟vert.x在應用上有了重疊,所以導致tim fox的出走,但是出走之後,red hat答應對vert.x做持續性的戰略投入,所以vert.x core的幾個developers,其實拿的是red hat的工資,但是vert.x的版權並不在red hat手裡,而在eclipse foundation手裡。

18)vert.x的幾個核心開發人員都是google summer of code的導師,每年年初時候會招收在校大學生搞項目。

19)教育機構相關:scala的作者馬丁是德國人,eth的博導,groovy的主要領導人是法國人,jruby背後是東京大學,jboss的作者是法國大學校x的校友,x就是伽羅瓦考不進去的那所大學,伽羅瓦進不了x,所以改讀巴黎高師,tim fox畢業於帝國理工,主席去的那個,netty作者trustin lee是acm銀牌,現在line工作,畢業於sky裡面的延世大學,kotlin是毛子公司jetbrains的作品,看linkedin,很多人畢業自聖彼得堡大學,spring作者rod johnson是悉尼大學的音樂博士,hibernate作者gavin king是澳洲莫那什大學的數學本科畢業生,james gosling這種cmu和calgory的估計爛大街了,sun是斯坦福大學網路的意思,夾帶兩個私貨,aspectj有一個維護小組在mcgill,hbase跟waterloo關系密切。

20)java早期被人認為慢,跟java堅持不用硬體加速渲染有關,死活就是不肯接入directx和opengl,7之後總算開竅,搞了一個圖形引擎接入了directx/opengl。

21)casssandra是facebook做失敗的項目,被貢獻給了apache之後老樹開花。

22)groovy被貢獻給了apache,現在叫做apache groovy,ceylon被貢獻給了eclipse,現在叫做eclipse ceylon。

23)netflix現在是java shop,之前是用.net的。

先想到這么多,有空再寫。

D. JAVA類的封裝是什麼意思

JAVA類的封裝就是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。

主要好處是:

  1. 將變化隔離。

  2. 便於使用

  3. 提高重要性。

  4. 提高安全性。

E. 使用Java封裝

實現Java封裝的步驟
1. 修改屬性的可見性來限制對屬性的訪問(一般限制為private),例如:
public class Person {
private String name; private int age;}
這段代碼中,將 name 和 age 屬性設置為私有的,只能本類才能訪問,其他類都訪問不了,如此就對信息進行了隱藏。
2. 對每個值屬性提供對外的公共方法訪問,也就是創建一對賦取值方法,用於對私有屬性的訪問,例如:
public class Person{
private String name; private int age; public int getAge(){
return age; }

public String getName(){
return name; }

public void setAge(int age){
this.age = age; }

public void setName(String name){
this.name = name; }}
採用 this 關鍵字是為了解決實例變數(private String name)和局部變數(setName(String name)中的name變數)之間發生的同名的沖突。
實例
讓我們來看一個java封裝類的例子:
EncapTest.java 文件代碼:
/* 文件名: EncapTest.java */public class EncapTest{

private String name; private String idNum; private int age;
public int getAge(){
return age; }

public String getName(){
return name; }

public String getIdNum(){
return idNum; }

public void setAge( int newAge){
age = newAge; }

public void setName(String newName){
name = newName; }

public void setIdNum( String newId){
idNum = newId; }}
以上實例中public方法是外部類訪問該類成員變數的入口。
通常情況下,這些方法被稱為getter和setter方法。
因此,任何要訪問類中私有成員變數的類都要通過這些getter和setter方法。
通過如下的例子說明EncapTest類的變數怎樣被訪問:
RunEncap.java 文件代碼:
/* F文件名 : RunEncap.java */public class RunEncap{
public static void main(String args[]){
EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms");
System.out.print("Name : " + encap.getName()+
" Age : "+ encap.getAge()); }}

F. javaweb中封裝信息怎麼創建

將對象的信息隱藏在對象內部。
對象內部,禁止外部程序直接訪問對象內部的屬性和方法。java封裝類通過三個步驟實現修改屬性的可見性,限制訪問。設置屬性的讀取方法。在讀取屬性的方法中,添加對屬性讀取的限制。
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的介面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治,封裝的對象,這些對象通過一個受保護的介面訪問其他對象。封裝是一種信息隱藏技術。

G. Java中類的封裝是如何實現的

java類中,是分四種級別的:public,private,保護,和默認級別。其中最常用的是public和private級別。java類封裝,就是通過級別來控制的。private級別時,只可以類內部訪問。public級別可讓其他人使用。所以封住java類時,只要把你想封裝的類資源寫成private級別,再在類內部給它提供一個可被他人調用的public方法,這樣,就實現了封裝。大概就是這樣吧

H. java 封裝是什麼

什麼是封裝?

在定義類的時候,如果可以直接修改類中的欄位那麼就可能會出現以下的情況,age可以設置成1000,score可以設置為10000

所以就引出了封裝的概念,那麼什麼是封裝呢或者說封裝可以實現那些目的

  • 封裝可以隱藏實現的細節

  • 讓使用者只能通過實現寫好的訪問方法來訪問這些欄位,這樣一來我們只需要在這些方法中增加邏輯控制,限制對數據的不合理訪問、

  • 方便數據檢查,有利於於保護對象信息的完整性

  • 便於修改,提高代碼的可維護性

  • 為了實現良好的封裝,需要從兩個方面考慮

  • 把欄位(成員變數)和實現細節隱藏起來,不允許外部直接訪問

  • 把方法暴露出來,讓方法控制這些成員變數進行安全的訪問和操作

  • 因此,封裝就有兩個含義:把該隱藏的隱藏起來,把該暴露的暴露出來。

I. 在JAVA中如何封裝代碼

封裝在java中有兩種表現
1.用類封裝一個事物的屬性和方法。
2.用方法來封裝一個固定的演算法

樓上所說的其實是封裝的程度不一樣,在面向對象的術語中粒度來表示這個程度。
封裝其實是要看情況而定的,如果你這個類是描述人的,需要這個人完成一些基本的動作,如吃飯,走路,那麼就不用把細胞也封裝進來。但是如果「人」這個類,需要做醫學的研究用,那麼就需要封裝細胞這個屬性了。

代碼打多了就自然能理解了,不是一個復雜的概念。呵呵。

J. Java中什麼叫封裝

java中的封裝:將對象的屬性和行為隱藏起來,只提供一個介面,用戶只要通過對介面的訪問,就可以實現自己想要的操作。封裝就好像是:微波爐有加熱包子的這個方法,你想加熱肉包子(「方法」),你只需要將包子放進微波爐里,然後按下加熱按鈕,稍等幾分鍾就OK了,這個過程仔細想想:你需要知道微波爐是怎樣加熱包子的嗎?你只要得到一個熱的肉包子就行了,這個過程中:微波爐就隱藏了加熱包子的操作(在程序中我們稱之為「方法」),這就叫封裝。 這只是我個人對封裝的理解,我也只是一個java的初學者...如果你有其他的理解,補充下...

熱點內容
安卓手機數字怎麼變成紅色 發布:2025-02-01 22:50:20 瀏覽:402
康佳29寸電視存儲器壞怎麼代換 發布:2025-02-01 22:40:44 瀏覽:188
訪問的結果 發布:2025-02-01 22:30:12 瀏覽:176
cmd訪問網站 發布:2025-02-01 22:02:45 瀏覽:441
清除svn緩存 發布:2025-02-01 22:01:04 瀏覽:946
安卓模擬器怎麼用鍵盤操作 發布:2025-02-01 21:55:24 瀏覽:809
安卓手機屏幕為什麼會變色 發布:2025-02-01 21:55:20 瀏覽:824
安卓存摺怎麼看余額 發布:2025-02-01 21:53:34 瀏覽:771
其他電腦怎麼設置訪問伺服器 發布:2025-02-01 21:34:27 瀏覽:896
如何敲編程 發布:2025-02-01 21:26:13 瀏覽:25