用JAVA的抽象类实现编码组合进度的灵活性

都是实际开发逼出来的吧。

人类真灵活~~~~:)

就是将整个功能的实现在编程时,打散到一个一个文件中,提前写好核心算法,

在TEAM的实现方案确定下来之后,再进行组装。

GuessGame.java

package cc.openhome;

public abstract class GuessGame {
    public void go() {
        int Number = (int) (Math.random() * 10);
        int guess;
        do {
            print("Please input number: ");
            guess = nextInt();
        } while (guess != Number);
        println("Bingo");
    }

    public abstract void print(String text);
    public abstract void println(String text);
    public abstract int nextInt();
}

ConsoleGuessGame.java

package cc.openhome;
import java.util.Scanner;

public class ConsoleGuessGame extends GuessGame {
    private Scanner scanner = new Scanner(System.in);

    @Override
    public void print(String text) {
        System.out.print(text);
    }

    @Override
    public void println(String text) {
        System.out.println(text);
    }

    @Override
    public int nextInt() {
        return scanner.nextInt();
    }
}

Guess.java:

package cc.openhome;

public class Guess {
    public static void main(String[] args) {
        GuessGame game = new ConsoleGuessGame();
        game.go();
    }
}

时间: 2024-09-17 04:30:43

用JAVA的抽象类实现编码组合进度的灵活性的相关文章

java的抽象类和方法

在我们所有乐器(Instrument)例子中,基础类Instrument内的方法都肯定是"伪"方法.若去调用这些方法,就会出现错误.那是由于Instrument的意图是为从它衍生出去的所有类都创建一个通用接口. 之所以要建立这个通用接口,唯一的原因就是它能为不同的子类型作出不同的表示.它为我们建立了一种基本形式,使我们能定义在所有衍生类里"通用"的一些东西.为阐述这个观念,另一个方法是把Instrument称为"抽象基础类"(简称"抽象

Java中的字符集编码入门(四) 网页文件的编码

接着上节的思路说,一个网页要想在浏览器中能够正确显示,需要在三个地方保持编码的一致:网页文件,网页编码声明和浏览器编码设置. 首先是网页文件本身的编码,即网页文件在被创建的时候使用什么编码来保存.这个完全取决于创建该网页的人员使用了什么编码保存,而进一步的取决于该人员使用的操作系统.例如我们使用的中文版WindowsXP系统,当你新建一个文本文件,写入一些内容,并按下ctrl+s进行保存的那一刻,操作系统就替你使用GBK编码将文件进行了保存(没有使用UTF-8,也没有使用UTF-16).而使用了

关于Java中的继承和组合的一个错误使用的例子

关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚,论证不清晰,欢迎大家留言指正. 什么是「组合」和「继承」 假设有2个class:A和B: 如果class A extends B 那么我们就说A继承B,A是子类,B是父类,这种情况就是继承. 如果A中有一个属性的类型为B,那么我们就说这种情况就是组合. 分别在什么情况下使用 回想一些我们一般会在什么情况下考虑这

Java中的字符编码问题处理心得总结_java

当面对一串字节流的时候,如果不指定它的编码,其实际意义是无法知道的. 这句话应该也是我们面对"字符转字节,字节转字符"问题时候时刻记在脑子里的.否则乱码问题可能就接踵而至. 其实乱码问题的本质就是Encoding和Decoding用的不是一个编码,明白了这个道理就很好解决乱码问题了. Java中常见的时候有如下: 1. String类使用byte[]的构造函数 String(byte[] bytes),String类同时提供了两个重载 (1)String(byte[] bytes, C

Java记事本如何监听组合按键?

问题描述 Java记事本如何监听组合按键? RT 我想按下Ctrl+s来实现保存功能.该如何实现? 求大神指点12 解决方案 http://www.cnblogs.com/pandy/p/3594465.htmlhttp://bbs.csdn.net/topics/300206776 解决方案二: Jquery监听组合按键JQuery监听组合按键

Java实现的URL编码和解码技术

当编写 " 网络爬虫" 或下载器时,在 Java 中实现 URL 编码和解码是一个很常见的要求.本文的重点是创建用于对所传递的 URL 进行编码和解码的模块. Main 方法 public static void main(String[] args) {                // TODO Auto-generated method stub                String url="https%3A%2F%2Fr1---sn-ci5gup-cags.

初始化-java 中 抽象类不能被实例化 但为什么可以有构造器

问题描述 java 中 抽象类不能被实例化 但为什么可以有构造器 构造器不就是为了初始化对象而存在的吗 既然抽象类不能被实例化 那为什么 还要按个构造器 ? 解决方案 抽象类是不能被实例化,抽象类的目的就是为实现多态中的共同点,抽象类的构造器会在子类实例化时调用,因此它也是用来实现多态中的共同点构造 解决方案二: 构造函数可以在派生类中以Super(...)的形式调用,这样基类的构造就不用重复写了. 解决方案三: 抽象类可以有成员变量,他们的初始化怎么做呢?这么一样你就明白为什么抽象类可以有构造

java中抽象类的定义和使用

java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础. 指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类是一个被定义的抽象类. 1.抽象类定义的格式 修饰符 abstract 类名 { 类体 } 2.抽象方法格式: 修饰符 abstract 返回值类型 方法名(); 注意:在抽象类中的方法不一定是抽象方法,含有抽象方法的类必须定义成抽象类. 3.案例证明 package for_apro; impor

java实现在不同编码之间进行文件转换程序

java实现在不同编码之间进行文件转换,使用 InputStreamReader 或者FileReader 类,它们可以自动地把某个特定字符编码转换为本地字符代码.否则就使用DataOutputStream 类当中的writeUTF()方法以Unicode 文本写字符串,当然,读取的时候必须使用DataInputStream 打开它,并且使用readUTF()方法读取这些字符串. 为什么要转换编码呢?大家都知道,Java 语言是以Unicode 为基础的,但是操作系统都有它们自己内部的可能是与U