Java——静态变量/方法与实例变量/方法的区别
静态只能调用静态
非静态: 对象名.方法名
package ti; //通过两个类 StaticDemo、LX4_1 说明静态变量/方法与实例变量/方法的区别。 class StaticDemo { static int x; int y; public static int getX() { return x;//静态方法中可以访问静态数据成员x } public static void setX(int newX) { x = newX; } public int getY() {//int 前加static试试(静态方法中不可以访问非静态数据成员y) return y;// 非静态方法中可以访问非静态数据成员y } public void setY(int newY) {//试试增加 x=20; 非静态方法中可以访问静态数据成员x y = newY; } } public class t2 { public static void main(String[] args) { System.out.println("静态变量 x="+StaticDemo.getX()); //System.out.println("实例变量 y="+StaticDemo.getY());//非法,编译将出错 StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(8); b.setX(3); //静态调用最终值 b.setY(4); System.out.println("静态变量 a.x="+a.getX()); System.out.println("实例变量 a.y="+a.getY()); System.out.println("静态变量 b.x="+b.getX()); System.out.println("实例变量 b.y="+b.getY()); } }
打印结果:
静态变量 x=0
静态变量 a.x=3
实例变量 a.y=8
静态变量 b.x=3
实例变量 b.y=4