Java成员变量
1.成员变量的定义
- “直接”在类体中定义的变量;
特点 - 成员变量有默认值(整数 0; 浮点型 0.0 ;char " " ; boolean false; 其他类型 null)
- 成员变量在整个类中都有效,但是一般写在类的头部。
作用 - 详细描述对象信息
package userinfor;
public class UserInfo {
int age;
String name;
String mobile;
String address;
char a;
boolean b;
double c;
public static void main(String[] args) {
UserInfo user1 = new UserInfo();
System.out.println(user1.age);
System.out.println(user1.name);
System.out.println(user1.a);
System.out.println(user1.b);
System.out.println(user1.c);
}
从上面代码和结果来看可以看出,成员变量是有默认值的,分别是与结果相对应,整型-0;String-null;char-空;boolean-false;浮点型-0.0。
2.成员变量的赋值方法
a. 直接复制法
package userinfor;
public class UserInfo {
int age;
String name;
String mobile;
String address;
public static void main(String[] args) {
//int score = 12;
UserInfo user1 = new UserInfo();
user1.age = 12;
user1.name = "某某";
user1.mobile = "123456789";
user1.address = "xxxxxxxxx";
System.out.println(user1.age);
System.out.println(user1.name);
System.out.println(user1.mobile);
System.out.println(user1.address);
UserInfo user2 = new UserInfo();
user2.age = 21;
user2.name = "某某某";
user2.mobile = "987654321";
user2.address = "xxxxxxxxxxxxxx";
System.out.println(user2.age);
System.out.println(user2.name);
System.out.println(user2.mobile);
System.out.println(user2.address);
}
}
当对象的数量多的时候,这样的赋值方法可以说是非常的麻烦,而且导致了代码非常的不简洁,这是与Java编程思想相悖的。所以第二种赋值方法产生了。
b. 利用构造方法
Java构造方法
构造方法的定义
- 方法是类名({参数列表()}){}
特点 - 构造方法没有返回值部分 void 不能有;
- 一个类中默认有无参构造方法,当定义了一个有参的构造方法,无参方法就不存在了
- 构造方法不允许final和static修饰
- 一个类中根据需要可以定义多个构造方法,这是”重载“体现
- 为了简化代码,类中构造方法可以相互调用,this(实参列表),但必须至于构造方法第一行,而且一个构造方法中不能有两个this,否则会报错,且调用是不分上下的,this(实参列表)既可以调用上面的构造方法,也可以调用下面的构造方法。
package userinfor;
public class UserInfo {
int age;
String name;
String mobile;
String address;
UserInfo(int a,String n, String m,String add){
this(a,n);//调用变量a,n的构造方法
mobile = m;
address = add;
}
UserInfo(int a){
age= a;
}
UserInfo(int a,String n){
this(a);//调用a的构造方法
name = n;
}
public static void main(String[] args) {
UserInfo user1 = new UserInfo(12,"某某","123456789","xxxxxxxx");
System.out.println(user1.age);
System.out.println(user1.name);
System.out.println(user1.mobile);
System.out.println(user1.address);
UserInfo user2 = new UserInfo(21,"某某某","987654321","xxxxxxxxxxxxxx");
System.out.println(user2.age);
System.out.println(user2.name);
System.out.println(user2.mobile);
System.out.println(user2.address);
}
}
以上代码,结果跟第一种方法是一模一样的,但是从代码的简化方面来看,明显简化了,大家可以在以后的编程中采用第二种方法去给对象赋值。