Hello,大家好!我是程序員阿飛!今天呢,我們主要學習一下Java中最常見的也是最基礎的知識點:面向對象。除此之外,文章最後我會分享一道經典的面試題。好了,廢話不多說了,我們直接進入今天的主題。
1、面向對象與面向過程的區別
答:相同點:兩者都是軟件開發的思想,先有面向過程,後有面向對象。在大型項目中,針對面向過程的不足,提出了面向對象的思想。
不同點:
(1)編程思想不同:面向過程以實現功能的函數爲主,而面向對象首先要抽象出類、屬性和方法,然後通過實例化類來完成功能。
(2)封裝性不同:面向過程封裝的是功能,而面向對象封裝的是數據和功能。除此之外,還具有繼承性和多態性。
2、面向對象的三大基本特徵
答:面向對象的三大基本特徵:封裝、繼承、多態
(1)封裝
隱藏內部細節,提供對外接口。其主要目的是爲了保證數據的安全性。
(2)繼承
一個類繼承另一個類,就是我們常說的子類和父類。其目的是提高代碼的複用性。
(3)多態
相同的事物,調用其相同的方法,參數也相同時,但表現的行爲卻不同。
題目:一個包含1-100數字的數組中,查找任意丟失的數字!
/*
* 算出1~100的和sum.
* 計算出給定數組所有數之和otherSum.
* 丟失的數字爲sum-otherSum.
*/
public class Demo03 {
public static void main(String[] args) {
int[] nums = { 1, 2, 3, 4, 5, 6, 8, 9, 10,
11, 12, 13, 14, 15, 16,17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64,65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96,97, 98, 99, 100 };
System.out.println(findNumber(nums));
}
public static int findNumber(int[] nums){
int n = nums.length;
int sum = (n+1) * (n+2)/2;
int otherSum = 0;
for (int i : nums) {
otherSum += i;
}
return sum-otherSum;
}
}
分享時刻: