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();