1.超类和子类的设计;
2.建立继承层次;
3.覆盖方法。

程序StringLister:使用数组列表和特殊的for循环将一系列字符串按字母顺序显示到屏幕上。这些字符串来自一个数组和命令行参数

 package com.jsample;

 import java.util.*;

 public class StringLister {
String[] names = { "Spanky", "Buckwheat", "Daria",
"Stymie", "Marianne", "Scotty", "Tommy", "Chubby" }; public StringLister(String[] moreNames){
Vector<String> list = new Vector<String>();
for (int i = 0; i < moreNames.length; i++){
list.add(moreNames[i]);
}
Collections.sort(list);
for (String name : list){
System.out.println(name);
}
} public static void main(String[] args){
StringLister lister = new StringLister(args);
}
}

输出:

Buckwheat
Chubby
Daria
Marianne
Scotty
Spanky
Stymie
Tommy

程序PointTester:使用Point,Point3D,Point4D对象的程序,并在屏幕上移动它们。

 package com.jsample;

 import java.awt.*;

 public class PointTester {
public static void main(String[] args){
Point objcet1 = new Point(11,22);
Point3D object2 = new Point3D(7,6,64);
Point4D object3 = new Point4D(12,56,73,90); System.out.println("The 2D point is located at (" + objcet1.x
+ ", " + objcet1.y + ")");
System.out.println("\tIt's being moved to (4,13)");
objcet1.move(4,13);
System.out.println("The 2D point is now at (" + objcet1.x
+ ", " + objcet1.y + ")");
System.out.println("\tIt's being moved -10 units on the x "
+ "and y axes");
objcet1.translate(-10,-10);
System.out.println("The 2D point ends up at (" + objcet1.x
+ ", " + objcet1.y + ")\n"); System.out.println("The 3D point is located at (" + object2.x
+ ", " + object2.y + ", " + object2.z + ")");
System.out.println("\tIt's being moved to (10, 22, 71)");
object2.move(10,22,71);
System.out.println("The 3D point is now at (" + object2.x
+ ", " + object2.y + ", " + object2.z +")");
System.out.println("\tIt's being moved -20 units on the x,y "
+ "and z axes");
object2.move(-20,-20,-20);
System.out.println("The 3D point ends up at (" + object2.x
+ ", " + object2.y + ", " + object2.z + ")\n"); System.out.println("The 4D point is located at (" + object3.x
+ ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
System.out.println("\tIt's being moved to (9, 1, 7, 4)");
object3.move(9,1,7,4);
System.out.println("The 4D point is now at (" + object3.x
+ ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
System.out.println("\tIt's being moved 20 units on the x,y "
+ "and z axes");
object3.move(20,20,20,20);
System.out.println("The 4D point ends up at (" + object3.x
+ ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
}
}

下属class:

Point——java.awt.*中自带。

Point3D:记录对象三维坐标,将对象移到新坐标处,将三个坐标各移动特定距离。

 package com.jsample;

 import java.awt.*;

 public class Point3D extends Point{
public int z; public Point3D(int x, int y, int z){
super(x,y);
this.z=z;
} public void move(int x, int y, int z){
this.z += z;
super.translate(x,y);
}
}

Point4D:记录对象四维坐标,将对象移到新坐标处,将四个坐标各移动特定距离。

 package com.jsample;

 public class Point4D extends Point3D{
public int t; public Point4D(int x, int y, int z, int t){
super(x,y,z);
if (t < 0)
return;
this.t = t;
} public void move(int x, int y, int z, int t){
this.z += z;
this.t += t;
super.translate(x,y);
}
}

输出:

The 2D point is located at (11, 22)
 It's being moved to (4,13)
The 2D point is now at (4, 13)
 It's being moved -10 units on the x and y axes
The 2D point ends up at (-6, 3)

The 3D point is located at (7, 6, 64)
 It's being moved to (10, 22, 71)
The 3D point is now at (17, 28, 135)
 It's being moved -20 units on the x,y and z axes
The 3D point ends up at (-3, 8, 115)

The 4D point is located at (12, 56, 73, 90)
 It's being moved to (9, 1, 7, 4)
The 4D point is now at (21, 57, 80, 94)
 It's being moved 20 units on the x,y and z axes
The 4D point ends up at (41, 77, 100, 114)

从零自学Java-10.充分利用现有对象的更多相关文章

  1. 从零自学Hadoop(10):Hadoop1.x与Hadoop2.x

    阅读目录 序 里程碑 Hadoop1.x与Hadoop2.x 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的 ...

  2. 从零自学Hadoop系列索引

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 从零自学Hadoop(01):认识Hadoop ...

  3. 作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?

    其实这个问题很简单,我用最简单的语言给大家描述一下,学习一样东西就要了解这样东西学完了要干什么事情,有什么作用.然后就是应该学习哪些必要的内容,该如何运用得当的方法进行有效率的学习不至于自己摸不着头脑 ...

  4. JAVA自学笔记10

    JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...

  5. 零基础如何自学java开发?

    开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习. 有人指导:第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我 ...

  6. 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...

  7. Java中10个流对象重点掌握

    目前为止,10个流对象重点掌握: 字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileO ...

  8. 【Java并发.4】对象的组合

    到目前为止,我们已经介绍了关于线程安全与同步的一些基础知识.然而,我们并不希望对每一系内存访问都进行分析以确保程序是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组件或程序. 4.1 设 ...

  9. 拜托,别再问我怎么自学 Java 了!和盘托出

    假如有那么残酷的一天,我不小心喝错了一瓶药,一下子抹掉了我这十多年的编程经验,把我变成了一只小白.我想自学 Java,并且想要找到一份工作,我预计需要 6 个月的时间,前提条件是每天都处于高效率的学习 ...

随机推荐

  1. 采用太平洋AI的DINK框架一键运行3D点云识别,一键训练深度学习模型

    DINK安装视频教程:  http://fp-ai.com/video_details.html?id=072b030ba126b2f4b2374f342be9ed44 DINK一键启动视频教程:   ...

  2. Spring Boot + Spring Cloud 构建微服务系统(九):配置中心(Spring Cloud Config)

    技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...

  3. MySQL修改表、字段、库的字符集及字符集说明

    修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列( ...

  4. win32之进程概念

    win32之进程 一丶简介 学习WindowsAPI. 之前.我们必须理解什么是进程. 在windows环境下.进程就是一个运行起来的exe程序 进程提供了数据以及资源. 但是怎么使用不管.而是由线程 ...

  5. docker常用命令记录

    Docker官方镜像中心:https://hub.docker.com/explore/ 参考:慕课网docker视频教程 https://www.imooc.com/video/14625 1.启动 ...

  6. MVC EF 执行SQL语句(转载)

    MVC EF 执行SQL语句 最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 闲着没事,看了一篇关于LI ...

  7. Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走

    这一章接着上一篇 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化 1.对于更新OnUpdate()函数的修改:先上代码: function OnUpdate(record) ...

  8. C# 快速释放内存的大数组

    本文告诉大家如何使用 Marshal 做出可以快速释放内存的大数组. 最近在做 3D ,需要不断申请一段大内存数组,然后就释放他,但是 C# 对于大内存不是立刻释放,所以就存在一定的性能问题. 在博客 ...

  9. 自定义滚动条mCustomScrollbar

    mCustomScrollbar 是个基于 jQuery UI 的自定义滚动条插件,它可以让你灵活的通过 CSS 定义网页的滚动条,并且垂直和水平两个方向的滚动条都可以定义,它通过 Brandon A ...

  10. Xshell配置密钥公钥(Public key)与私钥(Private Key)登录

    ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥( ...