静态变量可以通过类和实例操作

/**
 * @author 欢迎加入Java技术交流群:646766275
 *
 */
public class Test {

    private static int x = 100;

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test test1 = new Test();
        test1.x++;

        Test test2 = new Test();
        test2.x++;

        test1 = new Test();
        test1.x++;

        Test.x--;

        System.out.println(x);
    }

}

A. 程序通过编译,输出:103
B. 23行不能通过编译,因为x是私有静态变量
C. 15行不能通过编译,因为引用了私有静态变量
D. 程序通过编译,输出:102

正确答案:D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抽象既可以有静态变量,也可以有实例变量。静态变量实例变量的区别在于: 1. 静态变量属于,而不属于实例静态变量可以直接通过名来访问,而不需要创建实例对象。 2. 实例变量属于实例,而不属于实例变量必须通过实例对象来访问,而不能直接通过名来访问。 抽象中的静态变量实例变量的定义和使用与普通相同,没有特别之处。例如: ``` public abstract class Animal { private static int count = 0; private String name; public static int getCount() { return count; } public Animal(String name) { this.name = name; count++; } public String getName() { return name; } public abstract void eat(); } public class Dog extends Animal { public Dog(String name) { super(name); } public void eat() { System.out.println(getName() + "吃骨头"); } } public class Test { public static void main(String[] args) { System.out.println(Animal.getCount()); // 0 Dog dog1 = new Dog("小黑"); System.out.println(Animal.getCount()); // 1 System.out.println(dog1.getName()); // 小黑 dog1.eat(); // 小黑吃骨头 } } ``` 在上面的例子中,Animal抽象中有一个静态的count属性和一个实例的name属性,用于统计创建的Animal实例的个数和表示动物的名称。Animal抽象中还有一个抽象方法eat,用于表示吃的行为。Dog继承了Animal抽象,并实现了eat方法。在测试Test中,通过Animal的静态方法getCount来获取创建的Animal实例的个数,通过Dog的getName方法来获取Dog实例的名称,通过dog1实例的eat方法来表示Dog实例的吃的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值