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

面向?qū)ο笏枷?/h1>
概述:找一個對象來干活.不用再關(guān)注過程.
基本步驟:
定義類--創(chuàng)建對象--調(diào)用方法.

類與對象

類:對事物的描述
對象: 事物的實體.
關(guān)系: 類就是對對象的描述.  
      對象就是類的具體體現(xiàn).
      
      類 : 虛的
      對象:實的 

定義類格式:

class 類名{

           //成員變量 : 屬性
           //構(gòu)造方法 : 創(chuàng)建對象用的
           //成員方法 : 行為,功能
       }

面向?qū)ο蟮娜筇卣?/h1>

封裝

    步驟:1.private私有成員
         2.提供公共的訪問方式  
            get/set : 可以更改對象的值  
                 
            構(gòu)造方法: 創(chuàng)建對象就賦值了
    private:
        作用:私有化,保護數(shù)據(jù),隱藏實現(xiàn)細節(jié) 
        特點:只有本類可以訪問. 外部的類都看不見.
    
    this: 
        作用: 指代本類當前對象
        1. 局部變量隱藏成員變量   
        setXxx(String name){
            this.name = name; 
        }
        
        int num=20;
        show(){
            int num =30 ;  // 就近 隱藏了 
            syso(this.num);
        }
        2.調(diào)用自己的構(gòu)造 
        this ( 參數(shù));   調(diào)用自己的有參構(gòu)造  
            
    static: 靜態(tài)
        特點:隨著類的加載而加載.  
             修飾成員
        1.成員方法調(diào)用
            類名.方法名(); (看情況,比較方便)
        2.成員變量
            類名.變量名; (不常用)
            所有對象共享其值. 

繼承

    概述:子類集成父類  
    class Zi extends Fu { }  

    特點:1.單繼承, 只有一個親爹
         2.多層繼承 , 還可以有爺爺 
         3.父類有的,子類可以直接用. 
    注意事項:
        1.private的東西 不能繼承. 
        2.構(gòu)造方法不能繼承, 但是可以訪問 
            默認通過super(); 訪問父類的無參構(gòu)造    
            super(參數(shù));  手動方法父類有參 
        3.不能隨便繼承.
        4.is a 的關(guān)系時候,才能使用.  

    super:
    成員關(guān)系
        成員變量(同名):
            super.父類成員變量. 訪問父類成員. 
        構(gòu)造方法:
            注意事項:默認訪問父類無參  
                1.super(); 
                2.super(name,age);
                3.必須在構(gòu)造方法中第一行 
        成員方法(同名):重寫
            重寫概述:子父類中, 一模一樣的方法. (方法名,返回值類型 ,參數(shù)列表 )
            注意事項:
                1.private的不能重寫 
                2.權(quán)限不能更低.解決方案 :  一模一樣.
        靜態(tài)方法: 
            重寫: 使用靜態(tài)才能靜態(tài)方法.   
            
    final:  
        概述:最終的 
        特點:被修飾的不能改變 
            類:   不能繼承
            變量: 不能賦值,只能初始化一次.  
            方法: 不能重寫. 

多態(tài):

    概述:一種事物多種形態(tài) 
    前提: 
        1.繼承或者實現(xiàn) (二選一)
        2.方法重寫(才有意義)
        3.父類引用指向子類對象 
        Fu f = new Zi(); 
            
    成員關(guān)系:
        成員變量:編譯看左邊,運行看左邊
        構(gòu)造方法:編譯看左邊,運行看左邊
        成員方法:編譯看左邊,運行看右邊 * 
        靜態(tài)方法:編譯看左邊,運行看左邊
            
    子類特有的方法:
        向上轉(zhuǎn)型: 子--> 父
            格式: fu f = new Zi(); 
        向下轉(zhuǎn)型: 父 --> 子
            格式: 
            Zi z = (Zi)f; 

抽象類

概述:描述不清楚的類 
特點: 
    1.格式:
    abstract class 類名{  
        public abstract void 方法名(); 
    }           
    2.方法特點: 可以抽象 ,也可以非抽象
    3.構(gòu)造方法: 有,不能new 
    4.如何使用抽象類?
        使用它的子類. 
    5.子類特點: 
        1.要么抽象
        2.要么重寫它所有的抽象方法
    
成員特點:
    a:成員變量:變量/常量
    b:構(gòu)造方法:有
    c:成員方法:抽象/非抽象
面試題: abstract 不能和哪些關(guān)鍵字共存(定義方法來測試)?
        private    沖突 -- 對子類隱藏,而 abstract 必須讓子類重寫 
        final      沖突 -- 不能被重寫,矛盾 
        static     無意義-- 類名調(diào)用,沒有方法體,無意義

接口

概述:把很多功能封裝到接口中,用類去實現(xiàn)接口 ,重寫里面的功能 . 
本質(zhì):就是一種規(guī)則
特點:
    1.格式: interface 接口名{
    }
      使用: 
      class  A implements 接口名 {
      }
      

    2.成員變量: 常量
    3.成員方法: 抽象
    4.構(gòu)造方法: 無 
    5.實例化: 
        方式1:new 子類
        方式2: new Inter(){};  // 加一個 {} 重寫方法
    6.子類要求:  
         1.要么抽象
        2.要么重寫它所有的抽象方法

內(nèi)部類

概述: 類里面的類 (人里面的心臟)
成員內(nèi)部類:成員位置 ,類中方法外
    格式:
class Outer{
            private class Inner{
            }

            public void method(){
                new Inner(); 
            }
        }
    
注意:如果private 修飾內(nèi)部類,那么就不能直接創(chuàng)建,提供公共的訪問方式.

局部內(nèi)部類:在方法內(nèi)部 
    格式:
class Outer{
            show(){
                
                final int num =10;
                class Inner {
                    
                }
            }
        }
    問題:只能訪問被final修飾的局部變量嗎?
    肯定的.使用final把局部變量變成常量.

匿名內(nèi)部類:

前提:有一個接口或者類(抽象類)
本質(zhì): *匿名對象*-- 這個對象時實現(xiàn)了接口或者繼承了類的子類對象 ,必須重寫所有抽象方法 
new 接口(){
    重寫抽象方法 
}.方法名();

代碼塊:

靜態(tài):成員位置, 類加載的執(zhí)行,只有一次
構(gòu)造:成員位置, 每次構(gòu)造方法前執(zhí)行
局部:方法內(nèi),提供效率.

權(quán)限修飾符:

                    本類      同包      不同包子類       不同包其他類
private           *                                        
default           *          *                               
protected            *         *            *                 *
public             *         *          *                 *         

常用 public 修飾 類 和方法
;private 修飾 成員變量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容