zoukankan      html  css  js  c++  java
  • 一个有趣的问题

    //静态变量

    //静态变量与实例变量的区别

    class StaticDemo {

    static int x;//静态变量x

    int y;//实例变量y

    static public int getX(){

    return x;

    }

    static public void setX(int newX){

    x=newX;

    }

    public int getY(){

    return y;

    }

    public void setY(int newY){  //没有分配空间

     y=newY;

    }

    }

    public class ShowDemo{

    public static void main(String[] args){

    System.out.println("静态变量x="+StaticDemo.getX());

    /* 非法,运行出错,why,两种变量类型不一样,

      y是实例变量,无法通过类来输出,y在内存不存在,他们开辟在不同空间

     */

    StaticDemo a =new StaticDemo();

    StaticDemo b =new StaticDemo();

    StaticDemo demo =new StaticDemo();//开辟两块内存空间

    System.out.println("实例变量 y="+demo.getY());//变量初始化

    a.setX(1);//赋值

    a.setY(2);

    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="+a.getX());

    System.out.println("实例变量 b.y="+a.getY());

    }

    }

    x是静态变量,是一个类,而y是实例变量,不能通过类来输出,既然是实例变量,就应该创建类的实例对象。只有静态的方法才能通过类访问,静态方法只能访问静态变量。

  • 相关阅读:
    iOS适配 旧项目工程在iOS9下不能正常显示
    字典的操作
    均摊时间复杂度
    C++基础
    机器学习入门学习线路
    C\C++对文件的读写操作
    python 函数基础
    关于string的练习题目
    C++之STL之string
    C++STL库之set的用法
  • 原文地址:https://www.cnblogs.com/1995-qxl/p/4887775.html
Copyright © 2011-2022 走看看