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;
}
}
分享时刻: