Java是一门纯面向对象的语言(Object Oriented Program, 简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。
用面向对象的思想来涉及程序,更符合人们对于事物的认知,对于大型的程序设计,扩展和维护都非常友好。 (核心:找对象->面向对象->使用对象)。
面向对象和面向过程都是用来组织和处理程序中的数据和功能的方法,它们之间的主要区别在于如何组织和管理代码
面向对象(Object-Oriented):
- 面向对象编程将问题分解成一系列的对象,每个对象都是一个独立的实体,具有自己的属性和方法,对象之间通过交互来完成任务
- 程序中的数据和功能被封装在对象中,使代码更加模块化、灵活和易于维护
- 面向对象编程强调代码的重用性,可以通过继承和多态等特性,使得代码更加可扩展
- Java、Python、C++等编程语言都支持面向对象编程
- 面向过程可以看作人用洗衣机洗衣服的过程,总共有四个对象:人,水,衣服,洗衣机。整个过程主要是这四个对象之间交互完成的,人不需要关心洗衣机是如何洗衣服的,是如何甩干的。
面向过程(Procedural-Oriented):
- 面向过程编程将问题分解成一系列的过程(函数),每个过程执行特定的功能喵~ 程序按照过程的顺序依次执行
- 程序中的数据和功能被分散在各个过程中,代码可能较为冗长和重复,不太容易维护和扩展
- 面向过程编程比较直观和简单,适用于一些简单的任务和算法实现
- C语言通常被认为是面向过程编程的代表
- 面向对象可以看作传统人手洗衣服的过程,要经过许多流程才能洗好衣服,少了任何一个环节都不行。
在实际编程中,我们可以根据问题的复杂程度和需求选择合适的编程范式
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观?),哪些功能(干什么?),描述完成之后计算机就可以识别了。
比如:洗衣机,它是一个品牌,在java当中可以看作为一个类别。
属性:产品品牌,型号,质量,颜色,尺寸等。
功能:洗衣,烘干,除菌等。
在java中定义类时需要用到class关键字,具体语法如下:
//创建类
class ClassName{
field; //字段(属性)或者成员变量
method;//行为或者成员方法
}
class为定义类的关键字,ClassName为类的名字,{}为类中的主体。
类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类的成员变量。方法主要用来说明类具有哪些功能,成为类的成员方法。
在之后,我们会学到类中包含的五种东西:1.成员变量,2.成员方法,3.构造器,4.代码块,5.内部类。
例:构建一个洗衣机类
public class WashMachine {
public String bread;//品牌
public String type;//型号
public double weight;//重量
public double length;//长
public double width;//宽
public String color;//颜色
public void washClothes(){//洗衣服
System.out.println("洗衣功能");
}
public void dryClothes(){//脱水
System.out.println("脱水功能");
}
public void setTime(){//定时
System.out.println("定时功能");
}
}
采用Java语言将洗衣机类在计算机中定义完成,经过javac编译之后形成.class文件(每个类都会形成一个字节码文件),在JVM的基础上计算机就可以识别了。
注意事项:
1.类名采用大驼峰定义
2.成员前写法统一为public,后面统一解释
3.此处写的方法不带static关键字,后面解释
4.建议一个类放在一个java文件夹中
5.main方法所在的类一般要用public修饰
6.public修饰的类必须要与文件名相同(因此不要轻易修改类的名称)。
定义了一个类,就相当于在计算机中定义了一个新的类型, 与int,double等类似,只不过它们是java语言自带的内置类型,而类是用户定义了一个新的类型,比如上述的洗衣机类。它们都是类(一种新的定义类型),有了这些定义类型后,就可以使用这些类来定义实例(或称对象)。
用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
public class test4 {
public static void main(String[] args) {
WashMachine wash1 = new WashMachine();//通过new来实例化对象
wash1.brand = "牛逼牌";
wash1.type = "XP180";
wash1.washClothes();
wash1.dryClothes();
WashMachine wash2 = new WashMachine();//可以实例化多个对象
wash2.brand = "王牌对王 牌";
wash2.type = "XP150";
wash2.washClothes();
wash2.dryClothes();
}
}
注意事项:
1.使用new关键字以创建一个对象的实例
2.使用. 来访问一个对象的属性和方法
3.同一个类中可创建多个实例(一个类实例化多个对象)
1.类只是一个模具一样的东西,用于对一个实体进行描述,限定了类有哪些成员
2.类是一种自定义的类型,可以用来定义变量
3.一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量
4.打个比方,类实例化出的对象就像现实中使用建筑设计图建造出房子,类就像设计图,只管设计出需要什么东西,但没有实体化的建筑存在,同样类也是个设计,实例化出的对象才能存储实例化数据。