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

转载于:https://www.cnblogs.com/rynerlute/p/6396259.html

Java学习笔记--继承和多态(下)相关推荐

  1. Java学习笔记类对象多态继承(下)

    面向对象(下) 1.类的继承 一.什么是继承,有什么用? 继承:在现实世界当中也是存在的,例如:父亲很有钱,几子不用努力也很有钱 继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要 ...

  2. Python 学习笔记 -- 继承与多态(入门级实例)

    1 #继承 2 #假设有不同品种的鱼,它们的蛋白质含量都不同,那么我们吃掉这些鱼获得的效果也应该不同 3 #---------------------------------------------- ...

  3. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

  4. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

  5. 尚学堂Java学习笔记

    尚学堂Java学习笔记 ============================ J2SDK&JRE J2SDK:JAVA2 SOFTWARE DEVELOPMENT KIT JRE:JAVA ...

  6. 郑志远的java学习笔记

    郑志远的java学习笔记 郑志远    CCB 1         Java起源 略 2         Java语言概述 1.面向对象编程的3个原则:封装(encapsulation).继承(inh ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. java学习笔记:全部,txt版本

    java学习笔记:全部,txt版本 笔者注: 1.不知道怎么上传附件,所以就把txt文本内容全部贴在这里吧. 2.已经把txt版本的笔记上传到CSDN了,我没有设置索要积分才能下载,但是不知道为什么C ...

  9. c语言/c++转Java学习笔记---基础问题

    c语言/c++转Java学习笔记---基础问题 1.java注释 2.数组的定义和使用 定义 使用 3.类 4.this 的使用 5.继承 6.super的使用 7.包 8.修饰符 成员的访问控制符( ...

最新文章

  1. esp8266 wifi模组手机一键配网,配置一次,下次重启设备后不需再进行配网
  2. HTTP中request请求参数的设置
  3. matlab访问数组的元素,使用分类数组访问数据
  4. 组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
  5. 前端学习(2445):分页的实现
  6. rhel6上使用udev配置oracle asm,在RHEL6上用UDEV配置ASM
  7. Javascript实现子窗口向父窗口传值(转)
  8. 2019年7月19日星期五(交叉编译工具)
  9. GARFIELD@03-23-2005
  10. Redisson 3.13.6 发布,官方推荐的 Redis 客户端
  11. Director 介绍
  12. AVR单片机学习笔记
  13. iPhone 13 投屏到 Windows 10 的办法
  14. 模糊聚类及matlab实现,模糊聚类分析及matlab程序实现
  15. Java设计模式学习总结
  16. 天昊16S扩增子绝对定量测序项目文章登陆《Bioresource Technology》
  17. 实操:WDS安装win系统
  18. 见证一张CAD图如何蜕变成一个高大上的三维地形模型(一)
  19. cubemx+stm32f407+双Can通信
  20. 设计c语言程序得到回文数,C语言程序设计实训题目.pdf

热门文章

  1. Shiro切入Spring的方式
  2. [转]COPY OR MOVE FILES AND FOLDERS USING OLE AUTOMATION
  3. PowerDesigner导入SQL脚本
  4. Eclipse上安装springsource-tool-suite
  5. 团队冲刺站立会议03
  6. [转载] 杜拉拉升职记——23 “You deserve it”的两种解释
  7. 借助 Subversion 进行版本控制
  8. Andriod开发中正确引入jar包的方式
  9. tomcat启动时出现错误
  10. Android---手动创建线程与GUI线程同步(三)