1.通过继承来开发超类(superclass)

2.使用super 关键词唤起超类的构造方法

3.在超类中覆盖方法

4.区分override和overload

5.在Object类中探索toString()类

6.发现多态性和动态绑定

7.描述解释为什么向下转型是必须的

8.在Object类中探索equals 方法

9.存储,取回,实现ArrayList的对象

10.使用ArrayList类实现Stack

11.超类中使用数据和方法,protected

12.使用final模块来禁止类和方法的覆盖

9.存储,取回,实现ArrayList的对象

ArrayList类,这个类对于存储对象来说很有用,你可以创建数组来存储对象,但是一旦数组创建完毕,它的大小已经固定了。Java提供了ArrayList类用来存储不限量的对象。

ArrayList 方法区

ArrayList() 创建一个空的类               
add(o:Object): void 在列表的末尾加入一个元素
add(index: int, o:Object): void 在列表的某个特殊位置加入对象
clear():void 将列表清空
contains(o: Object):boolean 是否包含某个对象
get(index: int):Object 返回某个位置的元素
indexOf(o: Object ) : int  返回某个元素的位置
isEmpty():boolean 判断是否为空的列表
lastIndexOf(o: Object): int 最后一个对象的位置
remove(o : Object): boolean 匹配元素并从表中移除
size(): int 表的大小
set(index: int, o:Object):Object 设置某个位置上的元素

TestArrayList.java

public class TestArrayList {
public static void main(String[] args){
java.util.ArrayList cityList = new java.util.ArrayList(); cityList.add("Beijing");
cityList.add("Shanghai");
cityList.add("Tianjin");
cityList.add("Xiamen");
cityList.add("Fuzhou"); System.out.println("List Size?"+cityList.size());
System.out.println("Is Guangzhou in the list ? The answer is "+cityList.contains("Guangzhou"));
System.out.println("The location of Shanghai in the list? The answer is "+cityList.indexOf("Shanghai"));
System.out.println("Is the list is empty? The answer is "+ cityList.isEmpty()); cityList.add(2, "Hangzhou");
cityList.remove("Tianjin"); cityList.remove(1);
System.out.println(cityList.toString()); for(int i = cityList.size()-1 ;i>=0;i--)
System.out.println(cityList.get(i)+" ");
}
}

显示结果如下

这个对象当成字符串数组来使用,如果说存储对象了?

添加以下代码

list.add(new Circle(1, 2.5));
list.add(new Circle(2, 15.5));
for (int i = 0 ; i<2;i++)
System.out.println("The area of the circle"+((Circle) list.get(i)).number() + " is + "+ (Circle)list.get(i).GetArea() );

在原本没进行类型转换的时候会发现编译器报错了

关于类型转换可以参考以前的笔记。

10.使用ArrayList类实现Stack

关于栈的使用,Stack栈也是一种线性表,只不过这种线性表比较特殊,只能在表尾进行插入和弹出,对上面的例子进行更改,push和pop,只要在push方法中调用对应的方法。

数据区域

存对象

size

方法区

push: 找到队尾进行插插入

pop:找到队尾,进行get(index: int):Object并删除队尾 +remove(index: int): boolean

GetTop: 按照ArrayList类的方法修改即可

11.超类中使用数据和方法,protected

如果想要子类获得父类的数据和方法,非子类不能访问这些数据和方法。

将前面所学 public private protected

public 区域块块可以修改,pirvate 的区域块 子类不能够直接访问, protected的区域块可见但是不可改。

数据和方法的可见性

  其他类 相同包 子类   不同包 
public true true true true
protected true true true --
defaul true true -- --
private true -- -- --

12.使用final模块来禁止类和方法的覆盖

    final 关键词

  

public fina class c{
.....
}
public class Test{
public final void main(){
.......
}
}

最新文章

  1. 升级 Visual Studio 2015 CTP 5 的坑、坑、坑
  2. Eclipse设置风格
  3. python windows安装
  4. Faster RNNLM (HS/NCE) toolkit
  5. linux-搜索
  6. oracle 中查看一张表是否有主键,主键在哪个字段上的语句怎么查如要查aa表,
  7. LeeCode-Single Number II
  8. ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email
  9. 长连接 Socket.IO
  10. CI数据库操作_查询构造器类
  11. 最近面试 Java 后端开发的感受!
  12. 痞子衡嵌入式:忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)
  13. 关于maven的CoreException: Could not get the value for parameter compilerId for plugin 。。的错误
  14. 【代码笔记】Web-JavaScript-JavaScript注释
  15. PyQt5--QComboBox
  16. PHP链接MySQL,查询数据库内容,删除数据库内容。。。记住链接公式!!!
  17. 2018.12.12 codeforces 938E. Max History(组合数学)
  18. linux backtrace()详细使用说明,分析Segmentation fault【转】
  19. Puppetmaster高可用和可扩展的方案设计
  20. 替代iframe新逻辑

热门文章

  1. Ubuntu 如何为 XMind 添加快速启动方式和图标
  2. Build SSH for Development on Windows Subsystem for Linux
  3. 6、OpenCV Python 图像模糊
  4. matplotlib类
  5. zabbix告警
  6. java经典学习路线
  7. P1110 [ZJOI2007]报表统计 (multiset)
  8. Kibana6.2.2源码入口
  9. java的Spring学习2--构造函数注入
  10. stark组件之创建