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(){
.......
}
}

Java学习笔记--继承和多态(下)的更多相关文章

  1. Java学习笔记--继承和多态(中)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  2. Java学习笔记--继承和多态(上)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  3. Java学习笔记——继承、接口、多态

    浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...

  4. Java学习笔记---继承和super的用法

    自从换了个视频教学,感觉比原来那个好多了,就是学校网速太渣,好多视频看一会卡半天,只能先看看已经下载的了. 不过也好,虽然不能从开始开始重新开,但是已经看过一次,在看一次也是好的,就当巩固学习了. 继 ...

  5. Java学习笔记5---命令行下用javac,java编译运行含package语句的类

    对于笔记3中的HelloWorld程序,编译时只要输入javac HelloWorld.java即可生成类文件:再用java HelloWorld即可运行. 如果源程序使用了包声明,编译运行时要使用某 ...

  6. java学习笔记-继承中super关键字

    背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...

  7. java学习笔记 --- 继承

    继承 (1)定义:把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系,    这多个类就具备了这些内容.这个关系叫继承.  (2)Java中如何表示继承呢?格式 ...

  8. Java学习笔记15---instanceof与向下转型

    感冒咳嗽停更了几天,今天恢复更新了. 先来看下instanceof与向下转型的概念: 1.instanceof instanceof是一个二元操作符,用法是:boolean result = a in ...

  9. Java学习笔记 抽象类 接口 多态

    instanceof 对象名 instanceof 类名 该对象是否属于该类 Animal animal = new Dog(); if(animal instanceof Dog){ Dog d = ...

随机推荐

  1. myql 服务启动不了怎么办

    今天,不小心手动将mysql 服务停掉后,怎么也启动不了,后面查了半天 ,终于知道要先将任务管理器里的mysql.exe 先Kill掉,然后可以启动了,记录一下

  2. vncviewer 命令行使用

    一.命令行输入密码登录 /usr/bin/vncviewer 192.168.210.80:3此时弹出输入密码框,输入密码即可登录 二.命令行免输入密码登录 (a) /usr/bin/vncviewe ...

  3. Codeforces 917B MADMAX (DP+博弈)

    <题目链接> 题目大意:给定一个DAG图,其中图的边权是给定的字符所对应的ascii码,现在A先手,B后手,每次沿DAG图走一步,但是第i次走的边权一定要大于等于第i-1次走的边权(这里是 ...

  4. Django博客开发教程,Django快速开发个人blog

    学DjangoWEB框架,估计大部分的朋友都是从Blog开发开始入门的,Django中文网发布了一个Django开发教程,这个教程简单易懂,能让你快速的使用Django开发一个漂亮的个人blog,是D ...

  5. Liunx配置静态IP

    刚开始Linux默认的是动态获取,而我们需要设置静态IP(我是为了xshell的连接) 1.  执行dhclient命令自动获取到一个IP,NETMASK, 2.  执行route命令,获取defau ...

  6. 数据结构6: 静态链表及C语言实现

    本节继续介绍线性表的另外一种链式表示——静态链表.(前面介绍的链表称为 动态链表 ). 逻辑结构上相邻的数据元素,存储在指定的一块内存空间中,数据元素只允许在这块内存空间中随机存放,这样的存储结构生成 ...

  7. [Groovy]Parse properties file in Groovy

    def props = new Properties() new File("foo.properties").withInputStream { s -> props.lo ...

  8. Unity 动画系统目录 之 Animation

    返回 Unity 动画系统目录 官方文档 Animation:https://docs.unity3d.com/ScriptReference/Animation.html Animator:http ...

  9. HDU计算机学院大学生程序设计竞赛(2015’12)Happy Value

    Problem Description In an apartment, there are N residents. The Internet Service Provider (ISP) want ...

  10. c#之GDI简单实现代码及其实例

    作业:文档形式 3到5页理解 1.理解 2.源代码解释(1到2页) 3.实现效果 项目地址: https://github.com/zhiyishou/polyer Demo:https://zhiy ...