java 上机课常见问题整理

上传人:第*** 文档编号:49624107 上传时间:2018-07-31 格式:PPT 页数:34 大小:1.70MB
返回 下载 相关 举报
java 上机课常见问题整理_第1页
第1页 / 共34页
java 上机课常见问题整理_第2页
第2页 / 共34页
java 上机课常见问题整理_第3页
第3页 / 共34页
java 上机课常见问题整理_第4页
第4页 / 共34页
java 上机课常见问题整理_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《java 上机课常见问题整理》由会员分享,可在线阅读,更多相关《java 上机课常见问题整理(34页珍藏版)》请在金锄头文库上搜索。

1、LOGO附录1 上机课常见问题UPCUPC第一章 Java语言基础知识1、课件下载地址:暂无2、查看源文件的保存位置 Eclipse包视图中,右键点击源文件,选择“属 性”UPCUPC3、关于“Unsupported major.minor version”错误: 产生原因:使用了高版本的编译器(javac)编 译,但无法使用低版本的解释器(java)运行 。 举例:使用jdk1.6编译后,在jdk1.3中无法运行 解决方法:在Path环境变量设置中,将高版本 的JDK路径放在前面。UPCUPC 例如:Path= “D:Program FilesJavajdk1.6.0_07bin; C:Pr

2、ogram FilesOraclejre1.3.1bin;” P.S. 使用“ version ”选项可查看当前版本 javac -version Java -UPCUPC4、解释器(java)无法执行带有绝对路径的 class文件。 产生原因:与Java机制有关(略) 举例:c:javacd:Eclipsetest.java 成功! c:javad:Eclipsetest 失败! 解决方法:UPCUPC 进入class文件所在目录执行,例如:C: D:D: cd EclipseD:Eclipsejava test成功! 使用“ d ”选项指定class文件存放位置,例 如:C: javac

3、-d . D:Eclipsetest.java / 其中的“ . ”表示当前工作目录,即保存到C:下C: java test成功!UPCUPC 配置classpath,添加class所在目录,例如:ClassPath=“d:Eclipse; ”c:javac d:Eclipsetest.java c:javatest 成功! 5、如何在Eclipse中运行Java Applet程序?在“包视图”中右键点击Applet类,选择“Run As”“Java Applet”UPCUPC第二章 类与对象的基本概念1、如何从键盘读入数据? 使用BufferedReader类,示例: import java

4、.io.*; public static void main(String args) throws IOException BufferedReader reader = new BufferedReader( new InputStreamReader ( System.in ) );String s = reader.readLine();System.out.println(s);UPCUPC 注意要点: 需要引入“java.io”包中的BufferedReader、 IOException和InputStreamReader类 需要在Main方法末尾增加“throws IOExcep

5、tion”抛 出异常 用readLine方法读取一行字符串 用read读取单个字符,返回的值是整型(Unicode 码)UPCUPC 使用Scanner类,示例: import java.util.Scanner; int number1, number2; Scanner sc; System.out.println(“请输入两个数字:“); sc = new Scanner(System.in); number1 = sc.nextInt(); number2 = sc.nextInt(); System.out.println(number1 + “ “ + number2);UPCUP

6、C 注意要点: 需要引入java.util.Scanner类 使用Scanner对象的nextInt方法依次读取整数(还 有nextDouble等方法,用法类似) 输入整数时,用空格分隔多个整数,如:本例中要读 入两个整数,因此可输入 12 UPCUPC 使用对话框JOptionPane类,示例: import javax.swing.JOptionPane; String str=JOptionPane.showInputDialog(“输入整数 :“); 注意要点:需要引入“javax.swing.JOptionPane”类使用JOptionPane对象的showInputDialog方法

7、产生对话框UPCUPC2、如何将读取的字符串转化为整数?从键盘读入的数据为字符串类型,要想作为整 数使用,必须进行类型转换 可以使用Interger的parseInt方法进行转换 例如:Integer.parseInt(str)UPCUPC3、如何产生随机数? 使用Math类的random方法可以产生一个 0.01.0的随机浮点数(不包含1.0) 要想产生1100的随机整数,可以使用语句: (int)(Math.random()*100)+14、求绝对值使用Math.abs()方法do switch(flag) case 0:System.out.println(“恭喜你答对了,获得美女一名“

8、);y=y+10;/玩家得分xi=xi-10;/电脑得分break; case 1:System.out.println(“猜小了,美女都归我了,哈哈“);y=y+5; xi=xi-5;break; System.out.println(“继续吗(yes )“); chars=new Scanner(System.in); ch=chars.next(); while ( ch=“yes“ | ch=“Y“ );系统出数字,用户猜数字(代码省略 )判断系统与用户得分提示是否继续游戏?读取用户的输入5、UPCUPC问题:程序无法循环执行,即使用户输入了 “yes” 或者“Y”分析: (ch=“y

9、es” | ch=“Y” )始终为false原因:Java中,判断字符串相等不能用“=” : String类型是引用类型,使用“=”仅是判断两 个对象是否指向了内存中的同一地址UPCUPC C+中重载了“=”运算符以支持字符串判断 解决方法: 使用String对象的equals()方法判断字符串相等 : while(ch.equals(“yes“)|ch.equals(“Y“); UPCUPC补充:Java中判断空串与空对象 空字符串:长度为0的字符串,即:“ 空对象:String对象的引用为空,即:null 举例:sNULLsHello!0x3ABs0x58F长度为0的串String s=“

10、Hello!“;String s=“;String s=null;UPCUPC如果想判断一个String对象是否是空串, 但并不确定其是否是空对象,有以下方法 : s = null | s.equals(“) s = null | s.length() 1 s = null | s.isEmpty()UPCUPC第三章 继承与多态1、迷宫游戏提示: 关键问题: 创建随机地图 走迷宫的算法(找路径)UPCUPC迷宫创建地图 创建地图要注意: 首先要创建地图的边界(四周都是墙),并且 留出入口和出口。 for (int i = 0; i size; i +) pointArray0i = 1; /

11、左边界pointArraysize - 1i = 1; /右边界pointArrayi0 = 1; /上边界pointArrayisize - 1 = 1;/下边界 /设置起点、终点pointArraystartPoint.xstartPoint.y = -1;pointArrayendPoint.xendPoint.y = -1; 然后,边界以外的点用随机数生成 for (int i = 1; i size - 1; i +) for (int j = 1; j size - 1; j +) int iRan = (int) (Math.random() * 10) + 1) % 3; if

12、 (iRan = 0) / 障碍点 pointArrayij = 1; else pointArrayij = 0; / 67%概率无障碍UPCUPC迷宫走迷宫的算法 方法1:迷宫中每个点的走向有左右上下四 个方向,因此可以把地图存储为一个多叉树 ,起点是根节点,终点是一个叶节点 那么:此时,走迷宫就变成了多叉树遍历算 法,看有无路径到达指定的叶子节点UPCUPC迷宫走迷宫的算法方法2:不改变数据结构,按照每个点左、 右、上、下的顺序遍历,看能否到达终点 。要点: 如果要保存遍历过的点,使用数组很不方便, 可以使用栈Stack、队列Queue、数组列表 ArrayList、链表列表Linked

13、List等动态集合 。具体用法可参考教材第13章或者其他资料 为了方便记录每个点的走向,可定义Point类 ,并且提供“方向”属性和“改变朝向”方法。void changeDirection() if (dict = Dict.left) dict = Dict.up; else if (dict = Dict.up) dict = Dict.right; else if (dict = Dict.right) dict = Dict.down; else dict = Dict.none; class Pointint x = 0; int y = 0;static enum Dict left,right,up,down,no neDict dict; /点的朝向UPCUPC 递归遍历算法的基本思路:首先定义堆栈,将起点入栈(因为起点必然是 可达的,即:无障碍的)当未到终点且栈不

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号