1.封装
封装:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为相结合,形成一个有机的整体.也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员
1.1package
package:软件包机制
限制的是编译之后的class文件的保存目录,和源文件无关
eclipse中,源文件也必须在这个目录中,这是eclipse的问题,和package无关
而java中的package只是规定class文件
1.主要为了解决命名冲突问题
2.package语句必须出现在java源文件的第一行
3.一般采用公司域名倒叙的方式
4.带有package语句的java文件,应该这样编译
javac -d 生成路径 字符编码 源文件路径
javac -d ./ -endcoding utf-8 xxx.java
-d : disk 磁盘
./: 代表当前目录
5.运行
java 包名.类名
1.2 import
1.3 权限控制
2.继承
2.1 是什么
继承:就是在已有的类中派生出新的类.新的类能够吸收父类已有的属性和行为,并且还能扩展自己的属性和行为
特点:java中只支持单继承,不支持多继承,这样使得java的继承体系
一个类只能有一个父类,但是一个类可以有很多子类
继承关系具有传递性
private私有化程序,方法(包括构造方法)都不能被继承
2.2 能做什么
解决什么问题:提高代码的复用,提升开发的效率
一个类中若果没有显示继承另一个类,那么该类默认继承Object
java.lang.Object 是java提供的类的根类,也就是祖宗
2.3 怎么用
语法:子类extends父类
3.super
3.1 是什么
代表父类型的特征,可以理解为父类对象,但是其实不是的
子类中,通过super来标识父类,通过this来标识自己
3.2 能做什么
和this一样,不能在静态上下文中使用
功能:1.用在构造方法或者成员方法中,区分子类和父类同名字的方法和变量
2.用在子类构造方法中,嗲用父类的构造方法
super(参数); 必须出现在子类构造方法第一行
this(参数); 必须出现在构造方法的第一行
所以super和this不能童女士出现
如果子类构造方法的第一行,没有出现this(参数) ;也没有super(参数) ;则默认有个super() ;调用父类的无参构造
3.3 怎么用
3.4 注意
1.this(参数) ;和super(参数) ;不能同时出现
2.如果没有this(参数);也没有super(参数) ;,默认构造方法的第一行会有super()调用父类的构造方法
3.如果构造方法私有化,则该类不能被继承,因为子类在创建构造方法的时候,默认第一行有个super
()方法,去调用了父类的构造方法,但是人家私有化了,不给你
finla修饰的类也不能被继承
4.方法重写(Override) 方法重载(Overload)
4.1 什么时候需要用到方法重写:
当父类的功能无法满足子类的需求的时候,子类需要根据需求对方法进行扩展重写
方法重写只能用于成员方法
4.2 重写的必要条件
1.必须有继承关系的体系中
2.方法名字,参数列表,返回值都必须一致
3.不能比原方法有更宽泛的异常(错误不能越来越多)
4.不能比原方法拥有更低的访问权限(父类方法是个public,子类重写不能是个private)
4.3 重写的意义
功能越来越强了
错误越来越少了
使用的范围越来越广了
4.4 @override注解
5.final
5.1 是什么
final是修饰符,表示最后的,最终的,不能修改的
5.2 能做什么啊
1.final修饰的类不能被继承
2.final修饰的方法不能被重写
3.final修饰的变量不能被二次赋值,并且必须赋初始值,因为他没有默认值
4.final修饰的静态变量,一般叫常量,一般用(PSF)public static final 修饰,常量名建议全部大写
5.3 怎么用
5.4 深入final
final修饰的引用类型,因为引用类型是保存的地址,所以地址不能更改,但是地址能够访问的哪个空间中的数据可以被更改