🐳理解面向对象:
Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。
我们拿洗衣服来做个例子
在传统的洗衣服中我们需要做一系列的步骤,我们看一下百度:
其中对应的方法步骤就是我们所说的过程,洗不同的衣服可能过程还不一样,这也就造成了写代码的时候扩展或者维护起来会比较麻烦。
而文章中的工具/原料就是我们所说的对象。
当然,拿现代洗衣服来说的话,以面向对象方式来进行处理,就不关注洗衣服的过程,我们不关注洗衣服到底是怎么完成的,怎么洗的,我们只需要关注把衣服放进洗衣机,放上洗衣液,打开开关即可。这些都是通过对象之间的交互完成的
注意:面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景
🐳什么是类?
面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要
开发人员告诉给计算机什么是洗衣机。
上图左侧就是对洗衣机简单的描述,该过程称为对洗衣机对象(实体)进行抽象(对一个复杂事物的重新认知),但是这些简化的抽象结果计算机也不能识别,开发人员可以采用某种面相对象的编程语言来进行描述,比如:Java语言,c++语言等等。
🐳类的定义:
类是用来对一个实体(对象)来进行描述的
这里以一个狗的类进行理解:
1. class Dog{ 2. 3. // 字段(属性) 或者 成员变量 4. public String color;//狗的颜色 5. 6. public String name;//狗的名字 7. 8. 9. // 行为 或者 成员方法 10. public void bark(){ 11. System.out.println(name+"汪汪叫");//狗狗的汪汪叫行为 12. } 13. public void wag(){ 14. System.out.println(name+"摇尾巴");//狗狗的摇尾巴行为 15. } 16. }
在定义类的时候语法上是这样的。
注意:一个文件一个public类,且类名要和文件名一致!!
🐳类的实例化:
定义了一个类,就相当于在计算机中定义了一种新的类型
用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
如:
1. public class Test { 2. 3. public static void main(String[] args) { 4. 5. Dog dog1=new Dog(); 6. dog1.color="白色"; 7. dog1.name="小靖"; 8. dog1.bark(); 9. dog1.wag(); 10. Dog dog2=new Dog(); 11. dog2.color="黄色"; 12. dog2.name="小黄"; 13. dog2.bark(); 14. dog2.wag(); 15. 16. } 17. } 18. class Dog{ 19. 20. // 字段(属性) 或者 成员变量 21. public String color;//狗的颜色 22. 23. public String name;//狗的名字 24. 25. 26. // 行为 或者 成员方法 27. public void bark(){ 28. System.out.println(name+"汪汪叫");//狗狗的汪汪叫行为 29. } 30. public void wag(){ 31. System.out.println(name+"摇尾巴");//狗狗的摇尾巴行为 32. } 33. }
结论:new 关键字用于创建一个对象的实例。
使用 . 来访问对象中的属性和方法。
同一个类可以创建多个实例。
🐳类和对象的理解:
1. 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
2. 类是一种自定义的类型,可以用来定义变量。
3. 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。
4. 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。