我在以下代码段中提出了几个问题:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// creating LinearLayout
LinearLayout linLayout = new LinearLayout(this); //****QUESTION 2*********
// specifying vertical orientation
linLayout.setOrientation(LinearLayout.VERTICAL);
// creating LayoutParams
LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); //*****QUESTION 1***
// set LinearLayout as a root element of the screen
setContentView(linLayout, linLayoutParam);
}
基类是ViewGroup.LayoutParams,即LayoutParams是一个 ViewGroup的嵌套类。我还读到它是静态的 嵌套类。所以为什么我们不使用外部类来引用它? 名称和点符号:
ViewGroup.LayoutParams linLayoutParam = new ViewGroup.Layout(...);
在以下语句中,哪个对象是“this
”?在Java中
在编程语言中,方法中的 this关键字引用current
对象,即此方法所属的对象。但我们没有显式调用(使用对象){{1 {} 1}。
onCreate()
答案 0 :(得分:1)
...为什么我们不使用外部类名称和点符号
来引用它
您似乎没有意识到Java语言中的static imports。大多数情况下,我喜欢你的建议方式,即使用外部类名称和ViewGroup.LayoutParams
之类的点来引用内部类,而不是使用静态导入。但是,在某些情况下,如果你可能不得不这样做太多次,那么最好是进行静态导入而不是重复类名。在使用像JUnit这样的单元测试框架时,你会看到很多这种情况,它带有很多静态方法的类。
...在下面的语句中,什么对象是“this”?
在您的方法中,通过使用关键字 - this
,您指的是您已声明/定义实例方法的类的当前实例(即方法@Override public void onCreate(Bundle savedInstanceState)
)。