TOMCAT,SERVLET,在一个自己写的类A 里调用另一个已经编译过的类B,编译出错

zzzjaychung 2008-02-27 06:42:35
目的:在一个自己写的类A 里调用另一个已经编译过的类B。A和B在同一个目录下。使用TOMCAT。
在编译类A的时候出错,刚刚看JAVA三天,现在还有点搞不清晨面的关系,请大侠们帮忙看看。


编译类A时出错信息:
C:\Documents and Settings\Shaun>javac C:\jakarta-tomcat\webapps\Assignment1\WEB-
INF\classes\mypack\ShowBalance.java
C:\jakarta-tomcat\webapps\Assignment1\WEB-INF\classes\mypack\ShowBalance.java:47
: cannot resolve symbol
symbol : class BankCustomer
location: class mypack.ShowBalance
BankCustomer bc = new BankCustomer(userid, username, bal
ance, level);
^
C:\jakarta-tomcat\webapps\Assignment1\WEB-INF\classes\mypack\ShowBalance.java:47
: cannot resolve symbol
symbol : class BankCustomer
location: class mypack.ShowBalance
BankCustomer bc = new BankCustomer(userid, username, bal
ance, level);
^
2 errors


类A的代码:
package mypack;

import java.io.*;
import java.sql.*;
import java.util.*;

public class ShowBalance {
public ShowBalance(String UserName)
throws IOException{

try{

String clientName = UserName;

//connect to database
String dbUrl = "jdbc:mysql://localhost:3306/balancecontrol";
String dbUser = "Jay";
String dbPwd = "123456";

//load driver
Class.forName("com.mysql.jdbc.Driver");
//regesister driver
java.sql.DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Connection con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
Statement stmt = con.createStatement();

String sql = "select user_id, user_name, balance, level from user_balance where user_name = '" + clientName + "' ";
ResultSet rs = stmt.executeQuery(sql);

int userid = 1000;
String username = "New Customer";
float balance = 0;
int level = 3;

if(rs.next()){
userid = rs.getInt("user_id");
username = rs.getString("user_name");
balance = rs.getFloat("balance");
level = rs.getInt("level");
}

rs.close();
stmt.close();
con.close();

BankCustomer bc = new BankCustomer(userid, username, balance, level);

}

catch(Exception e){
throw new IOException(e.getMessage());
}
}

}


类B的代码:
package mypack;

public class BankCustomer{

private int userid = 1000;
private String username = "New Customer";
private float balance = 0;
private int level = 3;

public void Bankcustomer(int userid, String username, float balance, int level){
this.userid = userid;
this.username = username;
this.balance = balance;
this.level = level;
}

public int getUserID(){
return userid;
}

public String getUserName(){
return username;
}

public float getBalance(){
return balance;
}

public int getLevel(){
return level;
}
}
...全文
74 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanjun_xf 2008-02-28
  • 打赏
  • 举报
回复
public class BankCustomer{

private int userid = 1000;
private String username = "New Customer";
private float balance = 0;
private int level = 3;

public void Bankcustomer(int userid, String username, float balance, int level){
this.userid = userid;
this.username = username;
this.balance = balance;
this.level = level;
}
构造函数名应该和类名一致,java是区分大小写的哦!

tsingien 2008-02-28
  • 打赏
  • 举报
回复
错了。构造函数是改成:public BankCustomer(int userid, String username, float balance, int level )

字母B和C都要大写,和你的类同名
tsingien 2008-02-28
  • 打赏
  • 举报
回复
public void Bankcustomer
改成:public void BankCustomer
zzzjaychung 2008-02-28
  • 打赏
  • 举报
回复
我试过不使用VOID,但是会出现一个编译错误:

C:\Documents and Settings\Shaun>javac C:\jakarta-tomcat\webapps\Assignment1\WEB-
INF\classes\mypack\BankCustomer.java
C:\jakarta-tomcat\webapps\Assignment1\WEB-INF\classes\mypack\BankCustomer.java:1
0: invalid method declaration; return type required
public Bankcustomer(int userid, String username, float balance, int leve
l){
^
1 error
zzzjaychung 2008-02-28
  • 打赏
  • 举报
回复
非常感谢你的回复,不过这个应该不是问题。

问题是不能在类A里去NEW一个类B
BankCustomer bc = new BankCustomer(userid, username, balance, level);
jz1979 2008-02-28
  • 打赏
  • 举报
回复
还有注意大小写,构造函数名与类名相同

public BankCustomer(int userid, String username, float balance, int level){
this.userid = userid;
this.username = username;
this.balance = balance;
this.level = level;
}

jz1979 2008-02-28
  • 打赏
  • 举报
回复
构造函数不能有返回值
jz1979 2008-02-28
  • 打赏
  • 举报
回复
不好意思,刚才的错了
应该是

public Bankcustomer(int userid, String username, float balance, int level){
this.userid = userid;
this.username = username;
this.balance = balance;
this.level = level;
}
jz1979 2008-02-28
  • 打赏
  • 举报
回复
在BankCustomer里把

public void Bankcustomer(int userid, String username, float balance, int level){
this.userid = userid;
this.username = username;
this.balance = balance;
this.level = level;
}

改成

public void Bankcustomer(int userid1, String username1, float balance1, int level1){
this.userid = userid1;
this.username = username1;
this.balance = balance1;
this.level = level1;
}

注意形参名不要与本身变量名相同
zzzjaychung 2008-02-28
  • 打赏
  • 举报
回复
各位大侠,急啊。谁给看看。谢谢。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧