包:类似于文件夹,用于包含代码
建立包的语法:公司域名倒着写.技术名称 包名全部英文小写具备意义
相同包下的类直接访问,不同包下的类不能直接访问,需要导入。
权限修饰符
用来控制一个成员能够被访问的范围:
四种范围从小到大:(private<缺少<protected<public)
修饰符 | 同一个类(文件)中 | 同一包(文件夹)下其他类(文件) | 不同包中,继承被引成员所在类的子类 | 不同包中无关类 |
private | √ | |||
缺省 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
按照习惯
成员方法一般私有private
方法一般公开public
final关键字
用来修饰方法、变量和类
修饰方法:最终方法,不能被重写(不能被其子类重写方法)
修饰变量:该变量第一次赋值后,不能被再次赋值
修饰类:该类不能被继承(不能有子类,不能做父类)
final修饰的是基本类型时:存储的数据值不能改变
修饰引用类型时,地址不能改变,地址指向的内容可以改变
常量 命名时全部大写,下划线连接起来
使用public static final 修饰的成员变量,必须有初始值,且执行过程中值不能被改变
可以用来做系统的配置信息,方便系统的维护,同时提高可读性;
例如:
public class Test {
public static final String SCHOOL_NAME = "黑马";
public static void main(String[] args) {
System.out.println(SCHOOL_NAME);
}
}
常量可以进行信息的标志和分类
枚举
是java中的一种特殊类型,用来做信息的标志和分类。
修饰符enum + 枚举名称{
第一行写枚举实例的名称
} 例如:
enum Season{
SPRING, SUMMER, AUTUMN, WINTER;
}
首先新建. java文件,然后把文件中的class关键字改成enum关键字:
public enum enumSeason {
SPRING, SUMMER, AUTUMN, WINTER;
}
在第一行罗列枚举类的对象名称
枚举进行信息标志和分类代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术。
抽象类
关键字abstract,修饰类或者方法
当类包含抽象方法,它只能是抽象类
当父类知道子类要完成某些行为,但是每个子类对该行为的实现方法不同,于是该父类就把该行为定义成抽象方法的形式,具体实现交给子类去完成,此时这个类就可以声明成抽象类。
例如:定义父类动物类的run抽象方法
public abstract class Animal{
public abstract void run();//不用加大括号{}
}
如果一个类继承了抽象类,它必须重写抽象类的所有抽象方法,或者也将抽象方法继续写成抽象方法否则报错:
例如:狗类继承了动物类:,就要重写他的抽象方法run
public class Dog extends Animal{
@Override
public void run(){
System.out.println("狗四条腿跑得快");
}
}
案例练习:
加油站推出两种支付卡:金卡:预存10000元,后续加油8折优惠
银卡:预存5000元,后续加油8.5折优惠
类含有抽象方法只能定义为抽象类,类是抽象类却不必须含有有抽象方法
抽象类不能创建对象,即使其没有抽象方法
final和abstract是互斥关系:
final不能重写;
abstract必须重写;