JAVA面向對象基礎

筆試題訪問控制符在最下面!

思想基礎:面向對象是以現實生活中客觀存在的事物(即對象)來構造軟件系統,並在系統構造中儘可能運用人類的思維方式,強調直接以事務對象爲中心來思考、分析問題並根據事物的本質特徵將其抽象爲系統中的對象,作爲系統的基本構成單位。

面向對象的簡介
·面向對象的分析(OOA):確定需求或者業務的角度。按照面向對象的思想來分析業務。
·面向對象的設計(OOD):主要作用在OOA的基礎上進一步規範化整理,從而建立索要操作的對象以及相互之間的聯繫,以便能被OOP直接接受。
·面向對象編程(OOP):在前兩者的基礎上,對數據模型進一步細化。OOP是根據真實的對象來構建應用程序模型。

對象的概念:
一切事物皆可作爲對象,人們要進行研究的任何事物,均可以看作對象;
一個對象可以通過數據值來描述自身所具有的狀態;
對象還具有行爲,通過行爲可以改變對象的狀態,對象將數據和行爲封裝於一體,實現了兩者之間的緊密結合。

類!!!!!!!!!!!!

類是具有相同或相似性質的對象的抽象。因此,對象的抽象是類;
類由“特徵”和“行爲”組成
~~特徵 是對象狀態的抽象,通常使用變量來描述類的特徵,又稱之爲屬性
~~行爲,是對象操作的抽象,通常使用方法來描述類的行爲。
在這裏插入圖片描述

類的關係
類的關係主要有兩種:與、或

****************************面向對象特徵:
唯一性,繼承性,分類型,多態性

類的聲明

**類(class)定義了一種新的數據類型,是具有相同特徵(屬性)共同行爲(方法)**的一組對象的集合

語法
訪問符 修飾符 定義符 類名{
屬性
方法 }

public class Person{
       private String name;
       //get set方法
       public String getName(){
       return name;
       }
       public void setName(String name){
       this.name=name;
       }
       public void display(){
       System.out.println("姓名:"+name);
}

在這裏插入圖片描述

對象的創建和使用(重點)

語法:
類名 對象名 =new 類名();
示例:
Person p=new Person();
也可以分開寫:
Person p;
p=new Person();
聲明對象後,如果不想給對象分配存儲空間
示例:
Person p=null;
null 賦給引用類型變量,但不可以賦給基本類型變量
例如 int num= null; false!
Object object=null; true!
判斷一個引用類型數據是否爲空用 == 號來判斷

訪問對象屬性
對象名.屬性名
Person p =new Person(); p.display();//使用對象p調用display()方法顯示對象各成員變量默認值
調用對象的方法
對象名.方法名();

方法

方法是類的行爲的體現
訪問符 修飾符 返回類型 方法名(參數列表){
//方法體
}

public String getName(){
   return name;
}
public void display(){
   System.out.println(“姓名”+name)

方法的參數傳遞機制
帶參數
public void setName(String name){
this.name =name;
}
帶多個參數
public int add(int a,int b){
return a+b;
}
根據參數的使用場合,可以將參數分爲:
形參:“聲明方法”時給方法定義的形式上的參數,此時形參沒有具體的數值,形參前必須有數據類型,格式爲:
方法名(數據類型 形參)

public static void swap(int a,int b) {//a,b沒有具體的值
}

實參:“調用方法”時程序給方法傳遞的實際數據,實參前面沒有數據類型,格式爲:
對象名.方法名(實參)
int a=25;
p.display( a )
System.out.println(“調用display方法後,a的值爲”+a);

引用傳遞

在這裏插入圖片描述
參數引用傳遞
//定義一個數據類Mydata

class Mydata{
      public int a;
      public int b;
      }
聲明swap()方法,此時的data時形參
public static void swap(Mydata data){
  //下面三行代碼實現data的a,b兩個成員變量的交換,定義一個臨時變量來保存data對象的a成員變量的值
  int tmp=data.a;
  //把data對象的b成員變量值賦給a
  data.a=data.b;
  data.b=tmp;
  System.out.println(”swap方法裏,a成員變量的值是“+data.a+";b的值是”+data.b);
}

構造方法

構造方法的方法名必須與類名一直,且沒有返回類型,也沒有void。

訪問符 類名(參數列表){
初始化語句;
}
this關鍵字
this關鍵字代表當前所在類將來產生的對象,及將來用該類new出來的對象,用於獲取當前類的對象的引用。

初始化對象的過程

定義完一個帶參數的Person()構造方法後,就可以通過此構造方法創建一個Person對象。
在這裏插入圖片描述

默認構造方法:如果在類中沒有定義任何的構造方法,則編譯器將會自動加上不帶任何參數的構造方法,即缺省構造方法,該方法不存在於源程序中,但可以使用,比如:
Person p=new Person();
在這裏插入圖片描述

方法重載

java程序中,如果同一個類中包含了兩個或兩個以上方法的方法名相同,但參數列表不同,則被稱爲方法重載
三個原則
1,在同一個類中
2,方法名相同
3,參數列表不同,即參數的個數,或對應位置上的類型不同

構造方法重載

public class MyClass{
   int  myData;
public MyClass(){
}
public MyClass(int myData){
   this.myData=myData;
   }
}

對象數組

語法:類名【】 數組名=new 類名【長度】;
示例:Student【】 array=new student【5】;

訪問控制符

private(當前類訪問權限):被聲明爲private的成員只能被當前類中的其他成員訪問,不能在類外看到;
缺省(包訪問權限):如果一個類或類的成員前沒有任何訪問控制符,
則獲得缺省的訪問權限,缺省的可以被同一包中的所有類訪問;
protected(子類訪問權):被聲明爲protected的成員既可以被同一包中的其他類訪問,也可以被不同包中的子類訪問;
public (公共訪問權限):被聲明爲public的成員可悲同一包或不同包中的所有類訪問,即public訪問修飾符可以使類的特性公開於任何類;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章