第一章对象导论到这里就写完了,最后”1.14 总结”这一小节也不是按照上面13个小节的内容做的总结,主要是比较了一下过程式语言和面向对象语言的区别。下面举两个例子来说明一下数据定义和函数调用在过程型语言和面向对象语言中的区别,我们使用c语言和Java语言去举例:
// 数据定义:定义一个结构体表示一个人的信息structPerson { charname[50]; intage; }; // 函数定义:打印人的信息(类似于方法)voidprintPerson(structPersonp); intmain() { // 数据初始化structPersonperson1; strcpy(person1.name, "Alice"); person1.age=25; // 函数调用:打印人的信息(类似于方法调用)printPerson(person1); return0; } // 函数定义:打印人的信息(类似于方法定义)voidprintPerson(structPersonp) { printf("Name: %s\n", p.name); printf("Age: %d\n", p.age); }
publicclassPerson { Stringname; intage; // 构造方法publicPerson(Stringname, intage) { this.name=name; this.age=age; } // 打印人的信息publicvoidprintPersonInfo() { System.out.println("Name: "+name); System.out.println("Age: "+age); } publicstaticvoidmain(String[] args) { // 创建Person对象并初始化Personperson1=newPerson("Alice", 25); // 调用成员方法打印人的信息person1.printPersonInfo(); } }
个人理解最主要的区别就是能不能有自己的方法吧,c语言中结构体中是不能定义方法的,而java中的类里是可以有自己的方法的。面向过程的语言,它的行为动作(函数)是独立的,跟主函数平级的;面向对象是属于一个类的。
其实看上去java程序并不比c程序有多简单,只是你一旦被面向对象”洗脑”了,觉得好理解而已。我很喜欢这一章的最后一段描述:”OOP和Java也许并不适合所有的人。重要的是要正确的评估自己的需求,并决定Java是否能够最好地满足这些需求,还是使用其他变成系统才是更好的选择。”。这一章就讲完了,下面就是进入到的Java的世界了。