1. 程式人生 > 實用技巧 >面向物件一

面向物件一

面向過程和麵向物件

面向過程:就是一步一步的去執行,每個動作都是自己來做

面向物件:就是指揮別人來做,更符號現實生活.

面向物件

  什麼是抽象:所謂抽象,就是從特定的角度出發,關注特徵,行為,從而產生一個新事物的過程

  類:是對某一事物的統稱;(特徵和行為)

  物件:表示現實生活中的一個個體;即例項

  變數

    成員變數:定義在類中方法外,也稱欄位(field),屬於物件變數

    區域性變數:定義在方法中

    成員變數有預設值,就算不賦值也可以使用

    區域性變數沒有預設值,不初始化就不能直接使用

  變數的作用域

    成語變數在整個類中都可以使用(靜態的除外)

    區域性變數只能在這個方法中

  變數的生命週期

    成員變數儲存在堆記憶體中,隨著物件的建立而建立,隨著物件的銷燬而銷燬

        成員變數屬於物件

    區域性變數儲存在棧記憶體中,隨著方法的壓棧而建立,隨著方法的彈棧而銷燬

  類的定義

    類是擁有相同特徵(狀態)和行為的多個物件的抽象

    1. 使用成員變數來表示狀態
    • 使用成員方法來表式行為(功能) 
       1 public class 類名{
       2       
       3     //成員變數
       4     
       5       修飾符   資料型別   變數名;//public  String name;
       6     //成員方法
       7           
       8
      修飾符 返回值型別 方法名(形參列表){ 9 功能程式碼; 10 } 11 12 }

      注意         

        成員變數和成員方法不能用static,static修飾屬於類

   物件的操作

      建立物件

        類名 物件變數名 = new 類名();

      操作物件的成員變數

 1 public   class  CatDemo {
 2 
 3      public static void main(String[] args){
 4 
 5         //建立物件
6 Cat c = new Cat(); 7 //給成員變數賦值 8 c.name = "tom"; 9 c.age = 3; 10 //呼叫方法 11 c.say(); 16 17 } 24 25 } 26 27 class Cat{ 28 29 String name; 30 int age; 31 32 public void say(){ 33 34 System.out.println("說話"); 35 36 } 37 38 }

          物件名.變數名 = 值;

      操作物件的成員方法

          物件名,方法名(引數);

物件的例項化過程

  Cat c = new Cat();

構造器

  Cat c = new Cat();

  其實這裡是呼叫了無參的構造器就是new 關鍵字後面的 Cat();

  構造器的作用

    用於建立物件 還可以給成員變數賦值用的

    語法:

      修飾符 類名(引數列表){

        程式碼

        }

    注意事項:

        構造器的方法名和類名一樣

        不能有返回值

    預設構造器, 在類中我們自己不定義構造器時,系統會為我們提供一個無參的構造器public 類名(){}

    假如我們自己寫了構造器的話,系統就不會提供了

    構造器之間可以過載

封裝的思想 

  封裝是面向物件的三大特徵之一

    把物件的欄位和方法存放在一個類中

    資訊隱藏,儘可能隱藏物件的資料和功能實現細節

    我們一般把成員變數把使用private 修飾 然後提供setter和getter來給變數取值和賦值

  封裝的好處

    保證資料的安全性,防止呼叫者隨意修改

    提高元件的重用性,把公共功能放到一個類中,誰需要該功能,直接呼叫   

訪問修飾符

  

   private修飾的成員只能在本類中使用,出了本類就不能使用了,這個就是封裝的體現;

   public表示在整個專案中都可以訪問

javaBean規範

  類要使用public修飾

  成員變數使用privaet

  提供公共無參構造器

  每個成員變數要提供getter和setter方法

 1 public class   Person{
 2 
 3      private  String name;
 4      private   int  age;
 5 
 6 
 7      public void setName(String name){
 8              this.name = name;
 9     
10     }  
11 
12     public String getName(){
13 
14         return name;
15 
16 }
17 
18    public void setAge(int age){
19 
20         this.age = age;
21 }
22 
23   public int getAge(){
24 
25       return age;
26 }
35 }