
•final关键字是最终的意思,可以修饰类,成员变量,成员方法。
–修饰类,类不能被继承
public final class Father {...}
–修饰变量,变量就变成了常量,只能被赋值一次
public final int age = 20;
–修饰方法,方法不能被子类重写
public final void method() {...} 子类无法重写method方法
1.2 static关键词
static:是一个关键字,静态的意思。可以用来修饰成员变量和成员方法。 static修饰成员的特点: A:被类的所有对象共享。其实也是判断一个成员是否应该用static修饰的条件。 B:可以通过类名直接访问 C:优先于对象存在 D:随着类的加载而加载1.2.1 static成员变量
public class Student {
public String name;
public int age;
public static String graduateFrom; //毕业院校
public void show() {
System.out.println(name+"---"+age+"---"+graduateFrom);
}
}
public static void main(String[] args) {
Student.graduateFrom = "传智学院"; //通过类名直接访问;优先于对象存在
Student s = new Student();
s1.name = "林青霞";
s1.age = 30;
s1.show();//林青霞---30--- "传智学院"
Student s2 = new Student();
s2.name = "刘德华";
s2.age = 28;
s2.show();//刘德华---28--- "传智学院"
1.2.2 static方法的访问特点及注意事项
非静态的成员方法: 能访问静态的成员变量 能访问非静态的成员变量 能访问静态的成员方法 能访问非静态的成员方法 静态的成员方法: 能访问静态的成员变量 能访问静态的成员方法 注意事项: 1、静态成员方法中不能出现this,super这样的关键字。原因是:静态是随着类的加载而加载, this,super这样的关键字是随着对象的创建而存在。 先进内存的,不能访问后进内存的。2 抽象类 2.1 概述
一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
public abstract class Animal {
//动物本身并不是一个具体的事物,而是一个抽象的事物。
//只有真正的猫,狗才是具体的动物。
//抽象方法
public abstract void eat();
//不同的动物吃的东西应该是不一样的,
//所以,我们不应该在动物类中给出具体体现,
//而是应该给出一个声明即可。
}
2.2 特点
A:抽象类和抽象方法必须使用abstract关键字修饰 B:抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类 C:抽象类不能实例化,要想实例化参照多态的方式,通过子类对象实例化。 D:抽象类的子类: 要么重写抽象类中的所有抽象方法 要么是抽象类2.3 抽象类的成员特点
成员变量: 有成员变量,成员变量可以是变量,也可以是常量。 构造方法: 有构造方法。用于子类访问父类数据的初始化。 成员方法: 有成员方法,成员方法可以是抽象的,也可以是非抽象的。 抽象方法:限定子类必须完成某些动作,父类有抽象方法,子类也必须有抽象方法 非抽象方法:提高代码的复用性,通过继承实现3 接口 3.1 概述
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
3.2 接口的特点A:定义接口使用的是interface关键字
B:类和接口之间是实现关系,用implements关键字表示
C:接口不能实例化,参照多态的形式使用实现类来实例化。
D:接口的实现类:
要么重写接口中的所有的抽象方法
要么是一个抽象类,因抽象类无法实例化,故这个策略无意义
//定义了一个跳高的接口
public interface Jumpping {
//抽象方法
public abstract void jump();
}
public class Cat implements Jumpping { //猫实现了接口
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
}
3.3 接口的成员特点
成员变量: 有成员变量,而且变量只能是常量。可以直接访问 System.out.println(接口名.成员变量名) 默认修饰符:public static final 构造方法: 没有构造方法。实现类默认继承 Object(所有的类直接或间接继承该类) 成员方法: 有成员方法,而且都是抽象的。 默认修饰符:public abstract3.4 类与类_类与接口_接口与接口的关系
类与类:
继承关系,只能单继承,可以多层继承。
类与接口:
实现关系,可以单实现,也可以多实现。
还可以在继承一个类的同时实现多个接口。
接口与接口:
继承关系,可以单继承,也可以多继承。
public interface Sister extends Father,Mother{
}
3.5 抽象类与接口的区别
A:成员区别 抽象类: 成员变量:可以是变量,也可以是常量 构造方法:有 成员方法:可以是抽象方法,也可以是非抽象方法 接口: 成员变量:只能是常量 成员方法:只能是抽象方法 B:关系区别 类与类:继承关系,只能单继承,可以多层继承 类与接口:实现关系,可以单实现,也可以多实现 接口与接口:继承关系,可以单继承,也可以多继承 C:设计理念的区别 抽象类 被继承体现的是:"is a" 抽象类中定义的是继承体系的共性功能.如猫 is an animal 接口 被实现体现的是:"like a" 接口中定义的是该体系的扩展功能,如猫 like a jumpper4 包 4.1 包的概述和注意事项
包:其实就是文件夹。包的作用就是对类进行分类管理。 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 方案1:按照功能分 com.itheima.add AddStudent AddTeacher com.itheima.delete DeleteStudent DeleteTeacher 方案2:按照模块分 com.itheima.student AddStudent DeleteStudent com.itheima.teacher AddTeacher DeleteTeacher 包的定义格式: package 包名;如果是多级包用.隔开即可 注意事项: A:package必须是程序的第一条可执行语句 B:package语句在一个java文件中只能有一个4.2 导包
import 包名;5 四种权限修饰符的概述和访问特点