当前位置:编程学习 > wap >>

不太明白Android java中的语法,请帮我看一下!

AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm").show();


以上的语法中,可以连续用多个.setXXX方法,然后最后用.show().

请问java中为什么能够用多个"."呢?语法上怎么解释? java 语法 --------------------编程问答-------------------- 我似乎有点明白了。
   这个代码等效于 AlertDialog dialog = (new AlertDialog.Builder(MainActivity.this)).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm").show();

  "new AlertDialog.Builder(MainActivity.this)"返回了一个Builder类型的对象,setIcon也返回一个builder对象,依次类推。

但是奇怪的是,“.”的优先级高于new运算符,也就是应该等价于

AlertDialog dialog = new ( AlertDialog.Builder(MainActivity.this).setIcon(android.R.drawable.ic_delete) ).setMessage("Exit?").setTitle("Confirm").show();

但是这样修改又有一个语法错误。到底是怎么回事? --------------------编程问答-------------------- 基本表达式 > 对象生成 > 数组生成 > 成员访问 > 数组成员访问 > 后缀 > 一元 > 类型转换 > 乘法 > 加法 > 位移 > 关系 > 等价 > 位运算 > 逻辑运算 > 条件 > 赋值

于是.的优先级高是从哪听来的 --------------------编程问答--------------------
引用 1 楼 OnlyLanguage 的回复:
我似乎有点明白了。
   这个代码等效于 AlertDialog dialog = (new AlertDialog.Builder(MainActivity.this)).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm").show();

  "new AlertDialog.Buil……

Lz如果把这个分开写  你就会思路很清晰
--------------------编程问答--------------------
引用 3 楼 ConnectionUtils 的回复:
引用 1 楼 OnlyLanguage 的回复:我似乎有点明白了。
   这个代码等效于 AlertDialog dialog = (new AlertDialog.Builder(MainActivity.this)).setIcon(android.R.drawable.ic_delete).setMessage("Exit?").setTitle("Confirm……


我刚开始学习java,遇到这种语法不太明白。 --------------------编程问答--------------------
引用 2 楼 bluewanderer 的回复:
基本表达式 > 对象生成 > 数组生成 > 成员访问 > 数组成员访问 > 后缀 > 一元 > 类型转换 > 乘法 > 加法 > 位移 > 关系 > 等价 > 位运算 > 逻辑运算 > 条件 > 赋值

于是.的优先级高是从哪听来的


我查了资料, [].()属于优先级第一序列,new属于第二序列,所有.的优先级比new要高。
优先级资料如下
http://flysnow.iteye.com/blog/703112 --------------------编程问答-------------------- 直接去看Java语言规范。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,