今天学习了java的编程思想,对此有以下理解:
java的编程思想是面向对象,与面向对象相关的是面向过程,与对象相关的则是类。所以要理解面向对象,就要先弄清楚类和对象的概念,以及面向对象与面向过程的区别。
类:类是现实中所有实体的共同属性和行为的集合,以人的主观意识而存在,是抽象的,具有主观性。
对象:对象是现实中存在的一个一个实体,不以人的主观意识而存在,是具体的,具有客观性。描述一个实体:特征+行为。
对于以上两个概念,举个简单例子,我们都知道,鸡、鸭、鹅、小猫、小狗都是动物,他们具有特征(如有眼睛、有脚、有嘴巴、有毛等)和行为(如吃、跑、叫、睡觉
等),动物是一个抽象出来的概念,没有哪一个东西是叫动物的,所以动物是一个类,而小猫小狗等都是实际存在的,是该类的对象。我的理解就是类是一个集合,对象就是
该集合中的具体元素。
要理解面向过程和面向对象的区别,先知道这样一句话:任何一件事情= 对象+过程
面向过程:面向过程即关注过程,即完成一件事,我们关心的是怎样去做。
面向对象:面向对象即关注对象,即完成一件事,我们关心的是谁去做。
对于以上两个概念,举个生活中的例子:张三让李四去买水。在这件事情中,张三关心的是让李四去完成买水,只要他能买回来水就行,不管他怎么买的(即面向对象);而李四关心的肯定是买水的过程,到底去哪里买水,具体怎么去等(即面向过程)。
那么以上讲的内容如何在java代码中体现呢?例如事件:张三男老师给李四学生讲课
我们首先定义一个Teacher类,类中包括特征(姓名、性别)和行为(教学),代码如下:
public class Teacher{
//特征(属性):姓名、性别
public String name;
public String sex;
//行为(方法、函数):教学
public void teach(String na){
System.out.println(name+sex+"老师正在给"+na+"学生上课");
}
}
然后定义一个学生类,类中包括特征(姓名),因事件没有体现学生的行为,故可不写,代码如下:
public class Student{
//特征:姓名
public String name;
//行为:
}
定义完两个类后,需要从这两个类中各产生一个对象才能去完成这件事情,代码如下:
public class Test{
public static void main(String[] args){
//需要一个老师对象
Teacher tea = new Teacher();
tea.name = "张三";
tea.sex = "男";
//需要一个学生对象
Student stu = new Student();
stu.name = "李四";
//让张三老师教李四
tea.teach(stu.name);
}
}
通过以上三段代码就可以完成所给的事情,虽然代码看着也不少,但是如果要把事件改成张三男老师给王五学生讲课,就只需要将第三段代码中的“李四”改成“王五”即可,其他地方都不需要修改,是不是又觉得很方便呢?以上就是我对java面向对象思想的理解。