在面向对象的编程中,系统中的每个实体都被视为一个对象、
这个对象包含了数据和操作数据的方法。
他有五个基本概念
- 类(Class):类是一种抽象的数据类型,它定义了对象的属性(数据)和行为(方法)。类是对象的模板或蓝图,可以创建多个具有相同属性和方法的对象。
- 对象(Object):对象是根据类创建的实例。每个对象都有自己的状态(属性值)和行为(方法),并且可以与其他对象进行交互。
- 封装(Encapsulation):封装是指将数据和操作数据的方法封装在一个单独的实体中(即类),外部无法直接访问和修改对象的内部状态,只能通过对象提供的公共接口来访问和操作数据。
- 继承(Inheritance):继承是指一个类可以继承另一个类的属性和方法,从而避免了重复编写代码。子类可以扩展父类的功能,并且可以重写或添加新的方法。
- 多态(Polymorphism):多态是指同一种操作可以作用于不同的对象,并且可以根据对象的类型执行不同的操作。通过多态,可以实现代码的灵活性和可扩展性。
生活举例:
假设我们要创建一个名为Girlfriend的类(Class),这个类代表所有女朋友的共同特征和行为。
类(Class):
在OOP中,类就像是一个蓝图或者模板,描述了女朋友这个“事物”的基本属性(状态)和行为(方法)。例如,Girlfriend类可能包含如下的属性:姓名(name)、年龄(age)、身高(height)、体重(weight)等属性,以及诸如打招呼(greet)、聊天(chat)、送礼物(giveGift)等方法。
对象(Object):
根据Girlfriend这个类创建出的具体实例就是一个对象,例如,girlfriendXiaomei。她是Girlfriend类的一个具体化,有自己的特定属性值,如姓名是“小梅”,年龄是25岁,身高是1.65米等。当我们调用girlfriendXiaomei.greet()时,实际上是执行“小梅”打招呼这个行为。
封装(Encapsulation):
在Java中,可以通过private关键字保护对象内部的状态(属性),外部不能直接修改,必须通过getter和setter方法进行访问或设置。例如,Girlfriend类可以提供getName()和setName(String name)这样的方法,以保证对姓名属性的安全访问。
继承(Inheritance):
如果我们需要定义不同类型但又共享某些特性的女朋友,比如SmartGirlfriend类可以从Girlfriend类继承,额外增加“读书”(readBook)等智能型女朋友特有的行为。
多态(Polymorphism):
不同类型的女朋友(不同的类或者类的子类实例)可以响应同样的消息(方法调用),但产生不同的效果。例如,所有的女朋友对象都可以执行chat()方法,但是不同性格的女朋友在聊天时的内容和方式会有所不同。