亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么沒有賦值上呢?輸出的是0和0.00

package com.dyd;


public class Project {

? ? int num;

? ? float cpu;


public static void main(String[] args) {

//給屬性賦值

Project hello=new Project();

// hello.num=3;

// hello.cpu=2.9f;

hello.show();

// shows.num=2;

// shows.cpu=1.9f;

// shows.show();

?

}

public void show() {

Project hello=new Project();

hello.num=3;

hello.cpu=2.9f;

System.out.println("num:"+num+"cpu:"+cpu);

}


}


正在回答

8 回答

然后你show方法里打印的num 和cpu是main方法中對象的屬性

0 回復 有任何疑惑可以回復我~
#1

仿佛說呢 提問者

明白了,就是搞不清楚靜態成員變量和非靜態成員變量如何調用和輸出的?
2019-08-07 回復 有任何疑惑可以回復我~
#2

Coln 回復 仿佛說呢 提問者

靜態成員變量是在加載該類是就被執行的,不能被實例化對象調用,只能通過類來調。這個的話還是建議找一下static的視頻看一下
2019-08-07 回復 有任何疑惑可以回復我~

你給的是成員變量的值,而方法內的值是要加hello.num

0 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5d5f4c080001cd9206440411.png

靜態與非靜態的調用

1 回復 有任何疑惑可以回復我~

你的show方法重新定義了一個對象,和main方法中的對象不是同一個

0 回復 有任何疑惑可以回復我~

我們先來看show這個方法,

public void show() {

????Project hello=new Project();//一、實例一個對象Project->hello,我們知道實例出來的對象在內存,我們先稱它為? 內存1號hello對象

????hello.num=3;//二、將 內存1號hello對象 的num 賦值為3

????hello.cpu=2.9f;//三、將?內存1號hello對象?的cpu賦值為2.9f

????System.out.println("num:"+num+"cpu:"+cpu);//四、將變量num,變量cpu的值打印出來。

}

我們著重看下第四句話,我們知道,java語言中,要使用一個變量必須先聲明并初始化,這里我們并沒有看到有聲明或和初始化變量num,變量cpu的語句,那么這句話編譯的時候為什么沒有報錯。這時我們就要看下show()這個成員方法屬于的類中有沒有對應的變量。

public class Project {

? ? int num;

? ? float cpu;

}

我們看到的是,Project是有成員變量量? 整形的 num 和 浮點型的 cpu。

那么其實我們看到的show()方法中的num和cpu,是this.num? 和 this.cpu 的縮寫,指的是 他們分別是 Project 這個類兩個成員變量的引用。由于分別是整形和浮點型,我們在main()方法入口,執行Project hello=new Project();進行實例化時,就會對其成員變量中屬于基本數據類型的他們進行初始化賦值。整形=0,浮點型=0.00.

如果你是想對成員變量賦值,而不是對show()方法里的局部變量賦值,在類內部中,建議你加上 this 字段,用this.num=3 這樣語句賦值??焖俣ㄎ欢揖哂锌勺x性。

?

1 回復 有任何疑惑可以回復我~

我的意思是成員變量的賦值怎么錯了,輸出成員變量的值,并不是給局部變量賦值,并輸出。

0 回復 有任何疑惑可以回復我~

public class Project {

? ? int num;

? ? float cpu;

這是成員變量

public void show() {

num=3;

cpu=2.9f;

方法內部是局部變量

0 回復 有任何疑惑可以回復我~

package com.dyd;


public class Project {

? ? int num;

? ? float cpu;


public static void main(String[] args) {

//給屬性賦值

Project hello=new Project();

// hello.num=3;

// hello.cpu=2.9f;

hello.show();

// shows.num=2;

// shows.cpu=1.9f;

// shows.show();

?

}

public void show() {

num=3;

cpu=2.9f;

System.out.println("num:"+num+"cpu:"+cpu);

}


}


0 回復 有任何疑惑可以回復我~
#1

仿佛說呢 提問者

給成員變量賦值不是應該先把類實例化出來,通過實例化的對象給成員變量賦值嗎?
2019-08-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么沒有賦值上呢?輸出的是0和0.00

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號