面向对象基础

1.类是什么?对象是什么?

一切事物皆为对象,即所有的东西都是对象。准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标示。

A.1 类就是具有相同的属性和功能的对象的抽象集合

‘class’是表示定义类的关键字,定义类有两点需要注意:第一,类名称首字母记得要大写。多个单词则各个首字母大写;第二,对外公开的方法需要用‘public’修饰符。

怎么应用这个类呢?只需要实例化一下就可以了。怎么实例化呢?

A.2 实例就是一个真实的对象 

比如我们都是人,而你我就是人类的实例。实例化就是创建对象的过程,使用new关键字来创建。spring中通过注解来注入对象。

A.3 构造方法,又叫构造函数,其实就是对类进行初始化,构造方法与类同名,无返回值,也不需要void,在new的时候调用。

Cat cat = new Cat();new后面的Cat()其实就是构造方法。

假如在类当中没有写过构造方法Cat(),怎么可以调用呢?

实际上,所有类都有构造方法,如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效。

A.4 方法重载:方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型

注意方法重载时,两个方法必须要方法名相同,但参数类型或个数必须要有所不同,方法重载可在不改变原方法的基础上,新增功能

A.5 下面介绍一下类当中属性和字段的区别:

属性时一个方法或一对方法,也就是我们所说的set get方法所以属性时publc公有的;而字段就是类当中定义的private也就是私有的。

这时候出现了属性是公有的字段是私有的,那么就出现了私有方法和公有方法了,这时候封装就出现了

A.6 封装:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装

封装的好处,第一,良好的封装能减少耦合;第二,类内部的实现可以自由的修改;第三,类具有清晰的对外接口。

当多个类内部出现了非常相似的代码(方法),就出现了继承

A.7 继承:如果字类继承父类,第一、字类拥有父类非private的属性和功能;第二、字类具有自己的功能和属性即字类可以扩展父类没有的属性和功能;第三、字类还可以以自己的方式实现父类的功能(方法的重写)。

非private属性,除了public我们再介绍一个protected修饰符,protected表示继承时字类可以对父类有完全访问权,也就是说,用protected修饰的类成员,只对字类公开,但不对其他类公开。

继承的好处:不用继承的话,如果要修改功能,就必须在所有重复的方法中修改,代码越多,越容易出错,而继承的优点是,继承使得所有字类公共的部分都放在类父类中,使得代码得到了共享,这就避免重复

继承的缺点:那就是父类变,字类不得不变。

A.8 多态:表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来实现。

多态的实例化:Animal animal = new Cat();

在cat中实现animal中的方法,进行了方法的重写之后,animal实现的方法是cat的方法

A.9 接口:interface 接口是把隐式公共方法和属性相结合起来,以封装特定功能的一个集合,一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。申明接口在语法上和申明抽象类完全相同,但不允许提供接口中任何成员的执行方式。还有实现接口的类就必须要实现接口中所有方法和属性。

A.10 集合:

数组的优点:数组在内存中连续存储,因此可以快速而容易的从头到尾遍历元素,可以快速修改元素等等。缺点:创建时必须指定数组变量的大小,在两个元素之间添加元素也比较困难

ArrayList是使用大小可按需求动态增加的数组实现IList接口。

简单来说就是,数组的容量是一开始就固定好的,而ArrayList的容量可根据需要自动扩充

注意了:ArrayList是类型不安全的,因为它可以add各种类型;而数组是类型安全的。

你可能感兴趣的:(面向对象基础)