变态:编不过去!!提示错误如下:旅馆.java:25: No variable 身份证 defined in class 公民. if (公民.身份证.是否成人()) { ^ 旅馆.java:33: No variable 身份证 defined in class 公民. System.out.println(公民.身份证.姓名+"的房间号码是"+公民.房间); ^ 旅馆.java:35: No variable 身份证 defined in class 公民. System.out.println(公民.身份证.姓名+"未成年人,不许开房!"); ^ 3 errors
我也曾经有过一次这样的经历:在linux机器上用jdbc向oracle数据库插入记录时,当记录中有中文“性”就插入不成功。
试试
javac -encoding UTF-8 旅馆.java
在试试unicode,gbk,bg2312等字符集试试。
祝你好运~
unicode
编译不通过GBK
gb2312
编译通过,还是无法执行
$>java -cp . 鏃呴旅馆.javaclass 公民 {
public int 房间;
class 证件 {
String 姓名;
public int 年龄;
public boolean 是否成人() {
if (年龄 >= 18) {
return true;
}
return false;
}
public 证件(String 姓名, int 年龄) {
this.姓名 = 姓名;
this.年龄 = 年龄;
}
}
证件 身份证;
public 公民(String 姓名, int 年龄) {
身份证 = new 证件(姓名, 年龄);
}
}public class 旅馆 {
private static class 前台{
private static int 门牌;
protected static int 得到钥匙(公民 公民) {
if (公民.身份证.是否成人()) {
return 门牌++;
}
return 0;
}
}
public static void 开房(公民 公民) {
if (公民.房间 > 0) {
System.out.println(公民.身份证.姓名+"的房间号码是"+公民.房间);
} else {
System.out.println(公民.身份证.姓名+"未成年人,不许开房!");
}
} public static void main(String[] 营业) {
公民 小明 = new 公民("小明", 19);
公民 小芳 = new 公民("小芳", 17);
前台.门牌 = 1; 小明.房间 = 前台.得到钥匙(小明);
小芳.房间 = 前台.得到钥匙(小芳);
开房(小明);
开房(小芳);
}
}
这样子编程,真的很有趣!!!!
guoyichao(guoyichao) 很又创意呦:)
if (公民.身份证.是否成人()) {
^
旅馆.java:33: No variable 身份证 defined in class 公民.
System.out.println(公民.身份证.姓名+"的房间号码是"+公民.房间);
^
旅馆.java:35: No variable 身份证 defined in class 公民.
System.out.println(公民.身份证.姓名+"未成年人,不许开房!");
^
3 errors