一、面向对象的初步认识
1、什么是面向对象?
面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。而Java就是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。
2、面向过程和面向对象的区别?
以洗衣服为例
(1)面向过程(关注洗衣服的过程): 把衣服放进一个容器里面,倒上洗衣液——放水——搓衣服——拧干——过水——拧干——再过水——拧干
(2)面向对象(利用对象来形成结果): 对象:人,洗衣机,衣服,洗衣液
洗衣服的过程是:人将衣服放洗衣机里面,然后倒入洗衣液,开动洗衣机,洗衣机自动就会洗好衣服并且甩干。
整个洗衣过程主要是由这4个对象之间交互完成的,并不需要关心衣服是怎样洗好的,是怎样弄干的,要的只是对象之间交互完成后的一个结果。
二、类的定义和使用
面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4c5e56dfec2e4ad7b54ac4c78c01e2b8.png)以上便是对洗衣机的简单描述,该过程称为对洗衣机对象(实体) 进行抽象(对一个复杂事物的重新认知),但是这些简化的抽象结果计算机也不能识别,开发人员可以采用某种面相对象的编程语言来进行描述,比如:Java语言。
那么Java语言是如何对洗衣机进行简单的描述呢?这就要用上Java中的类了。
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。
以洗衣机为例:它是一个对象,在Java中可以看成是一个类。
它的属性有:产品品牌、产品型号、洗涤功率…
它的功能有:洗衣,烘干、定时…
实现以上代码,计算机便已经基本认识到了这个“洗衣机”了。这个洗衣机有品牌、有型号,有着洗衣、脱水、定时的功能。
3、类的实例化(用类类型创建对象的过程,称为类的实例化)
虽然计算机已经初步认识到“洗衣机”这个对象了,但这只是一个简单的概念,并不能做出什么事情。就相当于建房子,只有一个草图,并没有真材实料地进行建造。那么该如何利用这个草图来建造房子呢?那就要进行类的实例化了。
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型,比如上述的:WashingMachine类,就是自定义的一个新的类型。有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。值得注意的是:类是对该对象进行一个简单的描述,而类实例化后才会真正产生这个对象(才会在堆中开辟空间)。
值得注意的是:
1、main方法是一个程序的入口,所以对象的实例化一般都是在main方法里面进行的。
2、一个类可以实例化出多个对象,每次实例化一个对象便会在对堆上面开辟一段新的空间
3、使用 . 来访问对象中的属性和方法
整合以上知识,用Java代码实现洗衣
public class WashingMachine {
String brand; // 品牌
String type; // 型号
public void washClothes(){ // 洗衣服
System.out.println(brand+"洗衣机"+"在洗衣服");
}
public void dryClothes(){// 脱水
System.out.println(brand+"洗衣机"+"在脱水");
}
public void setTime() { // 定时
System.out.println(brand+"洗衣机"+"定时");
}
public static void main(String[] args) {
WashingMachine w1 = new WashingMachine();
WashingMachine w2 = new WashingMachine();
w1.brand = "海尔";
w1.type = "A";
w2.brand = "小天鹅";
w2.type = "B";
w1.washClothes();
w2.dryClothes();
}
}
这里补充几点:
- 一般一个文件当中只定义一个类
- main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
- public修饰的类必须要和文件名相同
- 每一个文件只存在一个public修饰的类
以上便是我要讲解的内容啦!希望能对大家有所帮助!!!