2022-07-25 第七小组 房雪莹 学习笔记

今日学习内容:

1.面向对象特征之三:多态

等他们有继承关系时,可以  父类=new 子类

编译看左边,运行看右面

2.多态形成的三个条件:
1.有继承
2.有重写
3.有父类对象指向子类引用

3.多态的两种形式:

第一种多态形式:(向上转型,往大了转)
父类 父类对象 =new 子类();
第二种多态形式:(向下转型)
子类 子类对象=new 父类();(不能直接这么写)
前提是披着别的皮的自己
发生第二种多态的前提,要先发生向上转型,才能通过强转在转成子类

4.instanceof 关键字:

判断某一个对象是否是某一个类的实例,返回值是boolean类型

5.匿名对象:
语法:
new 类名();
功能:
和正常的有名字的对象功能是相同的,依然具备了调用属性,方法的功能

使用场景:多数是用在传参,实参,多数情况下配合构造器使用
好处:节约资源,栈的资源

6.数组是不是类:是
1.站在JVM解析数组时,会生成一个数组的解析数组
2.站在编译角度,不是类因为没有类名,没有结构

7.链表:

单项链表:在维护一个节点的自身的值的同时,还要维护它的下一个值的指向
双向链表:在维护一个节点的自身的值的同时,还要维护它的上一个和下一个值的指向

//把数据添加到尾部
public boolean add(Integer data){
    Node node=new Node(data,null);
    //如果现在链表是空的,那我就是第一个结点
    if (first==null){
        first =node;
    }else {
        //如果链表不是空,那我就是最后一个结点
        //我是原来last结点的下一个结点
        last.setNext(node);
    }
    last =node;
    size++;
    return true;
}
//在指定位置添加元素
public boolean add(int index,Integer data){
    Node node=getNode(index);
    Node newNode=new Node(data,null);
    if (node !=null){
        Node next=node.getNext();
        newNode.setNext(next);
        node.setNext(newNode);
    }else{
        //如果要插入的位置是null,只有一种情况,就是整个链表都是空
        first =newNode;
        last =newNode;
    }
    size++;
    return true;
}
//默认删除头部的数据
public boolean remove1(){
    if (size<0){
        return  false;
    }
    if (first !=null){
        first =first.getNext();
        size--;
    }
    return true;
}
//删除指定位置
public boolean remove(int index){
    if (size<0){
        return false;
    }
    if (size==1){
        first =null;
        last =null;
        size--;
        return true;
    }else {
        Node node=getNode(index-1);
        node.setNext(node.getNext().getNext());
    }
    size--;
    return true;
}
//根据下标获取指定的结点
public Node getNode(int index){
    if (index<0){
        index=0;
    }
    if (index>=size-1){
        index=size-1;
    }
// 根据下标获取指定的数据
public Integer get(int index) {
    return getNode(index).getData();
}

今日学习心得:

今天学习了多态以及链表,觉得不太好理解。

 

posted @ 2022-07-25 19:45  房雪莹  阅读(15)  评论(0编辑  收藏  举报