1 类与类之间的关系.
关联关系:类A与类B的实例之间存在的关系.(如:一对一一对多 多对多等单向双向的关联关系)
依赖关系.类A访问类B的服务(类A访问类B的属性或方法或者负责实例化类B).
聚集关系:类A为整体类类B为局部类.(整体和部分之间的关系).
继承(泛化)关系:类A继承了类B。(类之间的继承关系)
实现关系:类A实现了B接口。(类与接口之间的关系).
2 Java的内存分配空间
局部变量 (栈)
对象(堆中)
类的静态变量和方法(方法区)
3 简单变量和引用变量
在简单变量中存放的是数值。
在对象变量中存放的是引用(地址)
4 swtch语句需要注意的地方.
switch( exp){
//表达式exp的返回值类型必须是这几种类型之一:byte,char,short,int
case value1:
statement1;
break;//break不能省略否则第一个匹配结果后下面的全部都执行了
case value2:
statement2;
break;
............
defalut:
default_statement; }
4 基本类型(数值类型)的自动转换规则
自动类型转换规则:
操作数1类型 操作数2类型 转换后的类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double
也就是说两个数值类型的数值进行运算的时候,首先假如有一个数为double类型的则另一个数也提升
为double类型数进行运算,运算结果为double类型的.
假如有一个数为float类型的则另一个数也提升为float类型数进行运算,运算结果为float类型的。
假如有一个数为long类型的则另一个数也提升为long类型数进行运算,运算结果为long类型的.
其他的都先转化为int类型在进行运算,运算结果为int类型的.
例如:
int i = 2;
double d = 2.0;
float f = 1.2f;
double sum = d+f;//正确 f提升到double类型进行运算
float sum = d+f;//错误,运算结果为double类型,需要强制类型转换
short s = 2;
short ssum = s+3;//错误 都提升到int类型计算,运算结果为int类型
int a = 3;
double d = 1.25;
System.out.println( 2>3 ? d : a);//输出结果3.0,因为1.25为double
类型的根据提升规则所以输出结果3.0
5 访问控制修饰符
1 private 本类可见//属性尽可能的私有
2 (default) 默认的本包可见
3 protected 本包可见,其他包中子类可见
4 public 都可见
6 new操作符的作用
1 在堆中为对象分配内存空间,将对象的实例变量自动初始化为默认值
2 如实例变量在声明的时候被显示的初始化那就把初始化值赋给实例变量
3 调用构造方法
4 返回该对象的引用