上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
对于每个几何图形而言,都有一些共同的属性,如名字、面积等,而其计算面积的方法却各不相同。为了简化开发,请编写程序,定义一个超类来实现输入名字的方法,并使用抽象方法来计算面积。思路分析:所谓超类就是抽象父类,该抽象类中有两个方法,分别用来获取图形的名称和图形的面积。要获得图形的名称,通过类的getClass().getSimpleName()方法可以实现;要获得图形的面积,因为计算面积的方法各不相同,所以该方法是个抽象方法。定义一个子类表示圆形,圆形的半径通过构造方法获得,圆形的面积通过重写超类中的抽象方法获得,其中圆周率可以用Math.PI表示。其他类同步骤2,半径、长、宽等参数通过构造方法获 Read More
posted @ 2014-02-22 15:16 源子陌 Views(5269) Comments(0) Diggs(0)
对于在同一家公司工作的经历和员工而言,两者是有很多共同点的。例如,每个月都要发工资,但是经理在完成目标任务后,还会获得奖金。此时,利用员工类来编写经理类就会少写很多代码,利用继承技术可以让经理类使用员工类中定义的属性和方法。编写程序,通过继承演示经理与员工的差异。思路分析:典型的继承问题。父类是员工类,子类是经理类,经理类继承员工类,这样经理类中就只用额外实现奖金,即增加表示奖金的成员变量和设置及获取奖金的成员方法。代码如下:import java.util.Date; public class Employee { private String name; //员工的姓名 ... Read More
posted @ 2014-02-22 11:18 源子陌 Views(1491) Comments(1) Diggs(1)
对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。编写程序为普通的汽车增加GPS定位功能,借此演示适配器模式的用法。思路分析:这个问题的需求是,在主方法中分别设定普通汽车和GPS汽车的车名和速度,并分别输出普通汽车和GPS汽车的信息;首先需要定义一个父类代表普通汽车,它包括两个成员变量分别表示车名和速度,四个成员方法分别设置及获取车名和速度,并重写toString()方法使得该父类返回一个字符串类型的引用;定义一个接口,在该接口中定义提供定位功能的方法;定义一个子类,该子类继承父类并实现接口,包括一个成员方法,该方法利用汽车的速度来确定汽车的 Read More
posted @ 2014-02-22 00:13 源子陌 Views(756) Comments(1) Diggs(1)
在使用图像处理软件处理图片后,需要选择一种格式进行保存。然而各种格式在底层实现的算法并不相同,这刚好适合策略模式。编写程序,演示如何使用策略模式与简单工厂模式组合进行开发。思路如下:使用interface来定义一个接口,在该接口中定义save()方法;根据图片格式定义不同的类,分别在这些类中使用关键字implements实现接口;创建一个实现选择的类,在该类中定义实现选择的方法,该方法返回值为对应的图片保存类;在主方法中实现接口。代码如下:public interface ImageSaver { void save();//定义save()方法}public class GIFSave... Read More
posted @ 2014-02-21 00:05 源子陌 Views(1060) Comments(0) Diggs(0)
单例模式用于保证在程序的运行期间某个类有且仅有一个实例。其优势在于尽可能解决系统资源。通过修改构造方法的访问权限就可以实现单例模式。代码如下:public class Emperor { private static Emperor emperor = null;// 声明一个Emperor类的引用 private Emperor() {// 将构造方法私有 } public static Emperor getInstance() {// 实例化引用 if (emperor == null) { emperor = new Empe... Read More
posted @ 2014-02-20 22:13 源子陌 Views(725) Comments(3) Diggs(1)
汉诺塔问题的描述如下:有3根柱子A、B和C,在A上从上往下按照从小到大的顺序放着一些圆盘,以B为中介,把盘子全部移动到C上。移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的盘子。编程实现3阶汉诺塔的求解步骤。思路如下:要实现3阶汉诺塔的求解步骤,也就是说初始状态时,A上从上到下有三个盘子,分别为1号盘、2号盘和3号盘,其中1号盘最小,3号盘最大;判断剩余盘子个数,如果只有一个盘子就退出迭代,如果有大于一个盘子就继续迭代。代码如下:public class HanoiTower { public static void moveDish(int level, char fro... Read More
posted @ 2014-02-20 21:34 源子陌 Views(778) Comments(0) Diggs(0)
编写程序,通过复选框控件数组事先选择用户爱好信息的复选框,在该程序中,要求界面中的复选框数量可以根据指定复选框名称的字符串数组的长度来自动调节。思路如下:创建JPanel面板对象;使用JPanel类的setLayout(0,4)方法设置网格布局管理器,即列数为4,行数自动调节;创建一个字符串型一维数组作为控件文本数组;创建一个JCheckBox型一维数组作为控件数组;使用for循环遍历控件数组,初始化数组中的复选框组件,使用JPanel类的add()方法把数组元素(即每个复选框)添加到面板中。代码如下:package cn.edu.xidian.crytoll;import java.awt. Read More
posted @ 2014-02-18 23:36 源子陌 Views(4534) Comments(0) Diggs(0)
编写程序,实现将输入的字符串转换为一维数组,并使用选择排序法对数组进行排序。思路如下:点击"生成随机数"按钮,创建Random随机数对象;使用JTextArea的setText()方法清空文本域;创建一个整型一维数组,分配长度为10的空间;初始化数组元素,使用Random类的nextInt()方法生成50以内的随机数,使用JTextArea类的append()方法把数组元素显示在文本域控件中;点击"排序"按钮,使用JTextArea类的setText()方法清空文本域;使用双层for循环,对从第二个元素到最后一个元素的每一趟排序,对该趟排序所涉及的元素进 Read More
posted @ 2014-02-17 22:57 源子陌 Views(2589) Comments(0) Diggs(0)
编写程序,通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现模拟的计算器界面。思路如下:创建一个类,通过extends使其继承窗体类JFrame;创建一个JFrame对象,使用JFrame类的setVisible()方法设置窗体可见;在构造函数中,使用super()方法继承父类的构造方法;使用setTitle()方法设置窗体的标题;使用setBounds()方法设置窗体的显示位置及大小;使用setDefaultCloseOperation()方法设置窗体关闭按钮的动作为退出;使用GridLayout创建网格布局管理器对象;使用GridLayout类的setHgap()方法设置组件的 Read More
posted @ 2014-02-17 18:46 源子陌 Views(7235) Comments(6) Diggs(1)
编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名。思路如下:定义输入框的按键事件,使用KeyEvent类的getKeyChar()函数判断其是否是回车字符,若不是则不作处理;使用isEmpty()函数判断文本框中是否有字符串,如果没有字符串则不做处理;若为合法输入则通过JTextArea类的append()方法把输入人名与回车符添加到人员列表;使用selectAll()方法选择文本框所有字符;定义点击“抽取”按钮时执行的函数,通过JTextArea类的getText()方法获取人员列表文本,存入字符串;创建一个 Read More
posted @ 2014-02-17 17:55 源子陌 Views(4777) Comments(0) Diggs(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页