java的面向对象编程思想
所谓面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与其中的有那些实体,这些实体有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。也就是说,任何事物都是可以转换为java中的数据类型中的数据的
- 举个例子:有一对兔子,从第3个月开始每个月都会生一对小兔子,每对小兔子到第3个后每个月又会生一对小兔子。依次类推,假设兔子都不死,请问第10个月有多少只兔子?
public class Main {
public static void main(String[] args) {
//模拟十个月兔子生崽的过程
//兔笼
List<Rabbit> rabbits = new ArrayList<Rabbit>();
//循环十个月
for (int i = 1; i <= 10; i++) {
//第一个兔子
if (i == 1) {
rabbits.add(new Rabbit());
} else {
//兔子自己增加年龄和生子
for (Rabbit rabbit : new ArrayList<Rabbit>(rabbits)) {
rabbit.addAge();
Rabbit ra = rabbit.son();
if (ra != null) {
rabbits.add(ra);
}
}
}
}
System.out.println("十个月后生兔子的数量为" + rabbits.size());
}
}
class Rabbit {
//年龄
private int age = 1;
//长大的行为
public void addAge() {
age++;
}
//生崽的行为
public Rabbit son() {
if (age > 3) {
return new Rabbit();
} else {
return null;
}
}
}