第一章 面向对象的基础认知
面向对象是一种编程思想,它将现实世界中的对象映射到程序中的类和对象。
在Java中,面向对象编程主要体现在以下几个方面:
1、对象
对象是现实世界中事物的抽象,它具有状态(属性)和行为(方法)。在Java中,使用class关键字定义一个类,使用new关键字实例化一个对象。例如:定义一个Person类,表示一个人,有name和age属性,以及说话speak方法。
例如:
定义一个Person类,表示一个人,有name和age属性,以及说话speak方法。
2、类
类是对象的模板,它定义了对象的属性和方法。在Java中,使用class关键字定义一个类,类名通常是大写字母开头的驼峰式命名。
例如:
定义一个Car类,表示一辆车,有品牌brand属性,和行驶run方法。
3、封装
封装是指将对象的状态(属性)和方法(属性)封装在对象内部,外界无法直接访问。在Java中,使用访问修饰符(private、default、protected、public)来控制属性和方法的访问权限。Java的权限修饰符有优先级高低之分。以下是它们的优先级顺序,从最低到最高:
private:最低的优先级,用于定义私有成员和方法。
default(没有显式使用任何修饰符):默认访问控制,用于没有显式声明访问修饰符的成员和方法。
protected:用于定义受保护的成员和方法,可以被同一个包中的任何其他类和子类访问。
public:最高的优先级,用于定义公共成员和方法,可以被任何其他类访问。
在重写或重载方法时,子类的方法不能具有比父类更严格的访问控制。 例如,如果父类的方法是protected,则子类重写该方法时只能使用protected或public,不能使用private或default。
此外,在Java中,private和default修饰符不具有跨包访问性,而protected和public修饰符可以跨包访问。
对类中的成员变量进行封装在Java中,可以通过封装来控制对成员变量的读写访问。以下是对成员变量进行读写封装的步骤:
定义一个类,并定义成员变量。
在类中使用getter方法来读取成员变量的值。
在其他类中使用该类,并通过getter方法获取成员变量的值。如果需要修改成员变量的值,则使用setter方法。
定义:
使用
4、继承
继承是指子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法或者重写父类的方法。在Java中,使用extends关键字实现继承。
例如:定义一个Animal类作为父类,定义一个Dog类作为子类,Dog类继承了Animal类的属性和方法。
5、多态
多态是指同一个方法在运行时可以根据对象的实际类型来执行不同的代码。在Java中,通过继承和重写实现多态。例如:定义一个Shape类作为父类,定义一个Circle类和一个Rectangle类作为子类,它们都重写了Shape类的draw方法。
介绍类与对象
世间万物皆对象,类是对象的模板
类和对象的关系:类是抽象的概念,是对象的模板
对象是具体的事物,是类的具体实例
面向对象编程:面向对象编程是利用编程方式体现出现实中类和对象
从已有现实的类中定义程序中的类(Class)从类(Class)创建(实例化)具体的对象(Objet)
Java创建类的语法:public class 类名 { //类的内容} 例如:
成员变量
成员变量就是隶属于对象的变量
成员变量用于保存对象的静态特征
同类型的不同对象拥有相同的成员变量,但彼此独立
方法的作用
什么是方法:方法(Method)是用于完成特定功能的整段代码。
例:
运行结果:
包的命名规范:
包采用"逆域名法"进行命名,用”.“分割,单词全部小写
标准格式:域名后缀.组织机构名.项目名[.模块名].包的职能
例:
访问修饰符
Java创建类的语法:
public class 类名{}
访问修饰符用于控制类、成员变量、方法的访问范围
ArrayList列表类的使用ArrayList是Java内置的数据集合,用于存储多个数据
ArrayList是数组替代品,提供了更多的数据操作方法ArrayList几乎是每一个项目中必用的类
运行结果:
[添, 加, 元, 素]
总结:
类和对象:类是对象的模板,定义了对象的状态和行为。对象是类的实例,是类的具体实现。
封装:通过访问修饰符将类的属性和方法隐藏起来,外部无法直接访问,提高了代码的安全性和可维护性。
继承:通过extends关键字实现继承,子类继承了父类的属性和方法,并可以添加自己的属性和方法。
多态:通过接口和继承实现了多态,同一个方法在运行时根据对象的实际类型来执行不同的代码。