关于算法与OO
母牛五岁产母牛,二十年上多少牛?"
要求:分别从算法和OO的角度实现下,看其中区别?
[该贴被purh于2010-05-15 10:15修改过]
import java.util.Vector;
public class Farm
{
Vector
class Cow
{
private int age;
public Cow()
{
age = 0;
}
public Cow(int _age)
{
age = _age;
}
public void passAYear()
{
if(this.age >= 5)
{
Cow cow = new Cow();
cows.add(cow);
}
this.age++;
}
}
public Farm()
{
cows = new Vector();
Cow cow = new Cow(5);
cows.add(cow);
}
public int getNumOfCowsByYear(int year)
{
for(int i = 0; i < year; i++)
{
for(int j=0; j < cows.size(); j++)
{
Cow cow = cows.get(j);
cow.passAYear();
}
}
return cows.size();
}
public static void main(String[] args)
{
Farm farm = new Farm();
int year = 20;
int num = farm.getNumOfCowsByYear(year);
System.out.println("After " + year + " years, there're " + num + " cows in the farm.");
}
}
OO是一种方法来,粒度比较粗,而算法是一种内聚性很强的方法,如果你在事物内部发行了代表规律的算法,那么就用算法表达;如果你无法发现,就以事物外部特征来形象表述它,这就是象数区别。
你要比,也只能这样比:就这一具体问题,SP方式下与OOP方式下,哪个能实现较好的算法?
|