永发信息网

假设类Foo如下图(1)中定义,f是类Foo的一个对象.

答案:1  悬赏:70  手机版
解决时间 2021-04-07 23:14
假设类Foo如下图(1)中定义,f是类Foo的一个对象.
最佳答案
你的问题很简单,关键在于区分类变量(方法) 和 实例变量(方法)


类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;


方法同上

区别在于:
   类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:

public class A{
    static  int a = 0; //类变量
    int b = 0; //实力变量
}分开写个B类,便于观察:
public class B{
    public void main (String[] args){
        A a1 = new A();
        A a2 = new A();
        a1.a = 3;  // 等同于 A.a = 3;
        a1.b = 4 ;
        System.out.println(a2.a); //结果为3
        //类变量是针对所有对象的,所以a1改变a,a2的a也改变
        System.out.println(a2.b); //结果为0
        //实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
    }
}那么对于你的问题
System.out.println(f.i);  // 通过实例访问实例变量 -- ok
System.out.println(f.s);  // 通过实例访问类变量 -- ok


f.imethod();  // 通过实例访问实例方法 -- ok
f.smethod(); // 通过实例访问类方法 -- ok

System.out.println(Foo.i);  // 通过类访问实例变量 -- 错误
System.out.println(Foo.s); // 通过类访问类变量  -- ok

Foo.imethod();  // 通过类访问实例方法 -- 错误
Foo.smethod(); // 通过类访问类方法  -- ok


亲,回答也需要时间与精力,如果回答满意,请及时采纳,谢谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
暗黑破坏神3侍从宝石对先祖有用吗
广州the one电钢琴专卖店
男友是军人,刚从军校毕业,开始他会调来调去
选出下列加下划线字注音只有一处错误的一项A.
方太和老板是哪个国家,大马和小马小班教案
电脑两个硬盘怎么回事
糖肾3一4期是什么意思
卡娜地址在什么地方,想过去办事
洞山温泉村这个地址在什么地方,我要处理点事
过年了怕胖出来呀~
四十不惑是什么意思,四十不惑是什么意思
嘲笑伴随孩子,他什么
感谢你们的陪伴的句子,英文感谢有你的陪伴剪
荷李活道的特色
——How do you study a test ? ——I study
推荐资讯
如何提升来客数(超市)
奥美拉挫 和埃索美拉挫有什么不同?
一个男人老说我的家人不好,他的家人好,这个男
温实初有这个人么
4.879里面有多少个0.001
手机卡号是身份证办理的,几个月没用了,话费
单选题Theylearneditallbythemselves.Thati
单选题被奉为“股神”的投资大师巴菲特由于投
晚上睡觉做梦吐血 早上起床 枕头棉被上都是血
油漆里面是否含有甲醛
美国什么大学开设了电竞专业
“探险游”不是“冒险游”
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?