成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

java面向?qū)ο髮W(xué)習(xí)

amuqiao / 2070人閱讀

摘要:一什么是類什么是對象現(xiàn)實(shí)世界是有很多對象組成的,基于對象抽出了類對象是真實(shí)存在的單個(gè)的個(gè)體,類是一類個(gè)體,類型類別類中可以包括所有對象所共有的特征屬性變量所有對象所共有的行為方法一個(gè)類可以創(chuàng)建多個(gè)對象,同一個(gè)類的多個(gè)

一:什么是類 什么是對象
1.1現(xiàn)實(shí)世界是有很多對象組成的,基于對象抽出了類
1.2對象是真實(shí)存在的單個(gè)的個(gè)體,類是一類個(gè)體,類型/類別
1.3類中可以包括:

    所有對象所共有的特征屬性----變量
    所有對象所共有的行為--------方法

1.4一個(gè)類可以創(chuàng)建多個(gè)對象,同一個(gè)類的多個(gè)對象,機(jī)構(gòu)相同,數(shù)據(jù)不同
1.5類 是對象的模板,對象是類的具體的實(shí)例

二:內(nèi)存管理
由jvm來管理

    1.1用于存儲所有new出來的對象(包括成員變量)
    1.2成員變量的生命周期;創(chuàng)建new對象時(shí)存在在堆中,對象被GC回收時(shí)一并消失
    1.3垃圾:沒有任何引用所指向的對象
        垃圾回收器GC不定時(shí)到內(nèi)存中掃描,看到垃圾不一定馬上回收    
        回收過程是透明的,并不是一看到垃圾就馬上回收,想快一點(diǎn)可以調(diào)用System.gc()
    1.4局部變量:調(diào)用方法時(shí)存在在棧中,方法結(jié)束時(shí)與之一并消失
    1.5方法區(qū):
        用于存儲.class字節(jié)碼文件(包括方法)
        方法只有一份,通過this來區(qū)分具體是哪個(gè)

繼承
2.1目的:避免代碼重復(fù),有利于代碼的復(fù)用
2.2通過extends實(shí)現(xiàn)繼承
2.3父類/基類:所有子類所共有的屬性和行為 子類:子類所特有的屬性和行為
2.4子類/派生類繼承父類后,子類具有:子類+父類
2.5一個(gè)父類可以有多個(gè)子類,一個(gè)子類只能有一個(gè)父類-----單一繼承
2.6繼承具有傳遞性
2.7java規(guī)定:

        構(gòu)造子類方法之前必須先構(gòu)造父類方法
        子類構(gòu)造之前沒有調(diào)用父類的構(gòu)造,系統(tǒng)默認(rèn)super()來調(diào)用父類的無參構(gòu)造
        若自己調(diào)用了,則不再默認(rèn)提供
        super()調(diào)用父類構(gòu)造,必須位于子類構(gòu)造的第一行

super:指代當(dāng)前對象的父類對象

    1:super.方法名()-----調(diào)用父類的方法
    2:super.成員變量名-----調(diào)用父類的成員變量
    3:super()------------調(diào)用父類的構(gòu)造方法
向上造型:
    1:父類型的引用指向子類的對象
    2:能點(diǎn)什么得看引用類型

三:方法
方法:方法的簽名:方法名+參數(shù)列表

1.方法的重載overload:同一個(gè)類中,方法名稱相同,參數(shù)列表不同
              編譯器在編譯時(shí)自動根據(jù)方法的簽名來綁定調(diào)用方法


2.構(gòu)造方法(構(gòu)造器,構(gòu)造函數(shù),構(gòu)建器)
    常常用于給成員變量賦初值
    與類同名,沒有返回類型    
    在創(chuàng)建(new)對象時(shí)被自動調(diào)用
    若自己不寫構(gòu)造方法,則編譯器默認(rèn)提供無參結(jié)構(gòu)的構(gòu)造方法
    構(gòu)造方法可以重載
3.this:指代當(dāng)前對象,那個(gè)對象調(diào)用指的就是哪個(gè)對象
    方法中訪問成員變量之前默認(rèn)都有個(gè)this
   this的用法
    this.成員變量名-------訪問成員變量
    this.(方法名)-------調(diào)用方法;
    this()--------------調(diào)用構(gòu)造方法

4.引用類型數(shù)組:
    4.1    
        cell[] cells = new cell[4];
        cells[0] = new cell(2,1);
        cells[1] = new cell(2,8);
        cells[2] = new cell(5,5);
        cells[3] = new cell(3,5);

    4.2    
        cell[] cells = new cell[]{
            new cell(2,1);
             new cell(2,8);
             new cell(5,5);
             new cell(3,5);

        }

    4.3    int [][] arr = new int [3] [];
          arr[0] =new int [2];
          arr[1] =new int [3];
          arr[2] =new int [2];
        arr[1][0] = 100;

    4.4     int [][]arr = new int [3][4];
        for(int i = 0;i

static:靜態(tài)的

    1靜態(tài)變量
        由static修飾
        屬于類的,存在方法區(qū)中,只有一份
        常常通過類名. 來訪問
        何時(shí)用:若所有對象的數(shù)據(jù)都一樣時(shí)使用
    2靜態(tài)方法

        由static修飾
        屬于類的,存在方法區(qū)中,只有一份
        常常通過類名. 來訪問
        沒有隱式的this來傳遞;靜態(tài)方法中不能直接訪問實(shí)例成員
        何時(shí)用:方法的操作僅與參數(shù)相關(guān)而與對象無關(guān)
        
    3靜態(tài)塊
        由static修飾
        屬于類的,類被加載時(shí)自動執(zhí)行,類只被加載一次,所以靜態(tài)塊也只執(zhí)行一次
        何時(shí)用:常常用于加載靜態(tài)資源圖片音視頻等
        

*成員變量:
1.實(shí)例變量:屬于對象的,存在堆中;
        有幾個(gè)對象就有幾個(gè)實(shí)例變量;
        必須通過對象名.來訪問
2.靜態(tài)變量:
    由static修飾,屬于類的,存在方法區(qū)中
    只有一份
    常常通過類名. 來訪問
    
6.final:不能變
    6.1修飾變量:變量不能被改變
    6.2修飾方法:方法不能被重寫
    6.3修飾類:類不能被繼承


7.static final常量
    7.1必須聲明的同時(shí)初始化
    7.2通過類名.來訪問,不能改變
    7.3建議常量名都大寫
    7.4在編譯的同時(shí)會自動轉(zhuǎn)換為具體的值,效率高



1.抽象方法:由abstract修飾,只有方法的定義沒有方法的實(shí)現(xiàn)
2.抽象類:
    2.1由abstract修飾
    2.2包含抽象方法的類必須是抽象類
    2.3抽象類不能被實(shí)例化
    2.4抽象類是需要被繼承的,否則無意義,常用-----重寫所有抽象類的方法
    2.5意義:
        2.5.1包含公共的屬性和行為,被子類所共享
        2.5.2為所有子類所提供一種公共的類型----向上造型
        2.5.3包含抽象方法,為所有子類提供一個(gè)統(tǒng)一的方法,子類有不同的實(shí)現(xiàn)

接口:

         //接口是完全抽象的抽象類
    1是一個(gè)標(biāo)準(zhǔn)、規(guī)范
    2由interface定義
    3只能包含常量和抽象方法,略的是public
    4接口是不能被實(shí)例化的
    5接口是需要被實(shí)現(xiàn)/繼承的,實(shí)現(xiàn)類/子類:
                    必須重寫接口中所有的抽象方法
    3.6一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,用逗號隔開,若又繼承又實(shí)現(xiàn),要先extends后implements
    3.7接口可以繼承接口



多態(tài):意義:

    1.1同一類型的引用指向不同的對象時(shí),有不同的實(shí)現(xiàn)
    1.2強(qiáng)制類型轉(zhuǎn)換,成功的條件有兩個(gè):
        引用所指向的對象,就是該類型
        引用所指向的對象,實(shí)現(xiàn)了該接口
    1.3instanceof關(guān)鍵字返回的是boolean類型結(jié)果,強(qiáng)轉(zhuǎn)成功的條件就是它為true的條件

內(nèi)部類,有自己獨(dú)立的.class

    1成員內(nèi)部類
        只服務(wù)于外部類,他的對象一般是在外部類創(chuàng)建的
        內(nèi)部類中可以直接訪問外部類的成員包括private
        內(nèi)部類中有個(gè)隱式的引用指向創(chuàng)建他的外部類

    2匿名內(nèi)部類
        常用
        想創(chuàng)建一個(gè)只用一次的類的對象,該類可不必命名
        匿名內(nèi)部類中訪問外部的數(shù)據(jù),該數(shù)據(jù)必須final類型

面向?qū)ο罂偨Y(jié)

面向?qū)ο蟮娜筇卣鳎?br>1.封裝

1.1 類:封裝的是對象的屬性和行為
1.2 方法:封裝的是具體的邏輯功能實(shí)現(xiàn)
1.3訪問控制修飾符:封裝的是訪問的權(quán)限

2.繼承:

2.1作用:避免代碼的重復(fù),有利于代碼的重用
2.2父類:所有子類所共有的  子類:特有的   子類extends繼承后:子類+父類
2.3單一繼承,多接口實(shí)現(xiàn),具有傳遞性

3.多態(tài)

3.1意義:行為的多態(tài)、對象的多態(tài)
3.2向上造型、強(qiáng)制類型轉(zhuǎn)換、instanceof
3.3多態(tài)的表現(xiàn)形式:    
    重寫+重載

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77599.html

相關(guān)文章

  • Java學(xué)習(xí)筆記——面向對象

    摘要:對象既是該類事物實(shí)實(shí)在在存在的個(gè)體。類與對象的關(guān)系圖類就是汽車汽車就是堆內(nèi)存中的對象。成員變量成員變量成員函數(shù)的車,輪胎數(shù)個(gè),跑起來了對象的創(chuàng)建創(chuàng)建對象中創(chuàng)建對象,使用關(guān)鍵字在堆內(nèi)存中開辟了空間,產(chǎn)生了一個(gè)實(shí)體。 聲明:本文首發(fā)于我的個(gè)人微信公眾號【Java編程社區(qū)】,查看更多文章與學(xué)習(xí)資源請移步我的公眾號Java編程社區(qū) 萬物皆對象 學(xué)習(xí)Java,我們都聽過這句話:萬物皆對象。那么什...

    DoINsiSt 評論0 收藏0
  • 學(xué)Java編程需要注意的地方

    摘要:學(xué)編程真的不是一件容易的事不管你多喜歡或是多會編程,在學(xué)習(xí)和解決問題上總會碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O(shè)計(jì)和編程的能力掌握基本的優(yōu)化策略。   學(xué)Java編程真的不是一件容易的事,不管你多喜歡或是多會Java編程,在學(xué)習(xí)和解決問題上總會碰到障礙。工作的時(shí)間越久就越能明白這個(gè)道理。不過這倒是一個(gè)讓人進(jìn)步的機(jī)會,因?yàn)槟阋恢辈粩嗟膶W(xué)習(xí)才能很好的解決你面前的難題...

    leanxi 評論0 收藏0
  • Java入門請不要放棄,學(xué)習(xí)路線以及側(cè)重點(diǎn)分析

    摘要:而面向搜索引擎,就是我們要及時(shí)的使用百度谷歌遇到問題無法解決,先別急著放棄,可以去網(wǎng)絡(luò)尋找答案,你的坑大部分別人都已經(jīng)走過了,大部分都可以找到合適的解決方案。 showImg(https://segmentfault.com/img/remote/1460000019236352?w=866&h=456); 前言: ●眾多的語言,到底哪一門才是適合我的?●我們?yōu)槭裁匆獙W(xué)習(xí)Java語言呢...

    mochixuan 評論0 收藏0
  • 深入學(xué)習(xí)js的面向對象

    摘要:字符串也可以是一個(gè)對象日期是一個(gè)對象數(shù)學(xué)和正則表達(dá)式也是對象數(shù)組是一個(gè)對象甚至函數(shù)也可以是對象一般的語言,都是利用類來創(chuàng)建對象,完成面向?qū)ο蟮倪^程。 在之前的一篇文章的末尾我提到了JavaScript的對象創(chuàng)建方法,可以利用函數(shù),內(nèi)置對象和this等關(guān)鍵詞實(shí)現(xiàn)對象的創(chuàng)建。但是很遺憾,我最先接觸的面向?qū)ο蟮木幊陶Z言是java,因而對于這些實(shí)現(xiàn)面向?qū)ο蟮姆椒ú⒎亲约旱氖走x。下面是那篇文章:...

    loostudy 評論0 收藏0
  • 一切都是對象

    摘要:一切都是對象之前自己學(xué)習(xí)就是以系統(tǒng)的角度去學(xué)習(xí),就是我們把這些知識點(diǎn)羅列出來,然后做一個(gè)全面的學(xué)習(xí)。按照面向?qū)ο蟮乃枷耄磺卸际菍ο?,不管什么?shù)據(jù)都應(yīng)該是對象,但是對于一些基礎(chǔ)的數(shù)據(jù)類型為了運(yùn)行效率和內(nèi)存的優(yōu)化,將個(gè)基本類型進(jìn)行了特殊處理。 一切都是對象 之前自己學(xué)習(xí)Java就是以系統(tǒng)的角度去學(xué)習(xí),就是我們把這些知識點(diǎn)羅列出來,然后做一個(gè)全面的學(xué)習(xí)。這樣的的確確可以將知識點(diǎn)都學(xué)習(xí)全面,...

    ruicbAndroid 評論0 收藏0
  • 面向對象JavaScript

    摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對象存在。而在基于原型的面向?qū)ο蠓绞街校瑢ο髣t是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長期以來人們對這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽猓瑥膶φZ言感悟的角度闡述為什...

    novo 評論0 收藏0

發(fā)表評論

0條評論

amuqiao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<