- 早上查题,背一遍然后检查自己一遍以上
- 中午有时间就背一遍以复习昨天的为主
- 晚上背一遍,第二天中午再看一眼:day+1
- 第四天课间看一遍:day+3
- 第七天课间看一遍:day+6
- 第十五天课间看一遍:day+14
java语言特点:半编译半解释(通过jvm,多个平台,各有自己的jvm)
源代码(.java)->javac -> java字节码(.class)->java ->本地机械码文件(cpu只能运行机械码)
构造器和方法 的区别:
- 构造器也叫构造方法(一方面长得像,功能也像;永远都不是方法)
- 构造器永远没有返回值,不需要写void,(除了权限控制符)也不能有其他的修饰符
各种变量类型的默认值
整数型 | 0 |
---|---|
浮点型 | 0.0 |
字符型 | 空白字符(不是空格),对应整数为0 |
布尔型 | FALSE |
引用型 | null |
隐式转换规则
输入浮点默认是double,需要加大小 f 转
==与equals的区别
== 的作用:
- 可以比较基本类型:比较的是值是否相同
- 也可以比较引用类型:比较的是地址值是否相同
- 比较之前需要保证左右两边操作数类型相同,或者彼此能相互自动转换,否则比较时会报错
equals 的作用:
- equals是方法。
- 仅能比较引用类型:默认情况下,比较的是地址值
- object衍生子类,其子类可以根据情况重写该方法,重写后可以比较对象的属性值是否相同,String代表性地,可以比较字符串
理解封装
隐藏对象的属性和方法的实现细节,只公开对外接口。封装类的属性和方法时会使用private、default、protected、public等访问权限修饰符
与封装有关的访问权限修饰符
private(私有):私有的,不对外公开,类的private成员只能被该类的成员访问。private权限最小,限制类外访问,一般把属性设为private,让其他类不能直接访问属性,达到保护的目的。
default(默认):不使用权限修饰符时(即default)的成员在类内以及在同一个包中的其他类可以访问
public(公有):公有的,最高的访问级别,public成员可以在所有其他类中访问
protected(受保护):同一个包内,各类可以彼此访问该修饰符修饰的属性和方法,但不在同一个包情况下,除子类外其他类都不能彼此访问相应的属性和方法,子类在和父类不同包情况下,虽不能直接访问对应属性和方法,但可以继承这些属性和方法。
继承的实现,优缺点
java语法中一个类只要被extends 就能成为另一个类的父类;一个类只能有一个父类;
如果父类没有无参的构造器,子类则必须调用有参的super才可以不报错;
代码简洁,支持复用
不能任意代码都拷贝,子类语法受到父类的限制,只能使用1次继承,每次子类诞生其实都同时诞生了一个父类对象,子类代码依赖父类代码
子类和父类的代码如何调用
子类实例化生成对象前需要先调用父类构造器,每一个子类对象的生产都伴随一个它的父类对象诞生,通过super()实现父类对象的诞生
super的作用:
第一种作用,当"super." ,代表当前正在运行或者使用或者生产的对象的父类对象(当前对象)。
第二种作用,当"super()",代表当前类的父类的某个构造器
super()只能第一行;和this()不能同时使用
子类对象和父类对象的关系
每一个子类对象都有一个super指向他自己的父类对象,子类自身没有父类的任何代码,只能通过父类对象取获取父类的资源
如何理解多态
多态:不修改代码,调整功能通过添加子类重写方法,调用父类/父接口引用传入子类对象来实现。
1.数据类型可以转换
2.子类是一个完美父类
3.子类可以选择自己的行为
一种事物多种形态
重写和重载
重写和重载的相同点:
1.方法的名字都相同
不同点:
1.位置不同:重载一个类中;重写在父类和子类中,
2.参数列表:重载形参不一致(个数,类型) ;重写形参一致
3.返回值:重载不看返回值; 重写返回值必须相同
4.权限修饰符:重载不看权限修饰符,重写子类方法权限修饰符不小于父类
引用数据类型的转换
引用数据类型部分能转,部分不能转。看继承
如果两个引用类型存在继承关系,编译不报错,如果是子类转父类可以,如果是父类转子类运行报错(除非父类对象原本是子类转的);如果不存在继承关系编译直接报错;