1. 在java中 變數之間是如何賦值的
一、基本類型數據賦值
實驗1 :定義一個int 類型變數a = 3,並將a 賦值給int b,然後將a ,賦值為5,那麼b 的值是3 還是5 呢?
int a = 3;
int b = a ;
a = 5 ;
System.out.println(" a = " + a+" b = "+b );
運行程序 ,列印結果為 :
a = 5 b =3
我們看到,b並沒有隨a的改變而改變。基本數據類型是值賦值。
二、String類型數據賦值
實驗2:定義一個String類型變數s1 賦值為「a」,並將s1賦值給String s2 ;然後將s1賦值為「b」,那麼s2的值是 「a」還是 「b」?
String s1 = "a" ;
String s2 = s1;
s1 = "b" ;
System.out.println("s1 = "+s1+" s2 = "+ s2);
運行程序 ,列印結果為 :
s1 = b s2 =a
我們看到,s2並沒有隨s1的改變而改變。
三、自定義數據類型賦值
實驗3: 創建一個TUser u1 ,並將u1賦值給TUser u2 ,將 u1重新賦值 ,u2會隨著u1改變而改變嗎 ?
TUser u1 = new TUser();
u1.setId(1);
TUser u2 = u1 ;
u1 = new TUser();
u1.setId(2);
System.out.println("ui :"+u1 + "\t\n" +"u2 : "+ u2);
運行程序,列印結果為:
u1 :TUser(id=2)
u2 : TUser(id=1)
我們看到u2並沒有隨著u1的改變而改變。
如果我們不改變u1指向的地址,而是改變u1指向地址所對應的數據(即將 u1 = new TUser(); 注釋掉)。那麼u1,u2 列印的記過將都會是 TUser(id=2)
通過以上三個實驗我們發現:
變數之間的賦值,可以說沒有所謂的值賦值和地址賦值。
簡而言之,將一個變數a賦值給另一個變數b,是將這個變數a的值,拷貝一份給變數b(如果a是引用類型,就拷貝引用,如果是基本類型,就拷貝原始值)
2. java給對象的成員變數的賦值方法
java類的成員變數可以直接賦值,即賦初始值;
java類的成員變數也可以不賦值,系統會根據變數類型賦系統默認值;
java類的成員變數可以在以如下賦值:
聲明時(int i=10;)
構造方法里(this.變數名=? 方式)
類聲明時不賦值,用 對象實例名.setXXX(xxx); 即set方法
Java類的局部變數必須在聲明時賦值,否則報錯....就是那種定義在方法里的變數...
3. java語言,變數賦值問題。
只要是成員變數java都會自動賦值的。
當一個對象被初始化的時候,
new運算符首先調用構造方法給成員變數初始化,
遇到沒有被初始化的成員變數的時候java自動賦值,
int,long等整數自動賦值為0,float,double自動賦值為0.0,char自動賦值為\0。
這說的是非靜態,
對於靜態的成員變數,它不屬於某一個對象,所以當一個類被裝載到內存的時候
如果沒有被初始化java自動賦值。
非靜態
成員變數
是當一個對象被創建的時候賦值。
4. java怎麼獲得當前年月日並賦給變數
Java獲得當前年月日並賦值給變數,主要是使用java 提供的工具類Calendar,Date來獲取,如下代碼:
packagecom.ob;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassDateTest{
publicstaticvoidmain(String[]args)throwsParseException{
Calendarnow=Calendar.getInstance();
System.out.println("年:"+now.get(Calendar.YEAR));
System.out.println("月:"+(now.get(Calendar.MONTH)+1)+"");
System.out.println("日:"+now.get(Calendar.DAY_OF_MONTH));
System.out.println("時:"+now.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+now.get(Calendar.MINUTE));
System.out.println("秒:"+now.get(Calendar.SECOND));
System.out.println("當前時間毫秒數:"+now.getTimeInMillis());
System.out.println(now.getTime());
Dated=newDate();
System.out.println(d);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
StringdateNowStr=sdf.format(d);
System.out.println("格式化後的日期:"+dateNowStr);
Stringstr="2012-1-1317:26:33";//要跟上面sdf定義的格式一樣
Datetoday=sdf.parse(str);
System.out.println("字元串轉成日期:"+today);
}
}
輸出結果:
年: 2012
月: 1
日: 13
時: 17
分: 28
秒: 19
當前時間毫秒數:1326446899902
Fri Jan 13 17:28:19 CST 2012
Fri Jan 13 17:28:19 CST 2012
格式化後的日期:2012-01-13 17:28:19
字元串轉成日期:Fri Jan 13 17:26:33 CST 2012
5. 在Java中如何讓方法的變數賦值給類的變數
public class ll{ static int temp=0; public void qq(){ temp=1; } public void ww(){ System.out.print(temp); } }
6. Java中如何輸入一個整型值,並把它賦值給一個變數
JAVA用流來接收輸入,也可以直接輸入
public class T{
public static void main(String[] args)//String[] args這是來接收參數的
int a = 0 ;
if(args.length() != 1){
//這里是判斷是否只輸入一個參數
如果不是自已列印提示,在退出系統}
else {
//為一個參數接收參數
//這里還要判斷輸入的是否為數值型,判斷完成之後使用下面這句就可以了。這是不用流直接獲取輸入值的。如果使用流
a=Integer.parseInt(args.[0])}
}
下面是使用流Scanner in = new Scanner(System.in);
System.out.println("請輸入一個整數");
int a;
a = in.nextInt();