太原理工大学 1JSP期末复习题.docx
- 文档编号:4869694
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:16
- 大小:97.25KB
太原理工大学 1JSP期末复习题.docx
《太原理工大学 1JSP期末复习题.docx》由会员分享,可在线阅读,更多相关《太原理工大学 1JSP期末复习题.docx(16页珍藏版)》请在冰豆网上搜索。
太原理工大学1JSP期末复习题
程序设计、改错题
例1.用Java程序片定格式输出1到100。
10个数学为一行。
Display1to100.jsp
<%
for(inti=1;i<=100;i++){
%>
<%=i%>
<%
if(i%10==0)out.println("
");
}
%>
效果图如下:
例2.用JSP代码制作网页:
table.jsp
<%@pagecontentType="text/html;charset=GBK"%>
<%
i=0;
while(i<10){
i++;
if(i%2==0){
out.println("
}
else{
out.println("
}
%>
<%=i%>
<%
}
%>
输出醒目表格,效果图如下:
提示:
奇数行,color=yellow,偶数行,color=orange。
宽度=500像素。
左对齐。
例3.求1!
+2!
+3!
+……+9!
importjava.io.IOException;
classTest{
publicstaticvoidmain(Stringargs[])throwsIOException{
intn,sum,total=0;
System.out.println(“Pleaseinput(0~9):
”);
n=System.in.read();
n-=48;
for(intj=1;j<=n;j++){
sum=1;
for(inti=1;i<=j;i++)
sum*=i;
total+=sum;
}
System.out.println(“各阶乘之和为:
”+total);
}
}
将程序的执行跳转到其他部分的语句
break:
跳出(中止)循环
break语句用以中断当前执行的循环语句(for、do-while、while)或switch语句
continue:
结束本次循环
continue语句用以结束循环语句(for、do-while、while)的本次循环
return:
方法返回
throw:
抛出异常(Exception)
例4.数组整体赋值
classTest{
publicstaticvoidmain(Stringargs[]){
inta[]={2,4,6,8};
intb[];
int[]c={1,3,5,7};
b=a;c=a;
for(intj=0;j System.out.print(a[j]+““); System.out.println(); for(intj=0;j System.out.print(b[j]+““); System.out.println(); for(intj=0;j System.out.print(c[j]); } } 例5.数组的排序 publicclassTest{ publicstaticvoidmain(String[]args){ int[]array={32,87,3,589,12,1076,2000,8,622,127}; for(inti=array.length;--i>=0;){ for(intj=0;j if(array[j]>array[j+1]){ inttemp=array[j];array[j]=array[j+1]; array[j+1]=temp; } } } for(inti=0;i System.out.print(array[i]+""); } } 例6.用HTML实现下面的操作界面 姓名: 密码: 性别: 血型: 性格: 热情大方 温柔体贴 多情善感 简介: 城市: 例7.用Application对象实现一个简单的网页计数器 <%@pagecontentType="text/html;charset=GB2312"%> <% Integernumber=(Integer)application.getAttribute("Count"); if(number==null){ number=newInteger (1); application.setAttribute("Count",number); } else{ number=newInteger(number.intValue()+1); application.setAttribute("Count",number); } %> 您是第<%=(Integer)application.getAttribute("Count")%>个访问本站的客户。 例8.简单邮件发送的例子
正文:
<%@pagepageEncoding="gb2312"%>
<%@pagecontentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%@pageimport="javax.mail.*,javax.mail.internet.*,java.util.*"%>
<%try{Propertiesprops=newProperties();
//输入可用的smtp服务器
//注意:
这里的作为示例用,不是可用的发信服务器,
//可以在本机上搭建自己邮件服务器,windows2000自带smtp服务器
props.put("mail.smtp.host","");
SessionsendMailSession=Session.getInstance(props,null);
//创建消息,并定义发信人地址和收信人地址
MessagenewMessage=newMimeMessage(sendMailSession);
newMessage.setFrom(newnternetAddress(request.getParameter("from")));
newMessage.setRecipient(Message.RecipientType.TO,newInternetAddress(request.getParameter("to")));
newMessage.setSubject(request.getParameter("subject"));//设定主题
newMessage.setSentDate(newDate());//设定发送时间
newMessage.setText(request.getParameter("text"));//设置邮件正文
//发送邮件
Transport.send(newMessage);
//发送成功
out.println("
邮件已发送!
");}catch(MessagingExceptionm){
out.println(m.toString());}%>
JAVA代码查错
1.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
大侠们,这有何错误?
答案:
错。
abstract method必须以分号结尾,且不带花括号。
2.public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
答案:
错。
局部变量前不能放置任何访问修饰符 (private,public,和protected)。
final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
3.abstract class Something {
private abstract String doSomething ();}
这好像没什么错吧?
答案:
错。
abstract的methods不能以private修饰。
abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract
method封锁起来呢?
(同理,abstract method前不能加final)。
4.public class Something {
public int addOne(final int x) {
return ++x;
}
}
这个比较明显。
答案:
错。
int x被修饰成final,意味着x不能在addOne method中被修改。
5.public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final的问题,这有错吗?
答案:
正确。
在addOne method中,参数o被修饰成final。
如果在addOne method里我们修改了o的reference
(比如:
o = new Other();),那么如同上例这题也是错的。
但这里修改的是o的member vairable
(成员变量),而o的reference并没有改变。
6.class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢?
看不出来啊。
答案:
正确。
输出的是"i = 0"。
int i属於instant variable (实例变量,或叫成员变量)。
instant variable有default value。
int的default value是0。
7.class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
和上面一题只有一个地方不同,就是多了一个final。
这难道就错了吗?
答案:
错。
final int i是个final的instant variable (实例变量,或叫成员变量)。
final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。
可以修改为"final int i = 0;"。
8.public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
看上去很完美。
答案:
错。
看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。
但仔细看,main是static的。
static method不能直接call non-static methods。
可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。
同理,static method不能访问non-static instant variable。
9.此处,Something类的文件名叫OtherThing.java
class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
这个好像很明显。
答案:
正确。
从来没有人说过Java的Class名字必须和其文件名相同。
但public class的名字必须和文件名相同。
10.
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
答案:
错误。
在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。
对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。
11.interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
这个错误不容易发现。
答案:
错。
"interface Rollable extends Playable, Bounceable"没有问题。
interface可继承多个interfaces,所以这里没错。
问题出在interface Rollable里的"Ball ball = new Ball("PingPang");"。
任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。
也就是说"Ball ball = new Ball("PingPang");"实际上是"public static final Ball ball = new Ball("PingPang");"。
在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。
因此编译器将在"ball = new Ball("Football");"这里显示有错。
内部类的实现方式示例
packagetest;
publicclassOuterClass
{
privateclassInterClass
{
publicInterClass()
{
System.out.println("InterClassCreate");
}
}
publicOuterClass()
{
InterClassic=newInterClass();
System.out.println("OuterClassCreate");
}
publicstaticvoidmain(String[]args)
{
OuterClassoc=newOuterClass();
}
}
输出结果:
C:
\>javatest/OuterClass
InterClassCreate
OuterClassCreate
再一个例题:
publicclassOuterClass{
privatedoubled1=1.0;
//insertcodehere
}
Youneedtoinsertaninnerclassdecl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原理工大学 1JSP期末复习题 太原 理工大学 JSP 期末 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)