类变量
-
定义:
用static修饰的变量 -
与实例变量的区别:
所有对象中的类变量分配的内存位置相同,改变其中一个对象的类变量,就会改变所有对象的类变量。即所有对象共享这一个类变量。 -
用途:
1)省去相同的变量:
//创建等高的梯形对象
class Trapezoid{
int top;
int bottom;
static int height=10;
……
}
//用此类创建的所有的梯形的高,全部相等
2)放在构造方法中,可以用于统计创建对象的数量
class Piont{
int x;
int y;
static int count;
Piont(){
count++;
}
Piont(int x,int y){
this.x=x;
this.y=y;
count++;
}
public class Piont{
public static void main(String[] args){
Piont p1 = new Piont(2,3);
Piont p2 = new Piont(1,4);
Piont p3 = new Piont(2,5);
……
Piont pn = new Piont();
System.out.println(Piont.count);//通过这种方式,可以看下我们创建的对象的数量
3)创建的对象中,有顺次递增的数据
class Student{
long id;
String name;
int age;
static long d=0;
Student(String name,int age){
this.id = ++d; //id从1开始,依次递增
this.age = age;
this.name = name;
}
……
- 关于类对象的说明:
1)可以通过“类名.类变量名”的方式去访问,不需要创建对象
2)类变量仍然只作用于其从属的类
类方法
1.定义:
用static修饰的方法
2.与实例方法的区别:
1)类方法只能操作类变量
class A{
int a;
int b;
static int c;
static void ff(){
c++; //可以
a++; //报错
}
}
2)类方法只能调用类方法
class A{
int a;
int b;
static int c;
static void m(){
c++;
}
void mm(){
a++;
b++;
}
static void mmm(){
m(); //可以
mm(); //报错
}