马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
静态方法不能调用非静态
非静态可以访问全部
继承:
爸爸:父类
儿子:子类
父类有的子类都具有,以是子类中只需创造它特有的就行,子类必要用的时间可以直接在父类内里调用。
继承特点:Java只支持单继承,不支持多继承,但支持多层继承。
单继承:一个子类只能继承一个父类
子类不能同时继承多个父类。
多层继承:子类A继承父类B,父类B可以继承父类C。AC关系为间接父类。AB为直接父类。
每一个类都直接或间接的继承于Object。Object类Java假造机内自己就存在的。
誊写代码:从父类开始写
子类只能访问父类中非私有的成员//私有:private
假如一个类中没有构造方法,假造时机自动添加一个空参构造。
内存分析工具
打开方法:+jhsdb hsdb
继承过程中:
成员变量的访问特点:就近原则,谁近用谁。
虚方法表:非private,非static,非final。
方法重写的本质:假如发生了重写,则会覆盖。
只有被添加到虚方法表中的方法才气被重写。
不能被继承,就不能被重写。
构造方法的访问特点:
this,super利用总结:
super中调用的是父类的成员变量。
this是调用的子类的成员变量。
简朴影戏查询体系:
JavaBean类:- public class movie {
- private int id;
- private String name;
- private String actor;
- public movie(int id,String name,String actor) {
- this.id = id;
- this.name = name;
- this.actor = actor;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getActor() {
- return actor;
- }
- public void setActor(String actor) {
- this.actor = actor;
- }
- }
复制代码 操纵类:- public class movieoperator {
- private movie[] movies;
- public movieoperator(movie[] movies){
- this.movies=movies;
- }
- public void findAllmovie(){
- for(int i=0;i<movies.length;i++){
- movie m=movies[i];
- System.out.println("电影编号是:"+m.getId());
- System.out.println("电影名称是:"+m.getName());
- }
- }
- public void findbyid(int id){
- for(int i=0;i<movies.length;i++){
- movie m=movies[i];
- if(m.getId()==id){
- System.out.println("电影编号是:"+m.getId());
- System.out.println("电影名称是:"+m.getName());
- System.out.println("电影演员是:"+m.getActor());
- return;
- }
- }
- System.out.println("没有找到该电影");
- }
- }
复制代码 运行类:- import java.util.Scanner;
- // 定义 Movie 类
- public class system{
- public static void main(String[]args){
- System.out.println("---欢迎来到电影管理系统---");
- System.out.println("操作功能请选择1、2或者3");
- System.out.println("1.查询所有电影");
- System.out.println("2.根据电影编号查询电影");
- System.out.println("3.退出系统");
- movie[] movies = {
- new movie(1, "血观音", "文淇"),
- new movie(2, "风犬少年的天空", "张婧仪"),
- new movie(3, "我要我们在一起", "张婧仪")
- };
- Scanner sc = new Scanner(System.in);
- movieoperator mo = new movieoperator(movies);
- while(true){
- System.out.println("请输入您的选择:");
- int choice = sc.nextInt();
- if(choice==1){
- mo.findAllmovie();
- }
- else if(choice==2){
- System.out.println("请输入电影编号:");
- int id = sc.nextInt();
- mo.findbyid(id);
- }
- else if(choice==3){
- System.out.println("感谢您的使用,再见!");
- break;
- }
- else{
- System.out.println("您的输入有误,请重新输入!");
- }
- }
- }
- }
复制代码 封装:对象代表什么,就得封装对应的数据,并提供数据对应的举动。
多态:同范例的对象,体现出的差别形态。
多态调用成员的特点:
调用的时间变量是父类的,方法是子类的。
|