成员变量分为实例变量和类变量,方法也可以分为实例方法和类方法,用static修饰的变量为类变量用static修饰的方法为类方法
实例变量和类变量的区别
每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,类变量仅在生成第一个对象时分配内存。
所有实例对象共享一个类变量,每个实例对象对类变量的改变会影响其他实例对象。类变量可以通过类名直接访问不需要生成实例对象,也可以通过实例对象访问
例如
class Rectangle{ float 长; static float 宽; Rectangle(float x,float y){ 长=x; 宽=y; } float 获取宽(){ return 宽; } void 修改宽(float b){ 宽=b; } } public class ep_1 { public static void main(String[] args){ Rectangle Rectone=new Rectangle(10f,12f); Rectangle Recttwo=new Rectangle(16f,12f); Rectangle.宽=15;//通过类名操作类变量赋值 System.out.println("Rectone宽"+Rectone.获取宽()); System.out.println("Recttwo宽"+Recttwo.获取宽()); Recttwo.修改宽(16);//通过对象操作类变量 System.out.println("Rectone修改宽"+Rectone.获取宽()); System.out.println("Recttwo修改宽"+Recttwo.获取宽()); } }
运行结果
Rectone宽15.0 Recttwo宽15.0 Rectone修改宽16.0 Recttwo修改宽16.0
实例方法和类方法区别
实例方法可以对当前的对象的 实例变量进行操作也可以对类本来进行操作,实例方法由实例对象调用。类方法不能访问实例变量只能访问类变量,类方法可以由类名直接调用也可以由实例对象调用。类对象不能使用this,super关键字