為什么沒有賦值上呢?輸出的是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);
}
}
2019-08-07
然后你show方法里打印的num 和cpu是main方法中對象的屬性
2020-07-04
你給的是成員變量的值,而方法內的值是要加hello.num
2019-08-23
靜態與非靜態的調用
2019-08-07
你的show方法重新定義了一個對象,和main方法中的對象不是同一個
2019-08-05
我們先來看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性。
?
2019-08-05
我的意思是成員變量的賦值怎么錯了,輸出成員變量的值,并不是給局部變量賦值,并輸出。
2019-08-05
public class Project {
? ? int num;
? ? float cpu;
這是成員變量
public void show() {
num=3;
cpu=2.9f;
方法內部是局部變量
2019-08-04
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);
}
}