面向对象的基本概念
面向对象
java语言是一种面向对象的的语言 要使用java进行面向对象的编程 首先要建立面向对象的思想 面向对象的三大特征 封装 继承 多态
对象
对象是用来描述客观事物的一个尸体 用面向对象的方法解决时要对现实中的对象进行分析和归纳
类
类是具有相同属性和方法的一组对象的集合 类定义了对象将会拥有的特征和行为
定义类
[访问修饰符]class 类名{
//类的内部具体代码
}
访问修饰符比如public private 等是可选的 class是声明类的关键词 按照命名规范 类名首字母大写
属性
[访问修饰符]数据类型 属性名
访问修饰符是可选的 除了访问修饰符之外 其他语法和声明变量类似
方法
对象执行操作的行为称为类的方法
[访问修饰符]返回方法 方法名称 (参数类型 参数名 1, 参数类型 参数名2------){
}
访问修饰符是可选的 返回类型可以是void 再顶i方法是 返回类型为void时表面没有返回值 方法体中不必使用return关键字返回具体数据 但可以永return退出方法 返回类型如果不是void 资方发展一定要使用 return关键字返回对象类型结果 否则程序会出现编译错误
创建对象
类名 对象名 =new 类名();
new是关键字 左边的类名为对象的数据类型 右边的类名()称为类的构造方法
使用对象
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
成员方法
带参数的方法work()方法课接受用户输入内容 创建work()方法是定义的参数叫形式参数 简称形参 调用方法是传入的参数叫做实际参数 简称实参
方法重载 是指在一个类中定义多个同名的方法 但要求每个方法具有不同的参数类型或者参数个数 。
方法重载的特点
在一个类中 方法名相同 参数的个数或类型不同 方法的返回值不能作为判断方法直接是否构成重载的依据
方法重载其实是对原有的方法进行一种升级 可以根据参数的不同采用不用的实现方法 而且不需要编写多个名称 简化了类调用方法的代码
成员变量的作用域
类中的属性 也就是直接在类中定义的变量称为成员变量 他定义在方法的外部
成员变量和局部变量的区别
作用域不同 局部变量的作用域仅限于定义它的方法 其他方法外无法访问它
初始值不同 对于成员变量 如果在类定义中没有给他赋初始值 java会给他一个默认值 基本数据类型的值为0引用类型的值为null 但java不会给局部变量赋予初始值 因此局部变量必须要定义并赋值后在使用
在一个方法中不允许有同名的局部变量 在不同的方法中可以有同名的局部变量
将举报变量可以和成员变量同名 并于在使用时 局部变量有更高的优先级
构造方法
在java中档类创建一个对象是会自动调用该类的构造方法 构造方法分为默认构造方法和代餐数的构造方法
构造方法的定义
构造方法的主要作用是进行一些数据的初始化
[访问修饰符]方法名([参数列表]){
}
构造方法没有返回值 默认构造方法没有参数 因此参数列表可选 构造方法与类名相同
封装概述
java中封装的是指就是将类的专改信息隐藏在类的内部 不允许外部程序直接访问 二十通过该类提供的方法来时间和对隐藏信息的操作和访问
封装反映了事物相对独立性有效避免了外部错误对此象的影响并且对能对对象使用者由于大一产生的错误操作起到预防作用同样面向对象编程提倡对象之间实现松耦合关系
封装的好处在隐藏类的实现细节 让使用者只能通过程序员规定的方法来访问数据也可以方便的加入存取控制修饰符来限制不合理操作
封装的步骤
1修改属性的可见性 将person类中的属性有public 修改为private即可
2 设置setter/getter()方法 可以手动添加setter/getter()方法也可以使用组合键ctrl+shift+s由系统添加
3设置属性存取限制 堆属性设置合法性检查 需要在setter方法中进一步利用条件判断语句进行赋值限制
包的概念
java中的包机制也是封装的一种形式
包主要有3个方面的作用
包允许将类组合成较小的单元 易于找到和使用相应的类文件 防止命名冲突 java中只有在不同的包中的类才能充满 不同的管理员命名同名类在所难免 有包更容易管理 包允许在更广的范围内保护类数据方法根据访问规则包外有可能不能访问该类
包的定义
package 包名;
package是关键字 包的声明必须是java源文件中第一条肥猪是性语句 二期一个源文件只能有一个包声明语句 设计把偶要和文件系统结构相对应 在命名包是要遵守一下编码规则
一个唯一的报名前缀通常是全部小写的ASCII字母 并且是一个顶级域名 com edu gov net org 通常使用组织的网络域名逆序
使用访问修饰符
是使用访问修饰符类成员
类的访问修饰符
修饰符 作用域 | 同一包中 | 非同一包中 |
public | 可以使用 | 可以使用 |
默认修饰符 | 可以使用 | 不可以使用 |
类成员的访问修饰符
修饰符 作用域 | 同一类中 | 同一包中 | 子类中 | 其他地方 |
private | 可以使用 | 不可以使用 | 不可以使用 | 不可以使用 |
默认修饰符 | 可以使用 | 可以使用 | 不可以使用 | 不可以使用 |
protected | 可以使用 | 可以使用 | 可以使用 | 不可以使用 |
public | 可以使用 | 可以使用 | 可以使用 | 可以使用 |
static关键字
一个类可以创建n个对象 如果n个对象某些数据需要公用 就需要使用static关键字修饰这些诗句
用static修饰的属性称为静态变量或者类变量 没有使用static修饰的属性称为实例变量