类中如何给变量赋值?
我想实现一个数据结构,但是赋值的时候,有问题,好像必须在方法里赋值
怎么解决这个问题?
public class SeekAttrib {
String sql;
mdbconn mdb = new mdbconn();
Seek sa = new Seek();
sql = "select * from TableSeekAction where ID= " + SeekActionID;
ResultSet rs = mdb.executeQuery(sql);
try
{
if (rs.next())
{
String nActionType = rs.getString( "nActionType ");
String MenuState = rs.getString( "MenuState ");
String Status = rs.getString( "Status ");
String nFormStyle = rs.getString( "nFormStyle ");
String MainLine = sa.Apostrophe(rs.getString( "MainLine "));
String OrderStr = rs.getString( "OrderStr ");
String bWrap = rs.getString( "bWrap ");
String TitleBkColor = rs.getString( "TitleBkColor ");
String TitleFgColor = rs.getString( "TitleFgColor ");
String RowBkColor = rs.getString( "RowBkColor ");
String RowFgColor = rs.getString( "RowFgColor ");
String LineColor = rs.getString( "LineColor ");
String SelFgColor = rs.getString( "SelFgColor ");
String SelBkColor = rs.getString( "SelBkColor ");
String FormHead = sa.Apostrophe(rs.getString( "FormHead "));
String FormTail = rs.getString( "FormTail ");
String TitleFont = rs.getString( "TitleFont ");
String BodyFont = rs.getString( "BodyFont ");
String DblClickAction = rs.getString( "DblClickAction ");
String PrepID = " "; //GetSeekFilter(rs, PrepID);
String ParentNode = rs.getString( "ParentNode ");
String ParentSeekID = rs.getString( "ParentSeekID ");
String MenuTitle = rs.getString( "MenuTitle ");
String FootStyle = rs.getString( "FootStyle ");
String ClickAction = rs.getString( "ClickAction ");
String DefaultView = rs.getString( "DefaultView ");
String TreeViewDepth = rs.getString( "TreeViewDepth ");
String PageRecs = rs.getString( "PageRecs ");
String UserDefineTitle = sa.Apostrophe(rs.getString( "UserDefineTitle "));
String UserDefineBody = sa.Apostrophe(rs.getString( "UserDefineBody "));
String ThumbNail = rs.getString( "ThumbNail ");
String BodyBack = rs.getString( "BodyBack ");
String MenuBack = rs.getString( "MenuBack ");
String MenuColor = rs.getString( "MenuColor ");
String ToolBack = rs.getString( "ToolBack ");
String ToolColor = rs.getString( "ToolColor ");
String ActionText = rs.getString( "ActionText ");
}
}
catch(SQLException e)
{
System.out.print( "GetSeekActionAttrib: " + e.getMessage());
}
}
[解决办法]
sql = "select * from TableSeekAction where ID= " + SeekActionID;
这一句错了吧?
类中只能有方法和属性,赋值和执行语句只能在块中或方法中进行。
赋值的话,要么初始化的时候进行,要么就要放块中或方法中。
[解决办法]
赋值可以放在构造函数里面
[解决办法]
搞不懂楼主想要什么。知道变量的 作用域么?
如上面的:
String nActionType ; //先定义一个变量
if (rs.next())
{
nActionType = rs.getString( "nActionType "); //该变量在这个循环里不断变化引用。
}
System.out.println(nActionType );
[解决办法]
在类里面用静态初始化函数:
int a;
static {
a = 0;
//...
}
[解决办法]
类中变量赋值只能在函数中,初始化可以放在构造函数中或者自己定义一个初始化函数,析构函数释放
[解决办法]
好像必须在方法里赋值,搂主你说的大概是正确的,不过有比较特殊的你可以这样写
Class A{
int s;
{
s = 111;
}
}
不过还是建议你把给属性赋值的代码写在构造函数里
[解决办法]
为成员变量赋初值只能在方法(包括构造方法)、声明时进行,至于执行语句只能在方法中!
还有种情况可以在静态块中进行.
至于你那种奇特的方式,确实没见到过,想到过.也不解.
楼主真神!居然敲出了这么 "前无古人,后无来者 "的代码.
[解决办法]
if (rs.next())
类的定义中不能做逻辑判断的,应该放在方法中,或者放在静态块中
[解决办法]
你这怎么赋值的,这sql = "select * from TableSeekAction where ID= " + SeekActionID;本身就是错误。SeekActionID没定义,或者你可以在你想传值的类里面设一个静态变量。