Java学习笔记--继承和多态(下)
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学习笔记--继承和多态(下)的更多相关文章
- Java学习笔记--继承和多态(中)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- Java学习笔记--继承和多态(上)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- Java学习笔记——继承、接口、多态
浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...
- Java学习笔记---继承和super的用法
自从换了个视频教学,感觉比原来那个好多了,就是学校网速太渣,好多视频看一会卡半天,只能先看看已经下载的了. 不过也好,虽然不能从开始开始重新开,但是已经看过一次,在看一次也是好的,就当巩固学习了. 继 ...
- Java学习笔记5---命令行下用javac,java编译运行含package语句的类
对于笔记3中的HelloWorld程序,编译时只要输入javac HelloWorld.java即可生成类文件:再用java HelloWorld即可运行. 如果源程序使用了包声明,编译运行时要使用某 ...
- java学习笔记-继承中super关键字
背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...
- java学习笔记 --- 继承
继承 (1)定义:把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系, 这多个类就具备了这些内容.这个关系叫继承. (2)Java中如何表示继承呢?格式 ...
- Java学习笔记15---instanceof与向下转型
感冒咳嗽停更了几天,今天恢复更新了. 先来看下instanceof与向下转型的概念: 1.instanceof instanceof是一个二元操作符,用法是:boolean result = a in ...
- Java学习笔记 抽象类 接口 多态
instanceof 对象名 instanceof 类名 该对象是否属于该类 Animal animal = new Dog(); if(animal instanceof Dog){ Dog d = ...
随机推荐
- Metasploit 读书笔记-神器Meterpreter
一、基本命令 截屏 screenshot 2.获取系统平台信息 sysinfo 3.进程信息 ps 4.获取键盘记录 查看进程信息ps--migrate将会话迁移至explorer.exe进程空间中- ...
- ASP前端控件设置只读不要用enabled
会导致后台取不到这个控件的值,应该用readonly
- codevs3027(dp)
题目链接: http://codevs.cn/problem/3027/ 题意: 中文题目诶~ 思路: dp 先给所有线段按照右端点值升序 sort 一下, 用 dp[i] 存储以第 i 条线段结尾的 ...
- uoj#422. 【集训队作业2018】小Z的礼物(MIn-Max容斥+插头dp)
题面 传送门 题解 好迷-- 很明显它让我们求的是\(Max(S)\),我们用\(Min-Max\)容斥,因为\(Min(S)\)是很好求的,只要用方案数除以总方案数算出概率,再求出倒数就是期望了 然 ...
- CentOS下安装配置SVN服务器并自动同步到web目录
一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...
- 网络通讯与IP地址
1.主机:Host,台式机,笔记本,手机等设备 2.网络介质:网线,光纤,无线网Wi-Fi.移动网络 3.数据:一串子节 网络通讯的检测:安装wireshark,通常称为抓包工具 抓,capture ...
- freemarker常用标签解释
标签一: if else 你可以使用if,elseif和else指令来条件判断是否越过模板的一个部分.这些condition-s必须计算成布尔值,否则错误将会中止模板处理.elseif-s和else- ...
- Qt 学习之路 2(5):自定义信号槽
Home / Qt 学习之路 2 / Qt 学习之路 2(5):自定义信号槽 Qt 学习之路 2(5):自定义信号槽 豆子 2012年8月24日 Qt 学习之路 2 131条评论 上一节我们详 ...
- POJ1060 Modular multiplication of polynomials
题目来源:http://poj.org/problem?id=1060 题目大意: 考虑系数为0和1的多项式.两个多项式的加法可以通过把相应次数项的系数相加而实现.但此处我们用模2加法来计算系数之和. ...
- C语言文件I/O和标准I/O函数
读取/写入 相对于文件而言 输入/输出 相对于程序/内存而言 一切皆文件,键盘.显示屏也是文件,只不过是特殊的标准文件: 标准文件:标准输入.标准输出.标准错误:---->对应的文件指针:st ...