从零自学Java-10.充分利用现有对象
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.充分利用现有对象的更多相关文章
- 从零自学Hadoop(10):Hadoop1.x与Hadoop2.x
阅读目录 序 里程碑 Hadoop1.x与Hadoop2.x 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的 ...
- 从零自学Hadoop系列索引
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 从零自学Hadoop(01):认识Hadoop ...
- 作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?
其实这个问题很简单,我用最简单的语言给大家描述一下,学习一样东西就要了解这样东西学完了要干什么事情,有什么作用.然后就是应该学习哪些必要的内容,该如何运用得当的方法进行有效率的学习不至于自己摸不着头脑 ...
- JAVA自学笔记10
JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...
- 零基础如何自学java开发?
开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习. 有人指导:第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我 ...
- 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #
一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...
- Java中10个流对象重点掌握
目前为止,10个流对象重点掌握: 字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileO ...
- 【Java并发.4】对象的组合
到目前为止,我们已经介绍了关于线程安全与同步的一些基础知识.然而,我们并不希望对每一系内存访问都进行分析以确保程序是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组件或程序. 4.1 设 ...
- 拜托,别再问我怎么自学 Java 了!和盘托出
假如有那么残酷的一天,我不小心喝错了一瓶药,一下子抹掉了我这十多年的编程经验,把我变成了一只小白.我想自学 Java,并且想要找到一份工作,我预计需要 6 个月的时间,前提条件是每天都处于高效率的学习 ...
随机推荐
- LeetCode:146_LRU cache | LRU缓存设计 | Hard
题目:LRU cache Design and implement a data structure for Least Recently Used (LRU) cache. It should su ...
- Django2.1发布,Django2.1新特性
Django 2.1 现已正式发布,官方表示随着 2.1 的发布,对 2.0 系列的主流支持服务将结束,进入安全修复服务周期,直至2019年4月. 2.1新特性:https://docs.django ...
- 和嗲妹妹面试python,是种什么体验?
这次给大家讲讲我2年前去爱奇艺面试高级运维开发岗位的经历,希望对大家带来一些帮助. 公众号「Python专栏」后台回复:自动化运维平台,获取整套自动化运维平台的源代码 聊骚阶段 嗲妹妹:你好,我是爱奇 ...
- [Umbraco] umbraco中如何分页
分页功能应该说是web开发中最基本的功能了,常规的做法是通过查询sql语句进行分页数据显示.但在umbraco中却不是这样子的.而且通过xpath中的postion来定位.如下代码 <?xml ...
- 爽爽的GSON解析
Gson解析的各种详细用法我就不说了. 说说我在项目具体遇到的. 当前公司的JSON解析基本上通过阿里的fastjson,以及JSONObject,JSONArray来解析.那种让我无语的感觉不是言语 ...
- Android 系统服务
模拟器版本 Android 4.1.2 - API Level 16 CMD 下输入:adb shell service list 服务名 对象 0 phone com.android.inter ...
- Golang标准库——io-接口
接口 Read相关 Reader Reader接口用于包装基本的读取方法. type Reader interface { //将数据读入到p中,直到读满p或者读取的过程中遇到错误,此时返回的n< ...
- java-Timer类使用方法
Timer: public Timer()创建一个新计时器.相关的线程不 作为守护程序运行. 方法摘要: void schedule(TimerTask task, Date time) ...
- Eureka单机高可用伪集群配置
Eureka Server高可用集群理论上来讲,因为服务消费者本地缓存了服务提供者的地址,即使Eureka Server宕机,也不会影响服务之间的调用,但是一旦新服务上线,已经缓存在本地的服务提供者不 ...
- redis-scala链接redis集群
代码: package com.wenbronk.sparkstreaming.scala.commons import java.time.Duration import io.lettuce.co ...