1. 类和对象
-
类为多个同种对象的建模,模型里包括 成员变量+成员函数;
-
使用类新建一个对象,则实例化拥有了一个具体模型;
-
对象初始化时,成员变量初始化为0;
2. 属性
属性用属性关键词修饰;没有修饰的成员函数,只有在包内部可以访问
public :
任何人都可以访问;
一个.java文件是一个编译单元,多个类,只有一个类可以是public,文件名与pulic类的名字相同
private:
只能修饰成员变量和成员函数 只能这个类内部访问
类内部只类的成员函数和定义初始化;
这个限制是针对类的 而不是针对对象的—降低类之间的耦合度
static:
类变量,不属于任何一个对象,属于类,在类装载时进行一次初始化;
3. 对象容器
- 顺序容器
- 能按顺序存放对象,容量按需可变,呈现为对象;
- 容器类型:ArrayList ;HashSet;HashMap;
- 对象数组中的每个元素都是对象的管理者而非对象本身;
- 数组容器
- 数组容器:每一个小容器构成的一个数组容器;只对格子,而不是对象元素;赋值:a[i]=""+i;
- 对象数组中的每个元素都是对象的管理者而非对象本身;
- for 循环中,
- 集合容器
- HashSet: 等同数学中的集合,不重复元素、无序;
- System.out.println(s), 直接输出,只要是public string to string 的toString函数;
- 散列表
- 散列表:类似硬币,一个数字对应一个英文单词;哈希表是一对值,key-值,key唯一;
4. 继承与多态
- 继承 extends 父类private修饰,则子类能继承但不可访问;super()
- 最近原则,谁的成员函数访问谁的变量
- java的对象变量是多态的(相近类型);可以保存父类对象(声明类型)和子类对象(动态类型),即动态电话,多态。
- 向上造型cast:子类当做父类;子类的对象可以赋值给父类的变量;java中不存在对象对对象赋值;父类对象不能赋值给子类变量;
- 造型 ()在值前面;当做这种类型来看待,本质不变,而int类型转换是改变值为int;
- 通过对象变量调用函数时,调用哪个函数这件事叫做绑定;动态绑定–根据变量的动态类型决定;静态绑定–根据变量的声明类型决定;
- 子类和父类存在名称和参数表完全相同的函数,则这对函数构成覆盖关系;调用由变量当时所管理的对象所属类的函数
- 类型系统:object–root,单根结构,所有的类都集成自object,不用写extends ,默认;