[JAVA] 面向對象小小總結

面向對象概述

符合人類思惟習慣的編程思想 , 生活中存在着不一樣形態的事物 , 這些事物存在着不一樣的聯繫 , 在程序中使用對象來映射現實中事物 , 使用對象關係來描述事物之間的聯繫, 這種思想就是面向對象.java

 

 

面向對象過程 

分析解決問題所須要的步驟, 使用函數把步驟實現, 再依次調用就能夠了. 編程

 

類與對象 ->封裝

  • 類的定義
  • 對象建立與使用
class Exampel1{
public static void main (String[] args){
        Person p1 = new Person();//建立第一個person對象
        Person p2 = new Person();//建立第二個person對象
        P1.age = 18;//賦值
        P1.speak();//調用對象的方法
        P2.speak();
}
}

 

  • 若是沒有賦值 , Java會自動賦予初始值
  • 類的設計
public class Student{   //設計一個學生類

        String name ;  // 定義學生姓名屬性
        int age ;  //定義學生年齡屬性

      public void introduce() { 
          //方法中打印屬性name和age的值
             System.out.println("你們好, 我叫"+name +"我今年" +age + 
 "歲了");
}

      
}

類的封裝 

將類的屬性私有化, 使用 private 關鍵字來修飾, 不容許外界隨意訪問函數

 

setter  : 給成員變量設置屬性值,起到必定的保護做用學習

getter : 從成員變量中獲取屬性值this

 

構造方法

  • 定義
  • 方法名與類名相同
  • 在方法名的前面沒有返回值類型的聲明
  • 在方法中不能使用return語句返回一個值, 可是能夠單獨寫return語句做爲方法的結束

 

class Person{
    int age ; 
   // 定義有參的構造方法
   public Person (int a ){
       age  =  a ;  //  爲age 屬性賦值
  }
   public void speak (){
         System.out.println("今年我已經" + age + "碎了");
  }
}

Public class Test{
    public static void main(Strings [] age ){
         Person p1 = new Person( 20 ); //實例化Person的對象
         p1.speak();
  }
}

 

構造方法的重載

在一個類中能夠定義多個構造方法,只要每一個構造方法的參數類型或參數個數不一樣便可spa

 

this關鍵字
設計

  1. 訪問本類中的成員變量
  2. this和super是區分子類與父類重名的部分

super關鍵字

  1. 獲取父類中的內容
  2. 必須寫在第一行, 調用父類中的構造方法
  3. 若是父類的構造是無參數, 能夠不寫, 若是父類沒有無參數的構造,必須寫super

static關鍵字

  1. 數據共享
  2. 使用類名 . 變量名去訪問  /  使用實例化對象的方式去訪問
  3. 優於對象產生
  4. 在靜態方法不能使用this 
  5. 使用類名 . 方法名去調用靜態方法

final關鍵字

  1. 被final修飾的變量不能夠改變 , 最終的變量又稱爲常量
  2. 類不能夠繼承
  3. 不能夠重寫
  4. 換句話說就是不能夠變

 

包和導包

  1. 包 : 其實本質就是文件夾
  2. 在代碼中須要寫package 包名
  3. 導包 : import 包 + 類
  4. 不須要導包 :
  5. 本身包裏
  6. java.lang包下的都不須要導包

 

訪問權限

  1. public : 公共的 , 全部人均可以訪問
  2. private : 私有的
  3. default : 包訪問權限 , 在本身的包內能夠隨意訪問

 

繼承

  1. 使用extends關鍵字
  2. 子類能夠自動擁有父類私有內容外的全部內容

重寫code

  1. 子類對父類提供的方法進行從新定義
  2. 子類中的方法必須和父類中的方法徹底一致
  3. 父類中有多少方法,子類必須重寫父類的方法

 

 

多態對象

  1. 同一個對象擁有多種形態
  2. 做用  :  把不一樣的數據類型進行統一
  3. 對象類型轉換
  4. 向上轉型 : 把子類對象賦值給父類的引用(變量)
  5. 可是會屏蔽掉子類中特有的方法

實現blog

  • implements

 

 

抽象

  1. java容許在定義方法時不寫方法體
  2. 抽象方法沒有方法體
  3. 抽象方法必須使用abstract關鍵字修飾
  4. abstract修飾方法就是抽象方法 , 同時類也變成抽象類(加上abstract)
  5. 可是抽象類中能夠不包含任何抽象方法

特色

  1. 不能夠建立對象
  2. 子類繼承(extends) 父類後 , 抽象的子類,必須重寫父類中的抽象方法 , 才能不變成抽象子類
  3. 抽象類中也能夠有正常方法
  4. 做用 : 能夠強制要求子類要求的方法 , 使代碼更加規範

 

 

接口

  1. 特殊抽象類
  2. 全部的方法都是抽象方法 , 能夠省略abstract
  3. interface關鍵字聲明 , 全部的內容都是公共的, 全局靜態 , 常量
  4. 定義的全局常量默認修飾爲public static final
  5. 定義的抽象方法默認修飾爲public abstract
  6. 接口和類只能是實現  ( implements ) 關係 (上面的抽象和類是繼承extends關係)
  7. 類只能單繼承 , 接口支持多實現
  8. 類能夠繼承一個類 , 實現多接口
  9. 接口同樣具備多態性 , 整合不相關內容

object

  1. 全部類的
  2. 默認繼承object
  3. 萬事萬物皆爲對象

 

equals和==

  • equals : 默認調用的是object提供的equals方法 , 判斷兩個對象內容是否相等
  • == : 判斷兩個對象內存地址是否一致 , 通常用在基本數據類型上

toString 

  • 默認包+類 @ 地址 , 對一個對象的字符串表示形式
  • instanceof : 判斷xxx對象是不是xxx類型的

參數傳遞問題

內存簡單分析

 

JAVA新手一枚 , 大佬勿噴, 以上的內容是學習過程當中的筆記, 權當記錄複習 , 具體仍是要看Java的基礎案例來理解      

相關文章
相關標籤/搜索