我们在谈JAVA的时候,常常说到JAVA是一门面向对象的编程语言,那什么是面向对象呐?
面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。
我们完成一件事情可以逐过程,比如我们洗衣服,就会经历下面的每一步:拿个盆子——放水——放衣服——放洗衣粉——手戳——换水——放洗衣粉——手搓——拧干——晾衣服。当然我们也可以逐对象,上面洗衣服的过程就可以简化为:人——衣服——洗衣粉——洗衣机。我们对比一下上面两种洗衣服的步骤就可以发现,面向过程和面向对象都可以帮我们解决问题,但是面向过程解决问题比较繁琐,中间缺失那一步都不行,并且换一个对象比如洗鞋子就要另一种方式,显然在解决实际问题中很不方便。而面向过程就大大解决了问题的解题步骤,他依靠对象之间的相互交互实现,在后面过程的维护和增删都容易实现,上面就是面向对象的好处。
类
我们既然能用面向对象的思想解决问题时,那么我们就需要对象。那什么是对象呐?对象就是我们在解决问题当中一个个的实例,比如上面洗衣服当中的人、洗衣机、洗衣粉。谈到对象我们就不得不讲到类,类是什么呐?举个例子,我们将书本、笔、直尺、橡皮檫归类为学习工具,它们就是一个类,类就相当于一系列具有类似特征的相同事物的统称,再比如人、猫、狗...。而在计算机当中,我们将类说为数据类型,比如整型、字符串型、浮点型。只不过这里的数据类型是我们自己定义的,这有点像C语言当中的结构体。就像上面讲的,我们在定义一个类(自定义数据类型)的时候,我们要用到它的属性和行为,比如,定义一个人,我们就需要知道这个人的姓名、年龄、性别、身高、体重...这些我们称为属性,我们还需要知道这个人所具有的的行为:吃饭、睡觉、学习...
所以我们的类就可以表示成下面的形式(以定义人为列):
class 类名{
//属性(或者叫做成员变量)
String name; //名字
int age; //年龄
double weight; //体重
...
//行为(或者叫做方法)
eat(); //吃饭
sleep(); //睡觉
study(); //学习
...
}
对象
上面讲了,对象就是对象就是我们在解决问题当中一个个的实例
比如:
People p1 = new People();
上面的p1就是对象(严格说是对象名或者对象引用,new People()创建的对象空间(数据)才是真正的对象)
上面了解了什么是对象和类,我们用一个列子来实现一下对象的访问
public class Class_and_Object {
public static void main(String[] args) {
/**
* 一个老太婆养了两只猫:一只叫做小白,3岁,白色;
* 另一只叫做小花,100岁,花色。
* 请编写一个程序,当用户输入小猫名字时就显示该猫的名字、年龄、颜色。如果用户名字输入错误,则显示老太婆没有这只猫
*/
//new Cat()意为创建一只猫(猫对象)
//Cat cat1 = new Cat()意为把创建的猫赋给cat1
//cat1就是一个对象(严格的说是一个对象引用或者对象名,new Cat()创建的对象空间(数据)才是真正的对象)
Cat cat1 = new Cat();
cat1.name = "小白";
cat1.age = 3;
cat1.color = "白色";
cat1.weight = 10;
Cat cat2 = new Cat();
cat2.name = "小花";
cat2.age = 100;
cat2.color = "花色";
cat2.weight = 20;
//访问对象的属性/行为
System.out.println("第一只猫的信息:"+cat1.name+" "+cat1.age+" "+cat1.color+" "+cat1.weight);
System.out.println("第二只猫的信息:"+cat2.name+" "+cat2.age+" "+cat2.color+" "+cat2.weight);
}
}
//创建一个猫类(创建一个自定义数据类型)
class Cat{
//属性(成员)变量
String name; //名字
int age; //年龄
String color; //颜色
double weight; //体重
//...
//行为
//...
}
结果展示: