什么是java的面向?qū)ο?創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關什么是java的面向?qū)ο螅恼聝?nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

十年的嵐皋網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整嵐皋建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“嵐皋網(wǎng)站設計”,“嵐皋網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

1、什么叫面向?qū)ο螅?/strong>

面向?qū)ο?Object-Oriented,簡稱OO)就是一種常見的程序結(jié)構(gòu)設計方法。
面向?qū)ο笏枷氲幕A是將相關的數(shù)據(jù)和方法放在一起,組合成一種新的復合數(shù)據(jù)類型,然后使用新創(chuàng)建的復合數(shù)據(jù)類型作為項目的基礎。

面向?qū)ο笫且粋€很抽象的概念,它相對面向過程而言。

過程與對象都是一種解決問題的思想。

面向過程:強調(diào)的是功能行為,一種過程,先干啥,再干啥;

面向?qū)ο螅簩⒐δ芊庋b到對象里,強調(diào)的是具備某功能的對象;

按照面向?qū)ο蟮乃枷?,可以把任何的東西看做對象!

面向?qū)ο蟮娜齻€特征:

封裝(Encapsulation);

繼承(Inheritance);

多態(tài)(Polymorphism)。

我的總結(jié):

面向過程:強調(diào)的是具體的功能實現(xiàn);(執(zhí)行者)

面向?qū)ο螅簭娬{(diào)的是具備功能的對象。(管理者)

2、類

類(class)是Java 語言的最小編程單位,也是設計和實現(xiàn)Java 程序的基礎,本部分將深入介紹類的相關知識。
類的概念
類是一組事物共有特征和功能的描述。類是對于一組事物的總體描述,是按照面向?qū)ο蠹夹g進行設計時最小的單位,也是組成項目的最基本的模塊。類的概念是抽象的,類似于建筑設計中的圖紙,是對于現(xiàn)實需要代表的具體內(nèi)容的抽象。類只包含框架結(jié)構(gòu),而不包含具體的數(shù)據(jù)。所以類代表的是總體,而不代表某個特定的個體。

我的總結(jié):類是抽象的,對象是具體的,實實在在的!

類的定義:

[修飾符] class  類名{

1~n個構(gòu)造方法;

0~n個字段;

0~n個方法

}

定義類,其實就是定義類里面的對象

對象包含:

狀態(tài);(屬性)

功能、行為;(方法)

通過類來描述對象;

狀態(tài)--------成員變量;

功能、行為——方法;

Eg

class Person{
//屬性
   private String name;
   private int age;
   private int sal;
   //方法
   public void show(){
      System.out.println("個人情況:"+name+age+sal);
   }
}

3、構(gòu)造方法

構(gòu)造方法:用來構(gòu)造類的實例(每一個類都默認有一個無參的構(gòu)造方法,得使用new調(diào)用)

字段:類或?qū)ο笏臄?shù)據(jù),對類狀態(tài)的一種描述;

方法:類或?qū)ο蟮奶卣骰蛐袨?/p>

作用:

給類中的字段進行初始化,可以用來創(chuàng)建對象。

特點:

方法名與類名相同

不用定義返回值類型

不需要寫return語句

注意

默認構(gòu)造方法的特點。

多個構(gòu)造方法是以重載的形式存在的。

構(gòu)造方法的重載:(需要哪個就去適配哪個,調(diào)用哪個)

this([實參]);調(diào)用當前類的構(gòu)造方法

注意: this([實參]);必須放在構(gòu)造器的第一行;

對象的產(chǎn)生格式

類名稱  對象名 = new  類名稱();

因為有(),所以是方法,實際上它就是構(gòu)造方法,并且是非私有的構(gòu)造方法。

如:

CellPhone cp = new CellPhone();
Eg:
 
class Person{
 
   private String name;
 
   private int age;
 
   private int sal;
 
   public void show(){
 
      System.out.println("個人情況:"+name+age+sal);
 
   }
 
 
 
   public Person(String name) {
 
      super();
 
      this.name = name;
 
   }
 
 
 
   public Person(String name, int age) {
 
      super();
 
      this.name = name;
 
      this.age = age;
 
   }
 
 
 
   public Person(String name, int age, int sal) {
 
      super();
 
      this.name = name;
 
      this.age = age;
 
      this.sal = sal;
 
   }
 
}

4、static關鍵字

特點:

隨著類的加載而加載

優(yōu)先于對象存在

被所有對象所共享

可以直接被類名調(diào)用

使用注意

靜態(tài)方法只能訪問靜態(tài)成員

但是非靜態(tài)成員方法可以訪問靜態(tài)成員;

靜態(tài)方法中不可以使用this,super關鍵字

主方法(main)是靜態(tài)的(可以利用類名去調(diào)用靜態(tài)的main方法,很正常!但是會陷入死循環(huán),導致內(nèi)存溢出,jvm自動停止?。?/p>

public static void main(String[] agrs){}

可修飾字段,方法。

用static 修飾的成員表示它屬于這個類共有,而不是屬于該類的單個實例。

static 修飾的字段 == 類字段

static 修飾的方法 == 類方法

沒使用static修飾的字段和方法,成員屬于類的單個實例,不屬于類。

沒有static 修飾的字段 == 實例字段

沒有static 修飾的方法 == 實例方法

類和實例訪問字段和方法的語法:

訪問類成員:        類.字段     類.方法

訪問實例成員:    實例.字段          實例.方法

我的總結(jié)

static 修飾的字段和方法,既可以通過類調(diào)用,也可以使用實例調(diào)用;

沒static 修飾的字段和方法,只能使用實例來調(diào)用(建議使用:類名來調(diào)用;        其實在底層,對象調(diào)用類成員,也會轉(zhuǎn)換類名調(diào)用)

static關鍵字不能與this,super同時連用!

5、匿名對象

一個沒有名字的對象,  創(chuàng)建了一個對象出來,沒有賦給一個變量;

特點:

對方法或字段只進行一次調(diào)用時;

可作為實際參數(shù)進行傳遞;

只在堆里面開辟存儲區(qū)域,

只能使用一次,  使用完就被銷毀了;

何時使用?只拿來用一次??!

new Person();表示匿名對象,沒有名字的對象

new Person().age = 17;//使用一次之后就被銷毀了

6、this關鍵字

特點:this表示當前對象。

當前對象  ←→  當前正在調(diào)用實例成員的對象

換言之:誰調(diào)用了方法,誰就是當前對象。

什么時候使用this關鍵字呢?

方法間的相互調(diào)用;

this.字段;

構(gòu)造器中相互調(diào)用,但是此時this([參數(shù)])必須寫在構(gòu)造方法第一行。

this不能用在static修飾的方法里和static修飾的代碼塊里;

Eg:構(gòu)造方法中的this.name = name;

7、面向?qū)ο笾庋b

封裝的兩個含義:

1.把對象的狀態(tài)和行為看成一個統(tǒng)一的整體,將二者存放在一個獨立的模塊中(類);

2."信息隱藏", 把不需要讓外界知道的信息隱藏起來,盡可能隱藏對象功能實現(xiàn)細節(jié),字段;

封裝機制在程序中的體現(xiàn)是:

把描述對象的狀態(tài)用字段表示,描述對象的行為用方法表示,把字段和方法定義在一個類中,并保證外界不能任意更改其內(nèi)部的字段值,也不允許任意調(diào)動其內(nèi)部的功能方法。

程序中的一種體現(xiàn):

通常將類中的成員變量私有化(private),通過對外提供方法(setXxx,getXxx),可對該變量(xxx)進行訪問。

boolean 類型的變量沒有getXX,只有 isXX;

 Eg:
 
class Person1{
 
   private String name;
 
   private int age;
 
   private int sal;
 
  
 
   public String getName() {
 
      return name;
 
   }
 
 
 
   public void setName(String name) {
 
      this.name = name;
 
   }
 
 
 
   public int getAge() {
 
      return age;
 
   }
 
 
 
   public void setAge(int age) {
 
      this.age = age;
 
   }
 
}

8、訪問修飾符

private 類訪問權限:本類內(nèi)部可以訪問,不能繼承到子類;

default 什么都不寫,包訪問權限:本類內(nèi)部可以訪問,同包其他類也可以訪問,同包可繼承;

protected 子類訪問權限:本類內(nèi)部可以訪問,不同包的子類也可以訪問,同包其他類也可以訪問,能繼承到子類;

public 公共訪問權限:任何地方都可以訪問,能繼承到子類;

總結(jié):

什么是java的面向?qū)ο?></p><p><strong>9、類的設計分析</strong></p><p>分析思路:</p><p>根據(jù)要求寫出類所包含的字段;</p><p>所有的字段都必須私有化;</p><p>封裝之后的字段可通過setter和getter設值和取得;</p><p>按需求可添加若干構(gòu)造方法;</p><p>根據(jù)需求可添加相應的方法;</p><p>類中的所有方法都不要直接處理(輸出打印),而是交給調(diào)用者去處理。</p><p><strong>10、面向?qū)ο笾^承 </strong></p><p>首先有反映一般事物特性的類,然后在此基礎上反映出特殊事物的類;</p><p>也就是說:繼承是一種從一般到特殊的關系;</p><p><strong>特點</strong>:</p><p>1、提高了代碼的復用性。</p><p>2、讓類與類之間產(chǎn)生關系,有了這個繼承關系才有了多態(tài)的特性。</p><p>3、Java語言中只支持單繼承(有別于C語言)。</p><p>因為多繼承容易帶來安全隱患(父類多了, 功能相同的話,就會出現(xiàn)調(diào)用不確定性嗎,覆寫一個方法,到底覆寫的誰的?)。</p><p><strong>ps:接口可以實現(xiàn)多繼承</strong></p><p>4、Java支持多層繼承,object是每個類的超類,實現(xiàn)樹形結(jié)構(gòu)。</p><p>我的總結(jié):</p><p>繼承是多態(tài)的前提。</p><p>對類而言,只支持單繼承。</p><p>格式:</p><p>[修飾符] class SubClass extends SuperClass</p><p>按照這種關系,我們把SuperClass類稱為父類或基類,把SubClass稱為子類或派生類或拓展類;</p><p>我的總結(jié):</p><p>java.lang.Object是所有類的父類,</p><p>Object要么是直接父類要么是間接父類。</p><p>Eg:</p><p>學生屬于人的一種特殊情況,此時我把人的共性寫在Person類里面,為了讓學生擁有這些共性(別的比如老師也可以有這些共性),然后我就讓學生來拓展Person類。</p><p>我的總結(jié):</p><p>子類與父類的關系:</p><p>子類拓展父類(子類是父類的一種特殊情況)</p><p>主要是以父類為基礎,然后添加屬于自己的字段和方法。</p><p>父類的私有成員子類不能繼承到;</p><p>父類的構(gòu)造方法不能被繼承;</p><p>Java只支持單繼承,不支持多繼承;//不然的話,比如show方法,繼承了多個,不知道到底調(diào)用那一個。</p><p>一個類有且只有一個直接父類;</p><p>一個類沒顯示的繼承其他的一個類的時候,默認的直接父類就是Object類;</p><p>Student 的直接父類是Person,Object類也是Student類的父類,但是是間接父類;</p><p>一旦一個類顯示的繼承了其他的一個類的時候,此時默認的直接父類Object就會被取消;</p><p>Java里一個類只能有一個直接父類;</p><p>java.lang.Object是所有類的父類,Object要么是直接父類要么是間接父類。</p><p>子類對象實例化過程</p><p>在繼承操作中,對于子類對象的實例化:</p><p>子類對象在實例化之前必須首先調(diào)用父類中的構(gòu)造方法之后再調(diào)用自身的構(gòu)造方法。</p><p>關于什么是java的面向?qū)ο缶头窒淼竭@里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。</p>            <p>
                當前文章:<a href=什么是java的面向?qū)ο?創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article18/dsihdp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、標簽優(yōu)化、網(wǎng)站策劃移動網(wǎng)站建設、企業(yè)建站虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)