面向对象-1
类(抽象):具有相同特征(行为/状态)的描述称为类,由对象抽象出来的
对象(详细):是类的具体实例,对具体的事物进行描述,由类实例出来的
例:
比如说吃饭,自己做饭叫做面向过程,点外卖叫做面向对象
我们所看到的万事万物都当作是对象
通过对对象的的分析抽象出相应的类
抽象化:从实例到列 抽取出具有相同特征的信息
实例化:从类到对象 类的详细特征信息
面向对象与面向过程的区别
面向对象:具有继承和多态的特征,将问题分解成各个对象,不是为了实现某一过程,而是描述某个过程是某人做的
面向过程:就是分析出解决方法的步骤,然后函数把这些步骤一一实现,使用的时候依次调用,面向过程没有继承和多态的特征
三大特征
封装
继承
多态
成员变量与局部变量
成员变量:在类中定义的和方法外定义的是就是成员变量
局部变量:除了成员变量以外其他都是局部变量
使用:
- 局部变量没有初始值所以必须初始化否则不能使用
- 成员变量可以不初始化成员变量的字段有初始化值
数据类型 | 默认初始化值 |
---|---|
byte、short、int、long | 0 |
float、double | 0.0 |
char | 空字符(空格),即’\u0000’ |
boolean | false |
引用类型 | null,没有引用 |
对象的基本操作
-
创建对象
- 刚创建出来的对象,字段值是默认的,需要在后期对对象做具体的初始化、}
-
初始化
- 完成对象的成员变量的赋值操作
-
获取字段的值
-
调用对象的方法
类的定义
public class 类{
//成员变量
[修饰符] 类型 变量名
//方法
[修饰符] 返回类型 方法名(参数列表){
方法体
[return]
}
}
static修饰的成员变量和方法都是属于类的,访问的方式是:
- 类.变量名
- 类.方法名
构造器(constructor)
作用:
- 创建对象
使用:
- 构造器没有返回值的类型
- 一个类钟存在一个无参的构造器
- 构造器的名字必须和类名一样
- 如果手动添加了一个有参构造器,此时默认的无参构造器就不存在了,此时要想继续使用要手动添加一个无参构造器
- 默认构造器的修饰符和类的修饰符是一直的(如果类名使用public,那么默认构造器也有public)
注意:
- 在实际开发中骂我们类钟需要一个无参构造器,所以如果手动添加了有参构造器,同时应该再手动添加无参构造器
有参数构造器和无参数构造器的区别
无参数构造器:无参数构造器要创建后赋值
有参数构造器:可以创建对象的同时进行字段的初始化
封装
把字段和方法放在独立的模块中
信息隐藏,尽可能的隐藏功能中的实现细节
注:所有的字段都使用private修饰,所有方法用public修饰
访问修饰符
修饰符 | 内部类 | 同一个包 | 子类 | 任何地方 |
---|---|---|---|---|
private | √ | |||
无 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
private:表示当前类私有的,类访问权限,只能再本类中操作,离开本类就不能直接访问
public:表示公共的,可以再当前项目任何地方访问
JavaBean
bean:豆子
Java最小的单位是类,JavaBean表示一个符合相应规范的类
- 必须用public修饰
- 必须保证有一个无参的构造器
- 字段使用private修饰,每个字段提供提供一个getter和setter方法
访问字段
成员变量
私有化:private
为字段他提供getter/setter方法为外界提供访问的途径
也可以使用有参数构造器来让外界进行访问字段并对字段进行初始化
访问方法
非静态方法(不用static关键字修饰的方法),使用对象调用方法