java三目运算符
的有关信息介绍如下:问题补充说明:class Dates { int year,month,day; Dates(int x,int y,int z){ year=x; month=y; day=z; } public static int compare(Dates a){ return year>a.year?1 :year
1、三目运算符(表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值
2、例子:inti=(5>3)?(5+3):(5-3);结果为i=8.因为5>3为true,所以i=5+3.
3、根据三目运算符的从右到左的结合性,我是这样划分的
year>a.year?1:(year<a.year?-1:(month>a.month?1:(month<a.month?-360问答1:(day>a.day?1:(day<a.day?-1:0)))));
所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。
以上纯属个人理解。没搞清奏刘楚你这个算法到底是什么意义。。。。还有你的compare()方法不能声明为静态。