為什么沒(méi)有賦值上呢?輸出的是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方法中對(duì)象的屬性
2020-07-04
你給的是成員變量的值,而方法內(nèi)的值是要加hello.num
2019-08-23
靜態(tài)與非靜態(tài)的調(diào)用
2019-08-07
你的show方法重新定義了一個(gè)對(duì)象,和main方法中的對(duì)象不是同一個(gè)
2019-08-05
我們先來(lái)看show這個(gè)方法,
public void show() {
????Project hello=new Project();//一、實(shí)例一個(gè)對(duì)象Project->hello,我們知道實(shí)例出來(lái)的對(duì)象在內(nèi)存,我們先稱它為? 內(nèi)存1號(hào)hello對(duì)象
????hello.num=3;//二、將 內(nèi)存1號(hào)hello對(duì)象 的num 賦值為3
????hello.cpu=2.9f;//三、將?內(nèi)存1號(hào)hello對(duì)象?的cpu賦值為2.9f
????System.out.println("num:"+num+"cpu:"+cpu);//四、將變量num,變量cpu的值打印出來(lái)。
}
我們著重看下第四句話,我們知道,java語(yǔ)言中,要使用一個(gè)變量必須先聲明并初始化,這里我們并沒(méi)有看到有聲明或和初始化變量num,變量cpu的語(yǔ)句,那么這句話編譯的時(shí)候?yàn)槭裁礇](méi)有報(bào)錯(cuò)。這時(shí)我們就要看下show()這個(gè)成員方法屬于的類中有沒(méi)有對(duì)應(yīng)的變量。
public class Project {
? ? int num;
? ? float cpu;
}
我們看到的是,Project是有成員變量量? 整形的 num 和 浮點(diǎn)型的 cpu。
那么其實(shí)我們看到的show()方法中的num和cpu,是this.num? 和 this.cpu 的縮寫,指的是 他們分別是 Project 這個(gè)類兩個(gè)成員變量的引用。由于分別是整形和浮點(diǎn)型,我們?cè)趍ain()方法入口,執(zhí)行Project hello=new Project();進(jìn)行實(shí)例化時(shí),就會(huì)對(duì)其成員變量中屬于基本數(shù)據(jù)類型的他們進(jìn)行初始化賦值。整形=0,浮點(diǎn)型=0.00.
如果你是想對(duì)成員變量賦值,而不是對(duì)show()方法里的局部變量賦值,在類內(nèi)部中,建議你加上 this 字段,用this.num=3 這樣語(yǔ)句賦值??焖俣ㄎ欢揖哂锌勺x性。
?
2019-08-05
我的意思是成員變量的賦值怎么錯(cuò)了,輸出成員變量的值,并不是給局部變量賦值,并輸出。
2019-08-05
public class Project {
? ? int num;
? ? float cpu;
這是成員變量
public void show() {
num=3;
cpu=2.9f;
方法內(nèi)部是局部變量
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);
}
}