不明白为什么输入phone.call();就可以运行出新属性int var;的两个默认赋值结果;

来源:8-5 Java 中的成员变量和局部变量

qq_举个栗子_2

2016-02-01 22:34




package com.imooc;


public class Initail {


public static void main(String[] args) {

// TODO Auto-generated method stub

                   Telphone phone=new Telphone();

                   phone.sendMessage();

                   //给实例变量赋值

                   phone.screen=5.0f;

                   phone.cpu=1.4f;

                   phone.mem=2.0f;

                   //调用对象名的使用方法

                   phone.sendMessage();

                   phone.call();

}


}


写回答 关注

2回答

  • Redemption_0
    2016-02-01 23:18:47
    已采纳

    首先在这里 Telphone phone=new Telphone();

    我们的内存会为这个phone划出一块内存,为里面申明的内存划一块内存。

    在对象被创建时,Java虚拟机对实例变量在分配存储空间时,自动赋给实例变量相应的默认值。对其中简单类型中的数值型实例变量均赋给0值。

    call();这个方法中输出了一个局部变量localVar和一个成员变量var。只有var是默认赋值结果哦


    qq_举个栗...

    谢谢你!对哦,我的问题就有问题;局部变量是没有默认赋值的。但我还是不明白,call();这个方法为什么能输出局部变量和成员变量这两个。call();是一种方法吗?

    2016-02-01 23:43:08

    共 1 条回复 >

  • Redemption_0
    2016-02-01 23:51:30

    对啊,他在定义Telphone这个类的时候  第一个方法就是void call(); 啊

    qq_举个栗...

    啊 ,要完了要完了;一定是夜深了脑子不能用了。我知道了 ,谢谢

    2016-02-01 23:54:54

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530553 学习 · 6091 问题

查看课程

相似问题