A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙云鹏 注册黑马   /  2012-8-31 22:48  /  1594 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class X //在这里我要写的是一个定义变量的练习,就用X用类名了

/*
运行(java)类时发现,我的X是大写的,我写了小写的x提示:找不到类
但是javac时,我写了小写的x,却没有报错找不到,这是为什么?
javac和java的某种区别吗?
*/

{
public static void main(String[] args)
{
  byte b=2;
  b=(byte)(b+3);
  System.out.println(b);
}
}

/*
一开始,我把变量定成X了,但提示错误两个,其中一个似乎说是类名为X,变量也为X,找不到符号,那
么可能在一个*.java中,一个字母,只能单独用一个特定位置。就像老师说的一个字母只能定义一个变量
,就算再用成类名,都不行,换子大小写都不行。
然后我把变量改成b,“关于这个X”的错误提示就消失了。
*/

/*
为什么要强制为byte呢?我认为,如果明知计算结果的范围,而又不想在没有必要的情况下把结果默认成
int(当然,这里有byte在前,不强制就报错了),就进行强制。【不过我这个理解好像是多余的,因为数
据类型定义的是byte,不强制就报错了】可是如果运算后,数据不在byte之内了呢?假设结果写在下面了
*/

/*
为什么这样写,没有报错,但得到的结果是“-126”???
{
  byte b=2;
  b=(byte)(b+128);
  System.out.println(b);
}
之所以这样运算,是想看看,如果float和int运算,强制Int,得到的是整数部分,如果明知得到的是
short却强制成byte,会是什么结果,可没想到是这个结果,这是为什么?
这种情况,结果不在所定义的数据类型之内,如果不强制,就报错了,可是如果强制,为什么会得出这样
的结果呢?
如果出现这种情况,难到只能改变变量的定义数据类型吗?是说明我们对变量的数据类型定义错了吗?因为强制成short会报错的。
*/

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马