面向对象的三大主线
- 类和类的成员
- 属性
- 方法
- 代码块
- 构造器
- 内部类
- 面向对象的三大特征
- 封装
- 继承
- 多态
其他关键字
类 对一类事物的描述抽象的
- 对象 实际存在的个体
面向对象主要是类的设计和类成员的设计 类的成员: 1.属性 (成员变量 field) 2方法 (成员方法 method)
2. 类的创建和实例化
属性和局部变量的区别
- 相同点
- 申明格式相同
- 都是先申明后使用
- 都有自己的作用域
- 不同点
- 在类中声明位置不同
- 属性写在类内方法外
- 局部变量 形参、代码块 、方法内、 构造器
- 权限修饰符不同
- 属性在声明是可指定其权限修饰符 public private protected 缺省
- 局部变量没有
- 初始化值
- 局部变量没有默认初始化值 调用前必须显式赋值
- 属性有
- 内存中加载的位置不同
- 局部变量在 堆空间中
- 属性在栈空间中(非static)
类和对象的创建和执行有哪三步
- 创建类
- 创建类的对象
- 调用对象的结构(属性或方法)
3. 匿名对象
- 理解:创建对象时,没有给对象显式的赋值
- 特征:只能调用一次
- 使用:—-
4. java类的方法
1. 方法的重载
- 概念
在类中可以存在多个同名的方法,只要他们参数数量或类型不同即可
- 特点
和返回值无关,只看参数列表,参数个数和参数类型
- 实例
两同一不同 类、方法名相同 参数个数或类型不同
2. 可变形参方法
- 格式:
public void test(String… str) {}
- 参数可以为0个
- 和其他同名方法构成重载
- 可变个数形参必须声明在末尾
-
3. 方法的值传递机制
java 方法参数传递的机制只有一种 值传递
- 基本数据类型变量保存的是数据的值
-
4. 递归方法
自己调用自己
- 递归是一种隐式的循环重复执行某段代码
- 不能出现死循环
5. 面向对象封装隐藏
1. 封装性
1. 封装性体现
将类的属性私有化(private),提供公共方法(public)来获取(getXx)或设置(setXx)属性的值
2. 不对外暴露私有方法
3. 单例模式
2. 权限修饰符(四种)
- private
- 缺省
- protected
- public | 修饰符 | 类内部 | 包内部 | 不同包子类 | 同一个工程 | | :—-: | :—-: | :—-: | :—-: | :—-: | | private | yes | | | | | 缺省 | yes | yes | | | | protected | yes | yes | yes | | | public | yes | yes | yes | yes |
- class的修饰符 只能是public 或者缺省
- default类只能被同一个包的类访问
- 四个权限修饰符号 可修饰 属性 方法 构造器 内部类
3. 构造器
1. 构造器的作用
- 创建类的对象
-
2. 构造器的细节
修饰符 类名 (参数)
- 可以定义多个构造器
- 多个构造器之间形成重载
- 如果没有显式定义构造器 系统提供无参构造器 如果定义了有参构造器 系统就不再提供
-
4. java Bean
1. javabean 条件
类是公共的
- 有个公共的无参构造器
-
5. java this
1. this关键词使用
可修饰 属性、方法、构造器
- 修饰属性和方法时可理解为当前对象
- 在类的方法中 可以使用 this.field this.方法 通常省略,如果形参和属性名相同是必须显示的使用this
- this.调用构造器 可以使用 this() this(参数)
-
6. package import
为了更好的管理java的类
- 使用package 声明类或者接口所属的包 声明在源文件的首行
- 遵循标识符的命名规范、简明知意
- com.dong.controll 没点一次 代表一层目录
- 同一个包下不能命名同名类或者接口
- 我们可以使用import 导入指定包下的类