Java 面向對象的特征解析與應用

## 類和對象

* 面向對象與面向過程

面向過程:是指類似在C語言學習中,所寫的代碼都在主程序(main())中運行,非常的繁瑣。

面向對象:首先創建一個類,類中包括對一個事物描述的性質(成員變量)和方法(成員方法)。

面向對象是指對一個事物的描述。

eg:對一個手機進行描述,創建一個名為phone的類。

passage ...;
  public class phone 
  {
      //成員變量
      String name;
      double price;
      String color;
      //成員方法
      call(String name )
      game(String playname)
  }

## 兩種常見的方法

* 方法重載

指的是當聲明瞭成員變量之後,隊成員變量進行賦值的兩種方法:

初始化:

double x;
double y;
MethodOveringLoading()
{
    x=1.2;
    y=0.0;
}
//方法重載
//可以通過自己想要的對成員變量進行定義
MethodOverLoading(double a,double b)
{
    x=a;
    y=b;
}

綜上可以看出為什麼會出現方法重載這個概念?

​ 就是因為對於一個類中的成員變量一般都是沒有初始化的,當程序員想要根據實際問題進行設定時,就出現瞭方法重載這個概念。

* 參數個數可變方法

現在我們再來看一個成員方法的例子:

//求和
public int sum(int a,int b)
{
    return a+b;
}

問題是當我們輸入兩個數值時,隻進行的2個數的求和,這裡我們就可以用到參數個數可變的方法;

public int sum(int ...arg)
{
    int sum=0;
    for(int a:arg)
    {
        sum+=a;
    }
    return sum;
}
public static void main(String[] args)
{
    System.out,print(sum(1,2,3))//輸出結果為6;
}

這裡需要註意的是一般情況下所輸入的參數都為相同類型的,但也可以輸入不同類型的參數。

public int sum(double a,int ...arg)//true
public int sum(double a,int ...arg)//false

* 遞歸方法

函數調用函數的方法。~暫時還想不出啥好的例子,以後再補充。

## 在程序運行過程中的內存分配

* 類的引用

* 相同包內class的引用

這種情況下不需要進行對類聲明;

* 不同包內class的引用

聲明所引用類的位置:import packagename.classname;//包名.類名

* 內存分配

在程序運行的過程中內存分成三個區域,

棧(Stack)、堆(Heap)、方法區(Method Area)

​ 開始時所引用的類都放在一個叫做方法區的地方,當然不是包中所有的類在程序運行時都會被調用,這就需要一個地方區分那些被用到而那些類沒有被用到,這個地方就是堆,但堆並不是將類中所有的信息都拿過來,而是隻拿瞭類中成員變量和成員方法在方法區中位置。當在main函數中輸入Phone one=new Phone()時,這裡的one是新new出來的一個對象,one接收到的是一個地址(Phone這個類所在堆中的地址信息),在後面的調用中隻需要輸入one.***就可以對類中成員方法和成員變量進行調用。

one_dyas

到此這篇關於Java 面向對象的特征解析與應用的文章就介紹到這瞭,更多相關Java 面向對象內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: