文档库 最新最全的文档下载
当前位置:文档库 › java,swt,拖拽完整例子

java,swt,拖拽完整例子

java,swt,拖拽完整例子
java,swt,拖拽完整例子

import org.eclipse.swt.SWT;

import org.eclipse.swt.dnd.DND;

import org.eclipse.swt.dnd.DragSource;

import org.eclipse.swt.dnd.DragSourceEvent;

import org.eclipse.swt.dnd.DragSourceListener;

import org.eclipse.swt.dnd.DropTarget;

import org.eclipse.swt.dnd.DropTargetAdapter;

import org.eclipse.swt.dnd.DropTargetEvent;

import org.eclipse.swt.dnd.FileTransfer;

import org.eclipse.swt.dnd.TextTransfer;

import org.eclipse.swt.dnd.Transfer;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.events.SelectionListener;

import org.eclipse.swt.graphics.Point;

import org.eclipse.swt.graphics.Rectangle;

import https://www.wendangku.net/doc/4513382955.html,yout.FillLayout;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Table;

import org.eclipse.swt.widgets.TableColumn;

import org.eclipse.swt.widgets.TableItem;

import org.eclipse.swt.widgets.TreeItem;

public class TestDNDTable {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

final Display display = new Display();

Shell shell = new Shell(display);

shell.setText("Table Test");

shell.setBounds(100, 100, 200, 200);

shell.setLayout(new FillLayout());

final Table table = new Table(shell, SWT.SINGLE | SWT.BORDER

| SWT.FULL_SELECTION | SWT.MULTI);

table.setHeaderVisible(true);

table.setLinesVisible(true);

TableColumn nameColumn = new TableColumn(table, SWT.NULL);

nameColumn.setText("name");

nameColumn.pack();

TableColumn ageColumn = new TableColumn(table, SWT.NULL);

ageColumn.setText("age");

ageColumn.pack();

TableColumn sexColumn = new TableColumn(table, SWT.NULL);

sexColumn.setText("sex");

sexColumn.pack();

TableItem item1 = new TableItem(table, SWT.NULL);

item1.setText(new String[] { "Dan", "23","男" });

TableItem item2 = new TableItem(table, SWT.NULL);

item2.setText(new String[] { "Zhao", "33","女" });

TableItem item3 = new TableItem(table, SWT.NULL);

item3.setText(new String[] { "Tian", "21" ,"男"});

TableItem item4 = new TableItem(table, SWT.NULL);

item4.setText(new String[] { "Jia", "45","妖" });

table.addSelectionListener(new SelectionListener() {

@Override

public void widgetSelected(SelectionEvent e) {

// TODO Auto-generated method stub

TableItem[] selected = table.getSelection();

if (selected.length > 0) {

System.out.println("name " + selected[0].getText(0)

+ " age " + selected[0].getText(1)+" sex"+selected[0].getText(2));

}

}

@Override

public void widgetDefaultSelected(SelectionEvent e) {

// TODO Auto-generated method stub

}

});

Transfer[] types = new FileTransfer[] { FileTransfer.getInstance() };

int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;

final DragSource source = new DragSource(table, operations);

source.setTransfer(types);

final TableItem[] dragSourceItem = new TableItem[1];

source.addDragListener(new DragSourceListener() {

public void dragStart(DragSourceEvent event) {

TableItem[] selection = table.getSelection();

if (selection.length > 0) {

event.doit = true;

dragSourceItem[0] = selection[0];

} else {

event.doit = false;

}

};

public void dragSetData(DragSourceEvent event) {

event.data = new String[] { dragSourceItem[0].getText(0),

dragSourceItem[0].getText(1),dragSourceItem[0].getText(2) };

}

public void dragFinished(DragSourceEvent event) {

if (event.detail == DND.DROP_MOVE)

dragSourceItem[0].dispose();

dragSourceItem[0] = null;

}

});

DropTarget target = new DropTarget(table, operations);

target.setTransfer(types);

target.addDropListener(new DropTargetAdapter() {

public void dragOver(DropTargetEvent event) {

event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;

if (event.item != null) {

TableItem item = (TableItem) event.item;

Point pt = display.map(null, table, event.x, event.y);

Rectangle bounds = item.getBounds();

if (pt.y < bounds.y + bounds.height / 3) {

event.feedback |= DND.FEEDBACK_INSERT_BEFORE;

} else if (pt.y > bounds.y + 2 * bounds.height / 3) {

event.feedback |= DND.FEEDBACK_INSERT_AFTER;

} else {

event.feedback |= DND.FEEDBACK_SELECT;

}

}

}

public void drop(DropTargetEvent event) {

if (event.data == null) {

event.detail = DND.DROP_NONE;

return;

}

String[] text = (String[]) event.data;

if (event.item == null) {

TableItem item = new TableItem(table, SWT.NONE);

item.setText(text);

} else {

TableItem item = (TableItem) event.item;

Point pt = display.map(null, table, event.x, event.y);

Rectangle bounds = item.getBounds();

if (item != null) {

TableItem[] items = table.getItems();

int index = 0;

for (int i = 0; i < items.length; i++) {

if (items[i] == item) {

index = i;

break;

}

}

if (pt.y < bounds.y + bounds.height / 3) {

TableItem newItem = new TableItem(table, SWT.NONE,

index);

newItem.setText(text);

} else if (pt.y > bounds.y + 2 * bounds.height / 3) {

TableItem newItem = new TableItem(table, SWT.NONE,

index + 1);

newItem.setText(text);

} else {

TableItem newItem = new TableItem(table, SWT.NONE);

newItem.setText(text);

}

}

}

}

});

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

}

}

JAVA经典算法案例

JA V A经典算法40例 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % i==0 ) return false; return true; } } 【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水

Java经典编程题50道

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】

java循环结构while基础入门

1 while循环的基本格式 /* while循环的基本格式: while(判断条件语句) { 循环体语句; } 扩展格式: 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } 通过这个格式,我们就可以看到其实和for循环是差不多的。 for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } */ class WhileDemo { public static void main(String[] args) { //输出10次"HelloWorld" //for语句版 for(int x=0; x<10; x++) {

System.out.println("HelloWorld"); } System.out.println("--------------"); //while语句版 int x=0; while(x<10) { System.out.println("HelloWorld"); x++; } } } 2 while循环的实现 /* 练习:用while循环实现 左边:求出1-100之和 右边:统计水仙花数有多少个 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } for(初始化语句;判断条件语句;控制条件语句) {

循环体语句; } */ class WhileDemo2 { public static void main(String[] args) { //求出1-100之和 //for语句版本 int sum = 0; for(int x=1; x<=100; x++) { sum+=x; } System.out.println("sum:"+sum); System.out.println("--------"); //while语句版本 int sum2 = 0; int y=1; while(y<=100) { sum2+=y; y++; } System.out.println("sum2:"+sum2); System.out.println("--------"); } }

《Java范例开发大全》

下面是377个Java的例子。如果你是牛人,看看你能做出多少? 如果有人不相信这些例子都是Java做的,可以看看清华大学的《Java范例开发大全》实例1开发第一个Java程序 实例2自动提升 实例3自动转换 实例4常用基础类型之强制转换 实例5算术运算符 实例6关系运算符 实例7逻辑运算符 实例8位运算符 实例9移位运算符 实例10转型运算符 实例11常量与变量 实例12各种进制的转换 实例13 Java中的进制与移位运算符 实例14判断输入的年份是否为闰年 实例15抽奖活动 实例16xx乘法表 实例17如何列出素数 实例18 Java中的递归 实例19男生女生各多少人

实例20求xx数 实例21求任意一个正数的阶乘 实例22求n的n次方 实例23利用for循环输出几何图形 实例24xx 实例25求1到100之间的和 实例26存上100元需要多少天 实例27输出100之间的所有偶数 实例28如何判断回文数字 实例29输出100之间的所有奇数 实例30求最大的随机数 实例31判断字母分类 实例32优良及差 实例33打印任意一年日历 实例34一年四季的划分 实例35除0发生的算术异常(ArithmeticException) 实例36数组下标越界异常(ArrayIndexOutOfBoundsException)实例37数组元素类型不匹配异常(ArrayStoreException) 实例38强制类型转换异常(ClassCastException) 实例39索引越界异常(IndexOutOfBoundsException) 实例40空指针异常(NullPointerException)

JAVA算法100例_全源码

JA V A经典算法40题 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true;

java_循环结构一_教案

第5章循环结构一 一、整章授课思路 ........................................................................................................................... - 2 - 二、回顾、预习检查、任务、目标部分: [10分钟] ...................................................................... - 3 - 三、课程知识点讲解: ................................................................................................................... - 3 - 1.while循环结构:[30分钟] .......................................................................................................................... - 3 - 2.do-while循环结构:[20分钟] .................................................................................................................... - 4 - 3.程序调试:[30分钟] .................................................................................................................................... - 5 - 四、本章总结[10分钟] ................................................................................................................ - 5 - 五、学员问题汇总 ........................................................................................................................... - 5 - 六、作业 ........................................................................................................................................... - 6 -

java循环练习及答案

循环练习 1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。用户可以循环进行输入,如果输入n就退出系统。(使用do-while循环实现) public class A2 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String ke=""; do { S ystem.out.println("请输入代码:"); k e=scanner.next(); i f(ke.equals("1")){ System.out.println("使用Java语言理解程序逻辑"); } i f(ke.equals("2")){ System.out.println("使用HTML语言开发商业站点"); } i f(ke.equals("3")){ System.out.println("使用SQL Server管理和查询数据"); } i f(ke.equals("4")){ System.out.println("使用C#开发数据库应用程序"); } i f(ke.equals("n")){ System.out.println("出错!"); break; } } while (true); } } 2、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(使用for循环实现)

class A3 { public static void main(String[] args) { double mon = 10000; for( int i = 0; i < 5; i++){ mon *= 1+0.003; } System.out.println("5年后,获得的本金是"+mon+"元"); } } 3、求整数1~100的累加值,但要求跳过所有个位为3的数。(使用for循环实现) public class A4 { public static void main(String[] args) { int i = 0,n=0; for (int a = 0; a < 10; a++) { for (int b = 0; b <= 9; b++) { if (b!=3) { i=a*10+b; n+=i; } } } n+=100; System.out.println(n); } } 4、输入一个正整数N,判断该数是不是质数,如果是质数输出“N是一个质数”,否则输出“N不是质数”。提示:质数的含义:除了1和它本身不能被任何数整除。(使用for循环实现) import java.util.Scanner; public class A5 { public static void main(String[] args) { int n,m=0; Scanner N=new Scanner(System.in); System.out.println("请输入要判断的数字:"); do{ n=N.nextInt(); for (int i = 2; i < n; i++) { if (n%i==0) { m=1; }

如何用记事本编写一个简单的java代码

如何用记事本编写一个简单的j a v a代码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一:怎么用记事本写第一个java代码 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为,如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

然后我们同时按Ctrl+s键保存,然后关闭记事本即可 上面的源代码如下: public class Test{//这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java中的主函数的写法 "HelloWorld");//java中的输出语句写法 } } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac 然后回车,最后输入java Test,就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 二:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为,如果你是把你的文档文档建立在D盘,则应该输入D: 以此类推。 2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为,则输入的情况如下, cd CH表示转到CH这个文件夹下,然后再输入回车,再输入java Test 就可以看到运行结果了

Java程序设计之swt教程

J a v a程序设计之s w t 教程 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

第4章 SWT图形用户界面 本章要点 1.SWT程序开发步骤。 2.SWT常用组件的使用。 3.SWT的布局。 4.SWT的事件处理。 5.SWT Designer简介。 本章难点 1.SWT常用组件的使用。 2.SWT的布局。 3.SWT的事件处理。 JFace简介 SWT(Standard Widget Toolkit)即标准小窗口工具箱,是公司推出的一种在Eclipse中使用的集成开发环境,SWT提供可移植的API,并与底层本机OS GUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。SWT由JNI(Java Native Interface,Java本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观。 JFace是一个用户界面工具箱,也是一个易用、功能强大的图形包,它简化了常见的图形用户界面的编程任务。SWT和JFace都是Eclipse平台上的主要组件。JFace是在SWT的基础上创建的,但JFace并不能完全覆盖SWT的功能,

JFace和SWT的关系如图所示。由于JFace的功能更强大,因此做图形界面开发时一般优先选用JFace。 图 JFace和SWT的关系 SWT程序开发步骤 在eclipse的plugins目录下,找到文件,文件名中中是eclipse的版本号,v3235是SWT的序列号,不同的eclipse版本这两个数字也不同。在DOS状态下,用jar命令将该文件解压,命令格式如下: jar xf 该命令将指定的文件解压到当前目录下。解压后得到四个DLL文件:,,和。这四个文件就是SWT的原生库文件。原生库文件为SWT通过JNI访问windows本地API提供了接口,为使Java程序在启动时能够访问这些文件,可以通过以下方法进行设置: 方法一:将这四个DLL文件复制到jre的bin目录下。 方法二:设置环境变量,在PATH中加入这几个dll文件所在的目录。 方法三:在eclipse的Java项目中导入原生库文件。操作方法是: 在eclipse的包资源管理器中,右单击项目名→导入→常规→文件系统→下一步→浏览→选择DLL文件所在目录→确定→勾选DLL文件→完成。 导入SWT的原生库文件后,还要在eclipse的Java项目中配置构建路径,添加外部JAR,将文件加入到项目中,操作方法是:

教案java循环for方法

Java for方法(循环第二课) 单位:北京第六十六中学 作者:徐超 一、教学背景分析 (一)教材分析 本节课的教学内容是中国地图出版社出版的普通高中课程标准实验教科书《程序设计基础》第二单元,第4节循环结构的第二节课。主要内容是学习对java语言for循环的认识与使用。 (二)学情分析 学生是高中一年级的学生,学习java程序设计以有16学识,因程序设计属于理科知识,对于一部分偏文科学生学习起来有一定的难度,造成学生相应差异。学生们不喜欢学习活跃的课堂气氛,喜欢做有趣的任务,学习使用的知识,有一部分同学喜欢挑战自己,又有部分同学不爱动脑子。但是这个年龄段的学生有着共同的特点:好奇心强、思维敏捷、有一定的独立思维能力,接受新事物能力较强。所以教师在课堂上要善于抓住学生的这些特点,对症下药,以取得较好的效果。 (三)教学方式与手段 针对教材与学生特点,在课堂上要善于抓住学生的这些特点,对症下药,以取得较好的效果 教学方式:任务驱动为主,教师引导方式为辅。 (四)技术准备 硬件:计算机教室投影仪 软件:多媒体网络教室 二、本课教学目标设计 知识与技能: 1、认识与了解java语言中的for()方法。 2、学会使用for方法表示循环结构。 3、会设置循环变量与条件。 过程与方法: 能够根据任务要求更改循环变量、条件控制循环次数,学习

for()方法的使用,并尝试用其去描绘已有的流程图。情感态度与价值观: 通过游戏提升同学学习java程序的兴趣。 三、教学过程与教学资源设计 让学生们与for方法比较,找到循环 结构相关参数与for方法参数的对应 关系。 任务1: 改一改,更改命数,改变游戏难易度 学生做任务教师查看学生任务情况,

如何写一个正确的JAVA程序

若在定义中出现了常数初始化字符,则大写基本类型标识符中地所有字母.这样便可标志出它们属于编译期地常数.个人收集整理勿做商业用途 包()属于一种特殊情况:它们全都是小写字母,即便中间地单词亦是如此.对于域名扩展名称,如,,或者等,全部都应小写(这也是和地区别之一).个人收集整理勿做商业用途() 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素地定义:() () () ()( ) () 对于自己创建地每一个类,都考虑置入一个(),其中包含了用于测试那个类地代码.为使用一个项目中地类,我们没必要删除测试代码.若进行了任何形式地改动,可方便地返回测试.这些代码也可作为如何使用类地一个示例使用.个人收集整理勿做商业用途() 应将方法设计成简要地、功能性单元,用它描述和实现一个不连续地类接口部分.理想情况下,方法应简明扼要.若长度很大,可考虑通过某种方式将其分割成较短地几个方法.这样做也便于类内代码地重复使用(有些时候,方法必须非常大,但它们仍应只做同样地一件事情). () 设计一个类时,请设身处地为客户程序员考虑一下(类地使用方法应该是非常明确地).然后,再设身处地为管理代码地人考虑一下(预计有可能进行哪些形式地修改,想想用什么方法可把它们变得更简单).个人收集整理勿做商业用途 () 使类尽可能短小精悍,而且只解决一个特定地问题.下面是对类设计地一些建议:■一个复杂地开关语句:考虑采用“多形”机制 ■数量众多地方法涉及到类型差别极大地操作:考虑用几个类来分别实现 ■许多成员变量在特征上有很大地差别:考虑使用几个类. () 让一切东西都尽可能地“私有”——.可使库地某一部分“公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出.若强行拿出,就可能破坏其他人现有地代码,使他们不得不重新编写和设计.若只公布自己必须公布地,就可放心大胆地改变其他任何东西.在多线程环境中,隐私是特别重要地一个因素——只有字段才能在非同步使用地情况下受到保护.个人收集整理勿做商业用途 () 谨惕“巨大对象综合症”.对一些习惯于顺序编程思维、且初涉领域地新手,往往喜欢先写一个顺序执行地程序,再把它嵌入一个或两个巨大地对象里.根据编程原理,对象表达地应该是应用程序地概念,而非应用程序本身.个人收集整理勿做商业用途() 若不得已进行一些不太雅观地编程,至少应该把那些代码置于一个类地内部. () 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作(参见第章小节地“用内部类改进代码”).个人收集整理勿做商业用途() 尽可能细致地加上注释,并用注释文档语法生成自己地程序文档. () 避免使用“魔术数字”,这些数字很难与代码很好地配合.如以后需要修改它,无疑会成为一场噩梦,因为根本不知道“”到底是指“数组大小”还是“其他全然不同地东西”.所以,我们应创建一个常数,并为其使用具有说服力地描述性名称,并在整个程序中都采用常数标识符.这样可使程序更易理解以及更易维护.个人收集整理勿做商业用途 () 涉及构建器和异常地时候,通常希望重新丢弃在构建器中捕获地任何异常——如果它造成了那个对象地创建失败.这样一来,调用者就不会以为那个对象已正确地创建,从而盲目地继续.个人收集整理勿做商业用途

Java_循环结构二_教案

第6章循环结构二 一、整章授课思路 ........................................................................................................................... - 2 - 二、回顾、预习检查、任务、目标部分: [10分钟] ...................................................................... - 3 - 三、课程知识点讲解: ................................................................................................................... - 3 - 1.for循环结构:[30分钟] .............................................................................................................................. - 3 - 2.关键字break和continue:[20分钟] .......................................................................................................... - 4 - 3.二重循环:[30分钟] .................................................................................................................................... - 5 - 四、本章总结[10分钟] ................................................................................................................ - 6 - 五、学员问题汇总 ........................................................................................................................... - 6 - 六、作业 ........................................................................................................................................... - 6 -

Java循环结构习题

A,求1到100以内的素数.要求每10个数换一行。 1.public class SuShu{ 2.public static void main(String[] args) { //求1到100的素数,实际就是求2 到99的素数,要知道的知识点是除2以为,所有的偶数都是素数。 3.inti,y;//必须在for语句之前定义,可以不对变量赋值 4.int t=0; 5.for(i=2;i<=99;i++){ 6. for( y=2;y<=i;y++) 7. { if(i%y==0) 8. break; 9. } 10.if(y==i){ 11.System.out.print(" "+y); 12.t++; 13.} 14. if(t%10==0){ 15.System.out.println(); 16. } 17. 18. 19.} 20.} 21.} B,一个自然数是素数,且它的数字位置任意对换后形成的数仍未素数,这种数叫做绝对素数,例如13 和31。编写一个程序,显示100以内的所有绝对素数。 分析,由题意可以知道必须是两位数字,而且只能有1、3、7、9组合,个位为5的能被5整数,不是素数。 publicclass Demo{ publicstaticvoid main(String[] args) { for(int i=10;i<=100;i++) { if(isSushu(i)&&isSushu(conveter(i))) { System.out.print(i+" "); }

} } staticboolean isSushu(int i)//i是否为素数 { int j=2; //用2到i-1之间的任一整数去整除 for(;j

看完这30个技巧让你写好Java代码

看完这30个技巧让你写好Java代码 2019.8整理 成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 (2) 为了常规用途而创建一个类时,请采取”经典形式”,并包含对下述元素的定义:

(3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。 (4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。 (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 (6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议: ?一个复杂的开关语句:考虑采用”多形”机制 ?数量众多的方法涉及到类型差别极大的操作:考虑用几个类来分别实现 ?许多成员变量在特征上有很大的差别:考虑使用几个类 (7) 让一切东西都尽可能地”私有”–private。可使库的某一部分”公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出。若强行拿出,就可能破坏其他人现有的代码,使他们不得不重新编写和设计。若只公布自己必须公布的,就可放心大胆地改变其他任何东西。在多线程环境中,隐私是特别重要的一个因素–只有private字段才能在非同步使用的情况下受到保护。 (8) 谨惕”巨大对象综合症”。对一些习惯于顺序编程思维、且初涉OOP领域的新手,往往喜欢先写一个顺序执行的程序,再把它嵌入一个或两个巨大的对象里。根据编程原理,对象表达的应该是应用程序的概念,而非应用程序本身。 (9) 若不得已进行一些不太雅观的编程,至少应该把那些代码置于一个类的内部。 (10) 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作(参见第14章14.1.2小节的”用内部类改进代码”)。 (11) 尽可能细致地加上注释,并用javadoc注释文档语法生成自己的程序文档。

java经典案例与项目

Java学习的经典的案例收集 1:九九乘法表 /* 功能:实现九九乘法表的输出 时间:2013年7月4日 */ public class jiujiuchengfabiaoDemo { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 结果: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 2:输出等腰三角形 public class SanJiaoDemo { public static void main(String[] args) { for(int a=1;a<=5;a++){ for(int b=1;b<=5-a;b++){ System.out.print(" "); }

Java九大示例程序

JAVA面向对象九个经典例子程序 1 Hello world例子 (1) 2 类的基本组成示例 (1) 3静态与非静态变量及方法的使用 (3) 4 类继承的例子 (3) 5类的访问修饰符 (4) 6抽象类及其实现示例 (5) 7接口及其实现 (6) 8 抽象类与接口混合编程例子 (7) 9 接口回调与多态性 (8) 1 Hello world例子 package Example; //定义自己的包名 public class Example1 //定义一个类 { public static void main(String[] args) //系统可以执行的main方法,这里是一个公有静态无返回值的方法 { System.out.println("Hello world!"); //调用https://www.wendangku.net/doc/4513382955.html,ng包中的System类的PrintLine方法输出Hello world! } } 2 类的基本组成示例 package Example; class Person { public int age; //声明公共字段age private String name; //声明私有字段name,此时name为类的属性,下面通过公有方法进行访问 public String getName() { return name;

} public void setName(String name) { https://www.wendangku.net/doc/4513382955.html, = name; } public void eat() //定义无参数的eat方法 { System.out.println("Person can eat"); } public void eat(String s) //定义带参数的eat方法,实现方法重载 { System.out.println("Person can eat"+s); } public Person() //定义无参构造函数,注意无返回值定义,方法与类同名 { } public Person(int age, String name) //重写一个带参数构造函数,注意无返回值定义,方法与类同名 { this.age = age; //前一个age为对象的字段,由this指定,后一个age为函数形参 https://www.wendangku.net/doc/4513382955.html, = name; //前一个name为对象的属性,由this指定,因为在本类中可直接访问,后一个name为函数形参 } } public class Example2 { public static void main(String[] args) { Person person1 = new Person(); //调用类的无参构造函数 person1.age = 20; //给对象的公有字段直接赋值 person1.setName("zhangsan"); //必须使用公共方法才能给对象的属性赋值 System.out.println("第一个人信息,姓名:"+person1.getName()+"年 龄:"+person1.age); person1.eat(); //调用对象的无参方法 Person person2 = new Person(18, "lisi");//调用类的有参构造函数 System.out.println("第二个人信息,姓名:"+ person2.getName() + "年龄:"+ person2.age); person2.eat(" 馒头"); //调用对象的有参方法 } }

《Java程序设计》题目样例

【题目样例】 一、单选题 1.下面哪个特性不是Java具有的(D )。 A、“纯”面向对象 B、安全性高 C、可移植性好 D、运行速度快 2.下面哪个类型是Java中不支持的(C )。 A、布尔类型 B、字符串 C、指针 D、数组 3.下面哪个不属于Java语言的关键字(B )。 A、native B、const C、final D、finally 4.下面关于数组的使用,不正确的是(C )。 A、int a[] = {1, 2, 3}; B、int a[][] = {{ 1, 2 }, { 3, 4} }; C、int a = new int[6] for (int i=0; i<6; i++) a[i] = i * i; D、int a[][] =new int[2][ ]; int a[1] = new int [4]; int a[2] = new int[5]; 5.应用程序的main方法中有以下语句,则输出的结果是(A )。 String obj = new String("abcxyz"); for(int i = obj.length() - 1; I > 0; i--) System.out.print(obj.charAt(i)); A、zyxcba B、xyz C、zyxcb D、abcxyz 6.下面函数,哪一组不属于方法重载(A )。 A、int fun(int a, int b, float c) { … } float fun(int b, int a, float c) { … } B、int fun(int a, int b) { … } int fun(int a, int a, float c) { … } C、int fun(int a) { … } int fun(int a, int b) { … } D、int fun(int a, float b) { … } int fun(float b, int a) { … } 7.若创建RandomAccessFile类对象raf2: RandomAccessFile raf2 = new RandomAccessFile("1.txt", "rw"),该语句的功能是(B )。 A、打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。 B、打开当前目录下的文件1.txt,既可以向文件写入数据,也可以从文件读取数据。 C、打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。 D、以上说法都不对。 8.应用程序main方法中有以下语句,则输出的结果是(A )。 String s = "java@123456@"; int n = s.indexOf("@"); int k = s.indexOf("@", 5); String s2 = s.substring(n + 1, k);

相关文档
相关文档 最新文档