------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
面向对象是相对于面向过程而言的,它们是两种不同的思想。面向过程强调的是功能和行为。而面向对象是把功能封装到对象里,强调的是具备功能的对象。面向对象是基于面向过程而言的,是一种符合人们思考习惯的思想,他能将复杂的问题简单化。可以将程序员从执行者转换成为指挥者。
动物分类学家根据动物具有的特征,把具有相同特征和行为的动物归为同一个类,一个类描述的是动物具备些特征和行为。如狮子,老虎,豹子有相同的特征和行为,把它们这些相同的特征和行为抽象出来就形成了猫科动物这一类;狼和狗也具有相同的特征和行为,把它们的相同特征和行为抽象出来就形成犬科这一类。老虎和狮子都是基于猫科类的动物实体;狗和狼是基于犬科类的动物实体。面向对象吸取了这种分类思想,把由类派生出来的实体叫实做例对象。
面向对象的开发的过程:创建对象,使用对象, 指挥对象做事情。
举一个生活中的例子阐述一下面向对象的思想:我现在肚子饿了,我又不想自己做饭,也不想跑下楼出去买吃的,于是我灵机一动,可以利用学过的面向对象的思想解决问题,一个电话找外卖,五分钟之后一碗番茄鸡蛋炒饭就送到了面前。这个例子中送餐员就是一个对象,他具备送餐的功能,我找到这个送餐员调用的送餐功能就行。至于饭是怎么做的,是怎么送过来的,我都不用知道,我只要知道送餐员有送餐功能就像。这样我就有一个执行者变为了一个指挥者,我不用自己做饭,我指挥送外卖的送饭过来就行。
我们学过的C语言是面向对象的程序设计语言,java是面向对象的程序设计语言,下面通过程序说明一下它们的不同。
需求:求10个整数的最大值,最小值,平均值以及给这10个数排序。
C语言
思路:创建4个函数分别是求最大值,最小值,平均值,排序
主函数依次调用者这几个函数求得结果。
C程序:
#include <stdio.h>
void main()
{
int max(int a[],int n);//声明要调用的求最大值函数
int min(int a[],int n);//声明要调用的求最小值函数
int aver(int a[],int n);//声明要调用的求平均数函数
void sort(int a[],int n);//声明要调用的排序函数
int a[10]={1,8,3,2,5,6,7,4,9,10};
int x;
printf("the max=%d\n",max(a,10));//调用函数求最大值函数并打印结果
printf("the min=%d\n",min(a,10));//调用函数求最小值函数并打印结果
printf("the aver=%d\n",aver(a,10));//调用函数求平均值函数并打印结果
sort(a,10); //调用函数排序函数
printf("the sort:");
for(x=0;x<10;x++)
{
printf("%d ",a[x]);
}
}
//求最大值函数
int max(int a[],intn)
{
int x;
int max=a[0];
for(x=0;x<n;x++)
{
if(a[x]>max)
max=a[x];
else
continue;
}
return max;
}
//求最小值函数
int min(int a[],intn)
{
int x;
int min=a[0];
for(x=0;x<n;x++)
{
if(a[x]<min)
min=a[x];
else
continue;
}
return min;
}
//求平均值函数
int aver(int a[],intn)
{
int x;
int sum=0;
int aver;
for(x=0;x<n;x++)
{
sum=sum+a[x];
}
aver=sum/n;
return aver;
}
//排序函数
void sort(int a[],intn)
{
int x,y,temp;
for(x=0;x<n-1;x++)
{
for(y=0;y<n-1-x;y++)
{
if(a[y]>a[y+1])
{
temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
}
}
}
}
Java语言:
思路:创建一个类;类里面封装了求最大值,最小值,平均值,排序等方法。在主函数中创建类的实例对象,调用类中方法求得结果。
Java程序:
class Test//定义类
{
//类中求最大值方法
public int getMax(int[] arr)
{
int max = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]>max)
max= arr[x];
}
return max;
}
/*
获取最小值。
*/
public int getMin(int[] arr)
{
int min = 0;
for(int x=1; x<arr.length; x++)
{
if(arr[x]<arr[min])
min= x;
}
return arr[min];
}
//对数组进行排序
public void sort(int arr[])
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=0; y<arr.length-x-1; y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
else
continue;
}
}
}
//排序方法
public int getAver(int arr[])
{
int sum=0;
for(int x=0;x<arr.length;x++)
{
sum=sum+arr[x];
}
int aver=sum/arr.length;
return aver;
}
}
class ArrayTest
{
public static void main(String[]args)
{
Test a=new Test();//创建类的实例对象
int[] arr ={5,1,6,4,2,8,9,3,10,7};
int max = a.getMax(arr);//通过了对象调用类中的求最大值方法
int min = a.getMin(arr);//通过了对象调用类中求最小值方法
int aver=a.getAver(arr);//通过了对象调用类中求平均值方法
System.out.println("max="+max);
System.out.println("min="+min);
System.out.println("aver="+aver);
a.sort(arr);//通过了对象通过了对象调用排序方法
for(int x=0;x<arr.length;x++)
{
System.out.print(arr[x]+" ");
}
}
}