Java 读书笔记 11 持有对象

持有对象

泛型

1.简单来说 ArrayAlist可以限制只储存Apple类及其子类,限制其他类对象
容器整体结构

这里写图片描述

这部分偏向于介绍具体的操作,就简单写了;这种东西不写写,不可能记得住;

list

  1. ArayList,基本和数组一个模式,随机访问简单,插入删除比较麻烦
  2. LinkedList,链表嘛,肯定是插入删除简单,随机访问麻烦;

    more >>

Java 读书笔记10 内部类

内部类

可访问外围类

  1. 外围类就是包含内部类的那个类的啦
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class Sequence {
    private Object[] items= new Object[5];
    private class SequenceSelector implements Selector
    {
    private int i ;
    @Override
    public boolean end() {
    return 1==items.length; //直接访问了内部类属性;
    }
    }
    public Selector selector ()
    {
    return new SequenceSelector();
    }
    public static void main (String a[])
    {
    Sequence sequence = new Sequence();
    Selector selector = sequence.selector();
    System.out.println(selector.end());
    }
    }

more >>

Java 读书笔记9 接口

# 接口

## 抽象类:

1. 理解起来很容易,比如父类是动物,子类是狗;动物嘛,肯定得会呼吸;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Animal {
protected void breath()
{
System.out.println("breath");
}
}
public class Mouse extends Animal {
public static void main(String a[])
{
Animal mouse = new Mouse("11",1);
mouse.breath(); //这里输出的实际上就是mousebreath ,通过父类我们可以随意访问详细对象的方法;
//但是实际上,我们几乎不用父类初始化,这样breath方法就显得没有意义;
//那把他定义为抽象有什么好处呢?一目了然,立马就知道子类需要具体实现;
//这样就把声明和实现分开了
}
public Mouse(String myName, int myid) {
super(myName, myid);
}
@Override
protected void breath() {
//super.breath();
System.out.println("mousebreath");
}
}

more >>

Java 读书笔记8 多态

多态

## # 动态绑定

  1. 也很好理解,简单地说,方法接受的是父类,方法里面具体用到的是什么就随便了
    1
    2
    3
    4
    5
    void test(Parent a)
    {
    a.find(); //此处的a可以使子类对象,那么test整体方法最后绑定就是动态的啦,否则它不知道到底是谁调用的;
    //该方法动态的绑定到了子类的find方法;
    }

more >>

Java 读书笔记7 复用类

## # 1.关于super的怨念

1. 其实之前一直觉得super很神奇,不会用,今天终于明白了,其实他就是回去调用父类的相关函数了,
2. super 和this 都是用来对构造函数而言,因为构造函数在构造函数无法直接调用;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Drawing (int i )
{
super(i);
}
Drawing()
{
//super(5); //调用父类
//this(1); //调用子类其他
Drawing(5); //这样写是不对的,不能这么调用
}
//对于普通重载函数
void test(String a)
{
}
void test(int a)
{
test("aaa"); //可以直接调用
}

more >>