面向对象
1.编程语言的发展史
机器语言——>汇编语言——>高级语言
2.面向程序设计
核心:对象,对象的出现又是基于类,
三大特征:封装,继承,多态
类:对一类具备相同特征(属性,行为)事物的一种抽象描述
通常由属性和行为构成,属性又叫实例变量和成员变量(全局变量);行为在程序中以方法
修饰符 class 类名称{
//属性的声明
//方法的声明
}
属性(实例变量、成员变量、全局变量)
修饰符 数据类型 属性名 = 初始值;
全局变量和局部变量的区别:
- 局部变量一般定义在方法或者语句块中,使用范围只是在声明区域。一般用于存储临时数据,所以局部变量也叫临时变量。
- 全局变量一般与实例(对象)相关,定义在类结构中,使用范围为当前类的一类实例方法(全局)
- 局部变量在使用前必须先赋值,全局变量在对象创建时会自动由编译器赋值,
方法:(实例方法)
行为通常无法想属性一样以变量的形式存在,因为行为是一种动态的特写,这个动态信息需要一个过程来实现,因此行为在java中的表现形式为方法。
对象:
java中:万事万物皆对象
对象就是一个类的实例,类是一个模板,以类为模板可以创建对象,语法如下:
类名称 变量名 = new 类名称();
对象创建的作用:使用具体的对象调用自身的属性和方法
构造器:(构造方法、构造函数)
在对象创建的时候都会使用new
关键字后面跟随类名
来完成整个对象的创建过程,在java中new
关键字之后跟的内容一般称之为构造器
,构造器的声明方式与方法非常接近,一般也认为构造器是一种特殊的方法。
作用:初始化对象、为当前的实例、对象变量赋值、资源开启等等
访问修饰符 类名称 (参数列表){
//执行体
}
构造器的特点:
- 构造器的名称与类名一样
- 构造器不能存在任何类型的返回值(包括void)
- 任何一个java类中都存在一个默认的无参构造器
- 一旦在类中创建带参数的构造器,则默认的无参构造器将被覆盖
- 一个类可以存在多个构造器,必须保证每个构造器的参数:类型,个数,顺序,任意一项不一致(方法的重载)
3.方法重载(Overload)
重载是java多态的实现策略,一个方法多种表现心态,重载即一个类或者接口中存在多多个同名的方法,但是这些方法参数必须不相同(个数、类型、顺序任意一项)
注意事项:
方法的重载与返回值无关
重载的构成必要条件:
- 在同一个类或者接口中(存在继承或者实现关系的父子类)
- 方法的名称必须相同
- 方法参数:个数、顺序、类型,任意有一项不一致
4.package(包)&import
关键字,将不同模块的功能代码通过package组织到不同的目录中分门别类的存储,包还可以标识软件的唯一性,使用域名倒置的写法。
- 包的定义一般在整个类文件的第一行
- 一个类或者接口只属于一个package
使用import
关键字导包,一个java程序会涉及到很多的不同的软件包,并且某个包需要使用到其他包中的类或者接口,此时就需要将其他的包中的类或者接口导入到当前的类中,这个过程就叫导包。
5.访问修饰符
访问修饰符的范围
public
:所有情况都可以访问到protected
同包,挎包子类可以调用- *
defualt
*同包下访问 private
只能在本类中访问
关于修饰符的注意事项:
- 类只能使用
public
或者default
修饰(内部类除外)- 属性通常使用
private
修饰,除非有些属性需要被子类重用,会使用protected
- 局部变量不可使用访问修饰符
- 方法一般使用
public
修饰符,也有些只为当前类服务的功能方法使用private
- 构造器一般使用public修饰,在一些特殊场景(单例模式)也会间到构造器使用
private
修饰
6.封装
信息隐藏
这指的是对象的一种保护机制,有利于数据的完整性,增强代码的可维护性
封装实现:
通常是将类中的属性私有化,使用private修饰,针对这个属性提供公开的方法进行访问
setter/getter方法
针对与属性提供的公开一般都有固有的写法,通常就是getter/setter
方法,特点是:
- 方法前缀使用set或get开头
- 后缀一般是属性名称首字符大写
- 对于boolean类型的get方法一般命名为isXXX
封装的好处
- 信息隐藏,保障数据安全
- 提高的程序的内聚性,降低耦合度
- 提供了灵活的成员访问方法
- 提高了代码的可重用性