java实验题
- 格式:doc
- 大小:108.00 KB
- 文档页数:25
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
本学期主要内容:HTML+CSS+JavaScript、JSP(Java语言、内置对象、JSP标签)、Java Bean、Servlet、Struts框架重点实验:1、实验一第3个实验:提交表单前验证表单输入是否为空(JavaScript)2、实验二第1个实验(教材6.1.4程序6-10、6-11):表单数据传送(通过表单传递数据、显示汉字)3、实验二第2个实验:用户名、密码识别(JSP内置对象、java)4、实验二第5个实验:用户身份认证机制(利用session判断用户是否处于登录状态)5、实验三第2个实验(教材10.2.2 JSP Form与Java Bean组件的交互):表单绑定Java Bean组件实现数据传输。
6、实验四:访问mysql数据库,或者通过相对路径,直接访问access数据库文件。
查询数据库表,显示查询结果。
7、实验五第3个实验:使用Struts 1.x技术实现一个简单的MVC应用,输入并验证用户名、密码,符合要求则转到欢迎页面,否则回到用户名、密码输入页面。
(Struts MVC)注意:掌握每个实验的知识点并灵活运用,要考虑中文字符的处理。
1:实验一第3个实验:提交表单前验证表单输入是否为空(JavaScript)<script type="text/javascript">function checkform(){if(ername.value==""){alert("用户名不能为空!");return false;}else if(form.password.value==""){//这里的value不能要忘记了啊! alert("密码不能为空!");return false;}return true;}</script><form action="shiyanyi/33.jsp"method="post"name="form" onsubmit="return checkform()"><table align="center"><tr><td><font>用户名:</font><input type="text" name="username"/></td></tr><tr><td><font>密码:</font> <input type="password" name="password"/></td></tr><tr><td align="center"><input type="submit"value="提交"/></td></tr></table></form>2:实验二第1个实验(教材6.1.4程序6-10、6-11):表单数据传送(通过表单传递数据、显示汉字)1_form.html:::::<form action="1_form.jsp"method="post"name="form"> <table align="center"><tr><td><font>用户名:</font><input type="text" name="username"/></td></tr><tr><td><font>密码:</font> <input type="password" type="password"name="password"/></td></tr><tr><td align="center"><input type="submit"value="提交"/></td> </tr></table></form>1_form.jsp::::::<body><%request.setCharacterEncoding("gbk");String username = request.getParameter("username");String password = request.getParameter("password");%><p align="center">您的登录信息</p><p align="center">用户名:<%=username %></p><p align="center">密码:<%=password %></p></body>3:实验二第2个实验:用户名、密码识别(JSP内置对象、java)2_login.jsp::::<form action="shiyaner/2_check.jsp"method="post"name="form"> <table align="center"><tr><td><font>用户名:</font><input type="text" name="username"/></td></tr><tr><td><font>密码:</font> <input type="password" name="password"/></td></tr><tr><td align="center"><input type="submit"value="提交"/></td> </tr></table></form>2_check.jsp:::::<%request.setCharacterEncoding("gbk");String name=request.getParameter("username");String password = request.getParameter("password");if("谢结兵".equals(name)&&"谢结兵".equals(password)){session.setAttribute("username",name);response.sendRedirect("2_success.jsp");}else {response.sendRedirect("2_login.jsp");} %>2_success.jsp:::::<%request.setCharacterEncoding("gbk");String name =(String) session.getAttribute("username");%><br><p align="center"><font style="font-size: 20px;color: #ff00ff">欢迎您:</font><%=name %></p>4:实验二第5个实验:用户身份认证机制(利用session判断用户是否处于登录状态)5_login.jsp::::<form action="shiyaner/5_check.jsp"method="post"><font>用户名:</font><input type="text"name="username"/><br/> <font>密码:</font><input type="password" name="password"/><br/><input type="submit"value="提交"/></form>5_check.jsp:::<%request.setCharacterEncoding("gbk");String name=request.getParameter("username");String password = request.getParameter("password");if("谢结兵".equals(name)&&"谢结兵".equals(password)){session.setAttribute("login","ok");response.sendRedirect("5_main.jsp");}else {response.sendRedirect("5_login.jsp");} %>5_main.jsp::::欢迎成功登录!<a href="shiyaner/5_loginout.jsp">退出</a>5_verif.jsp:::::<%String vaild = (String)session.getAttribute("login");if(!"ok".equals(vaild)){response.sendRedirect("shiyaner/5_login.jsp");}%>5_loginout.jsp::::<% session.invalidate(); response.sendRedirect("5_login.jsp"); %> 5:实验三第2个实验(教材10.2.2 JSP Form与Java Bean组件的交互):表单绑定JavaBean组件实现数据传输。
浙江经贸职业技术学院实训报告系部______________ 班级____________ 姓名____________ 学号_______________日期______________ 地点____________ 指导教师_____________ 成绩实验七JAVA 面向对象编程(3)【实验目的】1.掌握JAVA语言类的定义和使用。
2.掌握JAVA语言对象的声明和使用。
3.掌握JAVA语言构造方法的概念和使用。
4.掌握类及其成员的访问控制符的区别和使用。
【预习内容】1. JAVA 类的定义格式;2.JAVA对象的使用三步骤:声明、创建以及初始化;3.访问控制修饰符:public、private和protected的功能和区别;4.JAVA构造方法的概念和特点;5.JAVA多态的概念,及重载和覆盖的区别;【实验内容及步骤】1.上机验证题1.阅读下面的程序,在main()方法里添加语句完成如下功能:(1)创建一个MyValue类的对象myValue.(2)为myValue对象中的value域赋值10。
(3)使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上。
class MyValue {private int value;public void setValue(int x) {value = x;}public int getValue() {return value;}}public class UseValue {public static void main(String args[]) {MyValue myvalue = new MyValue();myvalue.setValue(10);System.out.println(myvalue.getValue());}}[程序运行过程]2.(1)程序功能:通过LX7_1_P类产生子类LX7_2,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。
一、填空题1、面向对象程序的主要特征:继承,__封装___,___多态_____。
2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以__重用或复用___.3、java语言中,为将源代码翻译成__字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.5、java语言的主要贡献者是谁James gosling二、单选题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B)。
A、javaB、.classC、htmlD、.exe2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。
A、public static void main()B、public static void main(String args[])C、public static int main(String[] arg)D、public void main(String arg[])三、判断1、Java语言具有较好的安全性和可移植性及与平台无关等特性。
√2、Java语言的源程序不是编译型的,而是编译解释型的。
√四、问答题1、编写、运行java程序需要经过哪些主要步骤?答:1.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。
2、阅读下列java源代码文件,并回答问题public class Speak{void speakHello(){System.out.println("I'm glad to meet you");}}class Xiti8{public static void main(String args[]){Speak sp=new Speak();sp.speakHello();}}(1)上述源文件的名字是什么?Speak.java(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.class Xiti8.class第2章(1)基本数据类型练习题一、填空题1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_float__和__double__两种具体类型。
Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求 (1)第1章Java概述 (3)第2章Java语言基础 (5)第3章类的封装、继承和多态 (22)第4章接口、内部类和Java API基础 (37)第5章异常处理 (42)第6章图形用户界面 (44)第7章多线程 (49)第8章输入/输出流和文件操作 (51)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。
在计算机学科的本科教学中,起着非常重要的作用。
“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。
本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。
本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。
2. 教学基本要求本课程的基本要求如下。
①了解Java语言特点,理解Java Application应用程序的运行原理和方法。
掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。
②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。
③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。
④熟悉Java JDBC数据库应用的设计方法。
java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。
2. 描述Java中的继承是如何工作的,并给出一个继承的例子。
3. 解释Java中的多态性,并给出一个多态性的例子。
三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。
2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。
3. 创建一个名为`VehicleTest`的类,它包含`main`方法。
在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。
四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。
Java程序设计总复习题2. 编写一个Java程序,用if-else语句判断某年份是否为闰年。
// Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。
");elseSystem.out.println(year+" 年不是闰年。
");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。
(p64,例2-2)// programme name ForTest.javapublic class ForTest {public static void main( String args[] ) {int i,j,mul,sum=0;for(i=1;i<=10;i++) {mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;}System.out.println(“1!+2!+3!+……+10!= ”+sum);}}4. (1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。
一有关java的第四次题一、【必做题】1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is __” 2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 2)分别调用对象的sayHello()方法。
(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is __”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 2)分别调用对象的sayHello()方法。
(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。
6.(1)定义一个动物类Creature1)定义一个方法setSnarl(Cat cat)可以设置动物发出猫的声音2)setSnarl(Dog dog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法setSnarl(Cat cat)可以设置动物发出猫的声音(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法setSnarlDog dog)可以设置动物发出狗的声音(4)定义一个Sound类,在main方法里调用Creature类的setSnarl()和outPut()方法分别设置动物的声音和输出动物的声音效果显示:7.定义一个圆类Circle,描述圆对象。
实验一熟悉Java开发环境(验证性2学时)一、实验目的与要求:1 掌握Java Application程序的开发过程并编写第一个Java Application程序*2 掌握Java Applet程序的开发过程并编写第一个Java Applet程序。
*3 练习简单的HTML文件配合Java Applet使用。
4 熟悉jdk的使用二、实验内容:1 编写一个Java Application程序,在屏幕上显示”This is my first java program!”.*2 编写第一个Java Applet 程序,在屏幕上显示”This is my first Java Applet!”三、实验步骤:1、jdk的使用jdk开发工具包可以从网站下载,jdk不是集成编译环境,须手动运用命令行程序进行编译和解释执行1)编辑.java文件可以在记事本或其他纯文本编辑器中编辑,保存时把文件扩展名定为.java即可,当然要注意文件名命名的要求2)编译生成.class文件进入dos系统进行编译(如图1.1所示),格式如javac MyFirstApplication.java,要注意图1.1进入命令行看javac.exe的路径并且MyFirstApplication.java文件路径和javac.exe路径一样。
编译成功后就能在浏览器中看见多了一个MyFirsApplication.class或更多的.class文件。
如图1.2所示图1.2使用jdk编译MyFirstApplication.java文件3)解释执行Application程序:同样是在dos系统下解释执行,格式如java MyFirstApplication,注意.class后缀别加,如图1.3所示。
图1.3解释执行MyFirstApplication.class程序* applet程序进入dos系统进行编译,格式如javac MyFirstApplet.java,要注意看javac.exe的路径并且MyFirstApplet.java文件路径和javac.exe路径一样。
练习题:一、读程序,写出和程序输出格式一致的输出结果。
1、class J_SuperClass {void mb_method() {System.out.println("J_SuperClass::mb_method");}static void mb_methodStatic() {System.out.println("J_SuperClass::mb_methodStatic"); } }public class J_Test extends J_SuperClass {void mb_method() {System.out.println("J_Test::mb_method");}static void mb_methodStatic() {System.out.println("J_Test::mb_methodStatic");}public static void main(String[] args) {J_SuperClass a = new J_Test();a.mb_method();a.mb_methodStatic();J_Test b = new J_Test();b.mb_method();b.mb_methodStatic();}}输出结果:32342、class ValHold {public int i = 10;}public class ObParm {public static void main(String[] args) {ObParm o = new ObParm();o.amethod();}public void amethod() {int i = 99;ValHold v = new ValHold();v.i = 30;another(v, i);System.out.println(v.i + " " + i);}public void another(ValHold v, int i) {i = 0;v.i = 20;ValHold vh = new ValHold();v = vh;System.out.println(v.i + " " + i);}}输出结果:10 020 993、class J_SuperClass {int m_data;J_SuperClass() {mb_add(1);}public void mb_add(int i) {m_data += i;}public void mb_print() { System.out.println(m_data);}}class J_SubClass extends J_SuperClass { J_SubClass() {mb_add(2);}public void mb_add(int i) {m_data += i * 2;}}public class J_Test {public static void mb_method(J_SuperClass a) { a.mb_add(6);a.mb_print();}public static void main(String[] args) {mb_method(new J_SubClass());}}输出结果:184、public class Two {public static void main(String[] args) {One one = new One("Hello");one.getString("Xiao ming!");}}class One {private String myStr;public One(String str) {myStr = str;}public void getString(String str) { System.out.println(myStr + " " + str);}}输出结果:Hello Xiao ming!5、public class J_Test {String m_kobe = "1";String[] m_king = {"2"};public static void main(String[] args) {J_Test app = new J_Test();app.mb_operate(app.m_kobe, app.m_king); System.out.println(app.m_kobe+app.m_king[0]); } static void mb_operate(String kobe, String[] king) { kobe = new String("3");king[0] = new String("4");}}输出结果:141.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。
java程序设计实验指导书答案【篇一:java程序设计实验指导书】=txt>一、实验目的及要求1. 安装并配置java运行开发环境;2. 掌握开发java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序;3. 学习同时编译多个java源文件;4. 掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;5. 掌握使用if…else分支和while循环语句解决问题。
二、实验学时6学时三、实验任务1.安装jdk,设置环境变量path和classpath。
1)下载jdk2)安装jdk运行下载的“jdk-6u1-windows-i586-p.exe”软件包,在安装过程中可以设置安装路径及选择组件,默认的组件选择是全部安装,安装成功后,其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发java程序使用,demo文件夹中包含开源代码程序实例。
3)jdk中主要文件夹和文件安装成功后,d:\java\jdk1.6中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。
设置环境变量jdk中的工具都是命令行工具,需要从命令行即ms-dos提示符下运行它们。
以windows xp为例说明设置过程。
右击桌面“我的电脑”图标,选择“属性”菜单在“高级”选项卡中单击“环境变量”按钮,将出现“环境变量”设置界面在“系统变量”框中点击“新建”按钮,在出现的“编辑系统变量”对话框中,在“变量名”栏的文本框内输入“javahome”,在变量值栏的文本框内输入“d:\java\jdk1.6”(即jdk安装的主目录)在“系统变量”框中选择“path”,然后单击“编辑”按钮,在出现的“编辑系统变量”对话框中,在“变量值”栏的命令后添加“;%javahome%\bin”。
单选题1.下面选项中,哪一个不是Java中的关键字A.sizeofB.constC.publicD.goto正确答案:A2.下列关于JDK的说法中,错误的是?A.JDK是Java开发工具包的简称B.JDK包括Java编译器、Java文档生成工具、Java打包工具等C.安装JDK后,还需要单独安装JRED.JDK是整个Java的核心正确答案:C3.下列关于while语句的描述中,正确的是A.while语句循环体中可以没有语句B.while语句的循环条件可以是整型变量C.while语句的循环体必须使用大括号D.while语句的循环体至少被执行一次正确答案:A4.在类的继承关系中,需要遵循以下哪个继承原则?A.多重B.单一C.双重D.不能继承正确答案:B5.请阅读下面的程序代码Class Person{void say(){System.out.println(“hello”);}}class Example{public static void main(String[] args){Person p2 = new Person();Person p1 = new Person();p2.say();p1.say();p2=null;p2.say();}}下列关于程序运行结果的描述中,正确的是()A.输出1个helloB.输出2个hello后会抛出异常C.输出3个hello后会抛出异常D.不会输出hello,直接抛出异常正确答案:B6.请阅读下面的程序片段boolean b=true;if(b=false) {System.out.println("a");} else if(b) {System.out.println(b);} else if(!b) {System.out.println("c");} else {System.out.println("d");}程序的执行结果是()A.aB.bC.cD.d正确答案:C7.下列关于case关键字的说法中,错误的是A.case关键字后面必须是常量B.case关键字后面的break必须存在C.case关键字后面的break可以没有D.case关键字后面的值必须不一样正确答案:B8.以下抽象类的定义中,错误的是?()A.abstract class Demo1{}B.abstract class Demo2{ public abstract String fun(String a); }C.abstract class Demo3{ public String fun(){ return "CZBK"; } }D.abstract class Demo4{ public static final String CZBK = "传智播客"; abstract void fun(){} }正确答案:D9.已知类的继承关系如下:class Employee;class Manager extends Employeer;class Director extends Employee;则以下语句能通过编译的有哪些?A.Employee e=new Manager();B.Director d=new Manager();C.Director d=new Employee();D.Manager m=new Director();正确答案:A10.下列命令中,可以将文档注释提取出来生成帮助文档的是()A.javacB.javaC.javadocD.jar正确答案:C11.下列转义字符中,不合法的是()A.'\n'B.'\x'C.'\r'D.'\t'正确答案:B12.阅读下段代码,class Dog{public String name;Dog(String name){ =name;}}public class Demo1{public static void main(String[] args){Dog dog1 = new Dog("xiaohuang");Dog dog2 = new Dog("xiaohuang");String s1 = dog1.toString();String s2 = dog2.toString();String s3 = "xiaohuang";String s4 = "xiaohuang";}}返回值为true的是?()A.dog1.equals(dog2)B.s1.equals(s2)C.s3.equals(s4)D.dog1==dog2正确答案:C13.以下关于继承的描述,说法正确的是()A.子类继承父类的所有属性和方法B.子类可以继承父类的私有的属性和方法C.子类可以继承父类的公有的属性和方法D.创建子类对象时,父类的所有构造方法都会被执行正确答案:C14.函数重写与函数重载的相同之处是?()A.权限修饰符B.函数名C.返回值类型D.形参列表正确答案:B15.下列关于this关键字的说法中,错误的是()A、this可以解决成员变量与局部变量重名问题B、this出现在成员方法中,代表的是调用这个方法的对象C、this可以出现在任何方法中D、this相当于一个引用,可以通过它调用成员方法与属性A.this可以解决成员变量与局部变量重名问题B.this出现在成员方法中,代表的是调用这个方法的对象C.this可以出现在任何方法中D.this相当于一个引用,可以通过它调用成员方法与属性正确答案:C16.下列关于自定义异常的说法中,错误的是()A.自定义异常要继承Exception类B.自定义异常继承Exception类后,具有可抛性C.自定义异常可以在构造方法中用super关键字传递异常信息给父类D.自定义异常必须继承Error类正确答案:D17.请阅读下面的代码String s1=new String(“abc”);String s2=s1.intern();String s3=”abc”;System.out.println(s1==s2);System.out.println(s2==s3);System.out.println(s1==s3);下列选项中,程序的输出结果为()A.false true falseB.false false falseC.false true trueD.false false true正确答案:A18.请阅读下面的代码class A{int x;static int y;void fac(String s){System.out.println(“字符串:”+s);}}下列选项中描述正确的是()A.x , y和s 都是成员变量B.x 是实例变量,y是类变量,s是局部变量C.x和y是实例变量,s是参数D.x ,y和s都是实例变量正确答案:B19.阅读下列的代码public class Test {public static void main(String[] args) {__________________________________________________}}class Outer {static class Inner {public void method () {System.out.println("method");}}}下列选项中,填写在空白处可以使程序正常运行的是()A.Outer o = new Outer(); o.method();B.Inner I = new Inner(); i.method();C.Outer.Inner oi = new Outer.Inner(); oi.method();D.以上答案都不对正确答案:C20.下列关于Java特点的描述中,错误的是?A.Java语言不支持指针B.Java具有自动垃圾回收的机制C.Java只能运行在Window和Linux平台D.Java允许多个线程同时执行正确答案:C21.请阅读下面的代码片段public static int add(int a,int b) {return a + b;}下列选项中,可以在main()方法中成功调用add()方法的是A.int num = add(1.0,2.0);B.int num = add('a','b');C.int num = add(true,flase);D.int num = add("1","2");正确答案:B22.下了关于接口继承的说法中,正确的是?()A.接口继承自Object类B.一个接口只能继承一个接口C.一个接口可以继承多个接口D.接口不能被继承正确答案:C23.下列关于接口的描述,错误的是?()A.接口不是Object类的子类B.一个接口只能继承一个接口C.一个接口可以继承多个接口D.接口不能被实例化正确答案:B24.下面选项中,哪个关键字可以修饰局部变量?()A.abstractB.finalC.staticD.private正确答案:B25.阅读下列的程序public class Example {public static void main(String[] args) {new Father () {public void show() {System.out.println("helloworld");}}.show();}}class Father {public void show() {System.out.println("hellofather");}}A.hellofatherB.helloworldC.编译报错D.编译通过,运行报错正确答案:B26.下列关于注释的使用,错误的是?()A. int c = 10; //定义变量cB./* int c = 5; int x =6; */C./** 这是类的入口方法*/D./* /*int c = 10;*/ int x=5; */正确答案:D27.关于方法的递归,以下说法正确的是A.方法递归就是指在一个方法的内部调用自身的过程B.方法递归其实就是调用其它方法C.方法递归是指方法的返回值不同D.以上说法都不对正确答案:A28.请阅读下面的程序public class Example {public static void main(String[] args) {int x = 1;do {x++;} while (x <= 4);System.out.println("x = " + x);}}程序的运行结果是A.3B.4C.5D.6正确答案:C29.若二维数组int arr[][]={{1,2,3},{4,5,6},{7,8}};,则arr[1][2]的值是()A.2B.5C.6D.0正确答案:C30.下列选项中,按照箭头方向,需要进行强制类型转换的是A.int ←shortB.int ←byteC.int ←charD.int ←float正确答案:D31.下列关于构造方法的描述中,错误的是()A.构造方法的方法名必须和类名一致B.构造方法不能写返回值类型C.构造方法可以重载D.构造方法的访问权限必须和类的访问权限一致正确答案:D32.while语句的循环体中不能包含的语句是A.while语句B.方法定义语句C.if语句D.switch语句正确答案:B33.分析下面程序,哪一行代码能正确赋值?()class Demo {public void method() {final int num1 = 10;static int num2 = 20;abstract int num3 = 30;private int num4 = 40;}}A.final int num1 = 10;B.static int num2 = 20;C.abstract int num3 = 30;D.private int num4 = 40;正确答案:A34.以下抽象类的定义中,错误的是?()A.abstract class Demo1{}B.abstract class Demo2{ public abstract String fun(String a); }C.abstract class Demo3{ public String fun(){ return "CZBK"; } }D.abstract class Demo4{ public static final String CZBK = "传智播客"; abstract void fun(){} }正确答案:D35.已知类的继承关系如下:class Aclass B extends Aclass C extends A则以下语句中能够通过编译的是?()A.A a=new B();B.C c=new B();C.C c=new A();D.B b=new C();正确答案:A36.Person p = new Person(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化()A.public Person(){}B.public Person(String name,int age) { = name; this.age = age; }C. public Person(int age,String name) { this.age = age; = name; }D.public Person(String name) { = name; }正确答案:B37.阅读下面的程序public class Test {public static void main(String[] args) {for(int x = 0 ; x <=3 ; x++){continue;System.out.print(x%2);}}}运行结果正确的是A.跳出循环,无输出B.0121C.01D.0123正确答案:A38.下面关于整数类型的描述中,错误的是()A.byte是java中的整数类型,它的取值范围是-127到128。
java编程练习题及答案Java编程练习题及答案一、选择题1. 在Java中,哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个是Java中的合法标识符?A. 2variableB. forC. variable2D. class答案:C3. 在Java中,哪个方法用于获取当前对象的引用?A. this()B. super()C. clone()D. new()答案:A4. 以下哪个是Java的访问修饰符?A. publicB. staticC. finalD. abstract答案:A5. 在Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. enum答案:B二、简答题1. 请简述Java中的继承是如何工作的?答案:Java中的继承允许一个类(子类)继承另一个类(父类)的属性和方法。
子类可以扩展或修改父类的行为,实现代码复用。
继承是面向对象编程的核心概念之一。
2. 请解释Java中接口和抽象类的区别?答案:接口定义了一组方法规范,但不提供实现。
任何实现接口的类都必须提供接口中所有方法的具体实现。
抽象类可以包含抽象方法和具体方法,并且可以有成员变量。
抽象类可以作为其他类的基类,但不能被实例化。
三、编程题1. 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除运算。
```javaimport java.util.Scanner;public class SimpleCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字: ");double num1 = scanner.nextDouble();System.out.print("请选择运算符(+, -, *, /): "); char operator = scanner.next().charAt(0);System.out.print("请输入第二个数字: ");double num2 = scanner.nextDouble();double result = 0;switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {System.out.println("除数不能为0"); }break;default:System.out.println("无效的运算符");}if (result != 0) {System.out.println("结果是: " + result);}scanner.close();}}```2. 编写一个Java程序,实现一个简单的学生管理系统,可以添加学生信息、显示所有学生信息。
JAVA习题集(含答案)习题一:1. 简述Java的发展过程。
2. 什么是软件?3. 什么叫做源程序?4. 什么叫做编译?5. 什么是Java的byte-codes?它的最大好处是什么?6. 机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7. Java程序可分为哪两种?分别如何运行?& 试简述J2SE、J2ME与J2EE的简单区别。
9. 练习使用浏览器查看Java API文档。
10. SDK的编译命令是什么?11. 试修改例1-1程序,使其输出的字符串为“I'd like to study Jave”!,并在DOS命令行环境下编译与运行该程序。
习题一参考答案:1. 答:1991: Sun Microsystems公司进军消费电子产品(IA)市场。
1991. 4:Sun成立“ Green”小组,以C++为基础开发新的程序设计语言,并将其命名为Oak。
1992. 10:Green小组升格为First Person公司,他们将Oak的技术转移到Web上,并把Oak改名为Java。
1993~1994: Web在In ternet上开始流行,致使Java得以迅速发展并获得成功。
1995. 5:Sun Microsystems 公司正式发表Java与HotJava 产品。
1995. 10:Netscape与Sun Microsystems 合作,在Netscape Nevigator 中支持Java。
1995. 12:微软(Microsoft )IE加入支持Java的行列。
1996. 2:Java Beta测试版结束,Java 1.0版正式诞生。
1997. 2:Java发展至1.1 版。
Java的第一个开发包JDK (Java Development Kit)发布。
1999. 7:Java升级至1.2版。
2000. 9:Java升级至1.3版。
2001. 7:Java升级至1.4版。
Java课程设计实验报告实验题目:打字游戏小程序专业: 计算机科学与技术系班级: 1202班成员:Java 课程设计打字游戏小程序一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥;在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识;二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分;2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听;字母是随机产生的,又要用Math.random;注册了线程;还要对窗口定义坐标,防止字母出现在同一位子;并且通过一位数组来给随机出现的字母做坐标定义;主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制;3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少;5.详细设计源代码1)CharEntity.javapackage DownCharGame;/下落的字母实体类author shenbf/public class CharEntity {//定义字母的x、yprivate int x;private int y;//字母的值private char ch;//字母下落的"速度"private int speed;//颜色private Color color;//字体private Font font;public void drawGraphics g{//设置字体g.setFontfont;//设置画笔颜色g.setColorColor.white;g.fillOvalgetX-9, getY-24, 30, 30;g.setColorcolor;g.drawStringch+"", x, y;}//下落的方法public void down{y=y+speed;}//快速生成getters和setters方法:alt+shift+s---->r---->select all---->ok public void setXint x{this.x=x;}public int getX{return this.x;}public int getY{return y;}public void setYint y{this.y=y;}public char getCh {return ch;}public void setChchar ch {this.ch = ch;}public int getSpeed {return speed;}public void setSpeedint speed {this.speed = speed;}public Color getColor {return color;}public void setColorColor color {this.color = color;}public Font getFont {return font;}public void setFontFont font {this.font = font;}}2)DownCharFrame.javapackage DownCharGame;public class DownCharFrame {public static void mainString args{JFrame frame=new JFrame;frame.setTitle"打字母游戏V1.2";frame.setBounds200,100,640,480;frame.setResizablefalse;frame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;DownCharPanel panel=new DownCharPanel;frame.addpanel;frame.addKeyListenerpanel;panel.addKeyListenerpanel;panel.startDown;frame.setVisibletrue;}}3DownCharPanel.javapackage DownCharGame;public class DownCharPanel extends JPanel implements KeyListener{C harEntity chs=new CharEntity10;//消除字母4,定义统计的变量//正确率i nt accuracy = 0;//正确数i nt rightNum = 0;//打错的个数i nt errorNum = 0;//遗漏的个数i nt loseNum = 0;//初始总分i nt sum = 1000;p ublic DownCharPanel{//为数组中的每一个子科目实例化forint i=0;i<chs.length;i++{CharEntity ce = new CharEntity;int fontSize=intMath.random10+20;ce.setFontnew Font"宋体",Font.BOLD,fontSize;ce.setXintMath.random580+30;ce.setY0;ce.setSpeedintMath.random3+1;ce.setColornew ColorintMath.random256, //0,255intMath.random256,intMath.random256;ce.setChchar65+intMath.random26;chsi=ce;}}p ublic void paintGraphics g{super.paintg;//设置背景图Image bgimg;try {bgimg = ImageIO.readnew File"Picture/238.jpg";g.drawImagebgimg, 0, 0, null;} catch IOException e {e.printStackTrace;}//消除字母5,绘制统计数字g.setFontnew Font"宋体",Font.BOLD,20;g.setColorColor.yellow;g.drawString"正确数:"+rightNum, 10, 40;g.setColorColor.red;g.drawString"错误数:"+errorNum, 10, 60;g.setColorColor.green;g.drawString"遗漏数:"+loseNum, 10, 80;//绘制下落的字母forint i=0;i<chs.length;i++{chsi.drawg;}//显示成绩g.setColorColor.white;g.drawString"您当前的成绩是:"+sum, 165, 23;//Game OveriferrorNum>50||loseNum>100{g.setColorColor.red;g.setFontnew Font"宋体",Font.BOLD,100;g.drawString"Game Over", 50, 250;}}p ublic void startDown{new Thread{public void run{whileloseNum>100||errorNum>50{try {Thread.sleep40;} catch InterruptedException e {e.printStackTrace;}forint i=0;i<chs.length;i++{ifchsi.getY>=480{//消除字母6,遗漏数++loseNum++;sum -= 100;chsi.setXintMath.random580+30;chsi.setY0;chsi.setColornew ColorintMath.random256,intMath.random256,intMath.random256;chsi.setChchar65+intMath.random26;}chsi.down;}repaint;//}}}.start;}p ublic void keyTypedKeyEvent e {}p ublic void keyPressedKeyEvent e {}p ublic void keyReleasedKeyEvent e {//消除字母7,实现具体的方法//7.1获取到键盘按下的字母char key = e.getKeyChar;//和当前按下字母key相同字母y值最大对应的下标int maxYindex = -1;//7.2使用按下的字母和chs数组中所有的字母去比较forint i=0; i<chs.length; i++{ifkey==chsi.getCh||key==chsi.getCh+32{//按下的字母key和下标对应的字母“相同”ifmaxYindex==-1{//说明第一次找到maxYindex = i;}else{//说明不是第一次找到ifchsmaxYindex.getY<chsi.getY{maxYindex = i;}}}}//判断正确还是错误ifmaxYindex==-1{//一个相同的字母都没有找到errorNum++;sum -= 100;}else{//至少找到一个相同的字母rightNum++;sum += 10;chsmaxYindex.setXintMath.random580+30;chsmaxYindex.setY0;chsmaxYindex.setChchar65+intMath.random26;}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性;并且把键盘事件与电脑随机的功能相联系;有它的可取之处,值得我们学习;但也有不足之处,该程序不能自动结束;这点还有待完善;该程序比较基础;可以让自己先打好深刻了解理论基础;通过这次的课程设计,给自己增加了很多有用的经验,希望在以后的基础上可以接触些更有深度和技巧型的程序;让自己能更好的运用java的功能;。
1 实验一 基本程序设计 (1)编写一个程序,读入一笔费用与酬金率,计算酬金和总钱数。例如,如果用户输入10作为费用,15%作为酬金率,计算结果显示酬金为¥1.5,总费用为¥11.5。 public class Exercise2_5 { public static void main(String[] args) { // Read subtotal java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("Enter subtotal: "); double subtotal = input.nextDouble();
// Read subtotal System.out.print("Enter gratuity rate: "); double rate = input.nextDouble();
double gratuity = subtotal * rate / 100; double total = subtotal + gratuity;
System.out.println("Gratuity is " + gratuity); System.out.println("Total is " + total); } } (2) (求ASCII码对应的字符)编写程序接受一个ASCII码(从0到128的整数),然后显示它所代表的字符。例如用户输入的是97,程序显示的是俄字符a。 public class Exercise2_8 { public static void main(String args[]) { java.util.Scanner input = new java.util.Scanner(System.in); // Enter an ASCII code System.out.print("Enter an ASCII code: "); int code = input.nextInt(); // Display result System.out.println("The character for ASCII code " + code + " is " + (char)code);
} } (3) (计算一个三角形周长)编写程序,读取三角形的三条边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,那么输入值都是合法的。 public class Exercise3_25 { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in);
// Enter three edges 2
System.out.print( "Enter three edges (length in double): "); double edge1 = input.nextDouble(); double edge2 = input.nextDouble(); double edge3 = input.nextDouble();
// Display results boolean valid = (edge1 + edge2 > edge3) && (edge1 + edge3 > edge2) && (edge2 + edge3 > edge1);
if (valid) { System.out.println("The perimeter of the triangle is " + (edge1 + edge2 + edge3)); } else System.out.println("Input is invalid"); } } (4) (解一元二次方程)求一元二次方程ax2 + bx + c = 0的两个根,b就有*b-4ac称作一元二次方程的判别式。如果它是正值,那么一元二次方程俄就有两个正根。如果它为0,方程就只有一个根。如果它是负值,方程无实根。编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。如果判别式为正,显示两个根,如果判别式为0,显示一个根,如果判别式为负,显示方程无实根。 (4) import java.util.Scanner;
public class Exercise3_1 { public static void main(String[] args) { Scanner input = new Scanner(System.in);
System.out.print("Enter a, b, c: "); double a = input.nextDouble(); double b = input.nextDouble(); double c = input.nextDouble();
double discriminant = b * b - 4 * a * c;
if (discriminant < 0) { System.out.println("The equation has no roots"); } else if (discriminant == 0) { double r1 = -b / (2 * a); System.out.println("The root is " + r1); } 3
else { // (discriminant > 0) double r1 = (-b + Math.pow(discriminant, 0.5)) / (2 * a); double r2 = (-b - Math.pow(discriminant, 0.5)) / (2 * a); System.out.println("The roots are " + r1 + " and " + r2); } } } (5)(统计正数和负数的个数,然后计算这些数的平均值)编写程序,读入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值的总和及其平均值(不对0计数)。当输入为0时,表示程序结束。将平均值以浮点数显示。 (5)import java.util.Scanner; public class Exercise4_1 { public static void main(String[] args) { int countPositive=0, countNegative = 0; int count = 0, total = 0, num;
Scanner input = new Scanner(System.in); System.out.print( "Enter an int value, the program exits if the input is 0: "); num = input.nextInt();
while (num != 0) { if (num > 0) countPositive++; else if (num < 0) countNegative++;
total += num; count++;
// Read the next number num = input.nextInt(); }
if (count == 0) System.out.println("You didn't enter any number"); else { System.out.println("The number of positives is " + countPositive); System.out.println("The number of negatives is " + countNegative); System.out.println("The total is " + total); System.out.println("The average is " + total * 1.0 / count); } } 4
}
试验二 方法 (1)一个五角数被定义为n(3n-1)/2,其中n=1,2,…。所以,开始的几个数字就是1,5,12,22…,编写下面的方法返回一个五角数: public static int getPentagonaNumber(int n) 编写一个测试程序显示前100个五角数,每行显示10个。 提示:通过for循环语句打印前100个五角数。 (1)// Exercise5_1.java: public class Exercise5_1 { public static void main(String[] args) { for (int i = 1; i <= 100; i++) if (i % 10 == 0) System.out.println(getPentagonalNumber(i)); else System.out.printf("%10d", getPentagonalNumber(i)); }
public static int getPentagonalNumber(int n) { return n * (3 * n - 1) / 2; } }
(2)编写一个方法,计算一个整数各位数字之和: public static int sumDigits(long n) 例如:sumDigits(234)返回9(2 + 3 + 4)。 提示:使用求余运算符%提取数字,用/去掉提取出来的数字。例如:使用234%10 (=4)提取4。然后使用234/10(=23)从234中去掉4。使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止。 编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。 Remainder(余数) (2) public class Exercise5_2 { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("Enter a number: "); int value = input.nextInt();