面向对象的概念
面向过程:
针对开发中程序遇到的每一个问题,进行单个的编码解决。
面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性
面向对象:
只对结果,不管实现的细节。
是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,增强可维护性
面向对象的三大特征:封装,继承,多态。
java面向对象五大特征:封装,继承,多态,抽象,接口。
总结:面向对象最终的目的是在保证功能实现的基础上,方便后期程序的维护。
类与对象
类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个体的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性值来区分不同对象,实实在在存在的。
总结类和对象的区别:类是对象的模板,对象是类的实例化。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。
方法的定义:
js中 | java中 |
function 函数名(参数列表){代码块;return 返回值;} | [权限修饰符] public [static] 返回值类型/void 方法名(参数列表){代码块;return 返回值 ;} |
方法和属性的调用:对象名.方法名(); 对象名.属性名;
方法的三要素:
返回值,方法名,参数列表
方法重载:
在一个类中可以有很多个相同名字的方法,并且这些方法中参数列表不同(参数个数不同,顺序不同,类型不同),这就是方法重载
特点:
- 函数/方法名相同
-
参数列表不同(参数个数不同,顺序不同,参数类型不同)。如果方法名相同,参数列表也相同,此时虚拟机就懵逼了,不能分辨到底调用哪一个方法。
构造方法:
构造方法 ,是一种特殊的方法。主要用来在创建对象时初始化对象
构造方法声明:
方法名跟类名要一致,没有返回值,也没有void
构造方法特点
-
构造方法也是一个特殊的方法,new的时候调用
-
构static的特点**
所有的静态(静态变量和静态方法)都属于类 (全局)。造方法的方法名跟类名一致
-
构造方法没有返回值 也不能书写void 。
-
如果不自己写构造方法,系统会默认给一个无参构造。
-
只要自己写了构造方法,无论是有参还是无参,默认的那一个就没有了。
-
一般建议如果写有参构造,直接将无参构造自己写出来——很多习惯就用无参 。
推荐在定义类时,直接把有参和无参构造都写出来。
-
构造的作用就是创建对象/成员变量初始化:给属性赋值。如果显示赋值以系统显示赋值为主,如果没有构造会默认赋值 引用类型就是默认为null 数字为0 boolean类型默认 false char "\u000"
-
构造方法可以重载:构造方法可以写很多个——方法重载(参数列表不同)
static关键字:
static 静态的 修饰关键词
static的特点
所有的静态(静态变量和静态方法)都属于类 (全局)。
权限修饰符
public 公共的
主要修饰成员变量和方法
作用:权限的设置,保护属性不被外界侵犯。
权限 | 同一类 | 同一包 | 不同包的子类 | 所有类 |
---|---|---|---|---|
public | 允许 | 允许 | 允许 | 允许 |
protected | 允许 | 允许 | 允许 | 不允许 |
默认 | 允许 | 允许 | 不允许 | 不允许 |
private | 允许 | 不允许 | 不允许 | 不允许 |
public: 公共的 一个项目中都可以。 例如 公共wc。
protected 受保护的 例如 小区里的wc。
默认 default friendly
private 私有的 例如 自己家的wc。