我最近遇到过这句话:
"Class A has class member int a"
可能很明显,但这句话只意味着a
是在int
中定义的class A
,对吧?
另一件事,例如a
是在class A
中的方法下定义的。它还在吗?
班级成员?
我没有找到班级成员的明确定义,我看了here:
但它没有多大帮助。
提前感谢您的帮助
答案 0 :(得分:6)
类成员是调用静态成员的另一种方式。
class A {
int a; //instance variable
static int b; //class variable
public void c() {
int d; //local variable
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
类成员不仅仅是类的变量。可以使用类名访问它们。这意味着它们是该类的静态变量。
该文件清楚地提到了它。
public class Bicycle {
private int cadence;
private int gear;
private int speed;
// add an instance variable for the object ID
private int id;
// add a class variable for the
// number of Bicycle objects instantiated
private static int numberOfBicycles = 0;
...
}
在上面的代码中,numberOfBicycles是一个类成员。可以使用
访问它Bicycle.numberOfBicycles
方法中的变量无法像这样访问。所以他们不能成为班级成员。在方法内声明的变量是局部变量,属于该方法。因此,您可以将它们称为最终,但不是静态或公共或受保护或私有。
答案 3 :(得分:0)
在你提到的文档link中,它在第一行(标题之后)清楚
In this section, we discuss the use of the static keyword to create fields and methods that belong to the class, rather than to an instance of the class.
所以这意味着static
关键字用于创建类字段和方法(即.class成员)。
所以在你的情况下,
class A{
int a;
public void methodA(){
int a;//inner a
}
}
你问的是methodA()里面的int a
仍然是一个类成员吗?
答案是否:因为它之前没有静态关键字。如果您尝试使用静态关键字:
class A{
int a;
public void methodA(){
static int a;//inner a will cause compile time error
}
}
您将收到编译时错误。 希望有所帮助!! :)