Java学习记录Day22
1、第一题:设计日期类,每个日期对象都可以描述年月日信息。
public class Datamessage01 {
int day;
int month;
int year;
}
2、第二题:设计男人类,每个男人都有身份证号、姓名、性别、女人。设计女人类,每个女人都有身份证号、姓名、性别、男人。
public class Man02 {
String sex="男";
String idcard;
String name="小明";
Woman02 ming=new Woman02();
}
3、第三题:设计银行账户类,每个账户都有账号、密码、余额等信息。
public class BankAccount03 {
String account;
int password;
double balance;
}
4、第四题:设计微信账号类,每个微信账号都有微信号、手机号、昵称等信息。
public class VxMessage {
int vxid;
int phoneNumber;
String vxName;
}
5、第五题:定义丈夫类 Husband 和妻子类 Wife,
丈夫类的属性包括:身份证号,姓名,出生日期,妻子。
妻子类的属性包括:身份证号,姓名,出生日期,丈夫。
分别给这两个类提供构造方法(无参数构造方法和有参数构造方法都要提供),
编写测试程序,创建丈夫对象,然后再创建妻子对象,丈夫对象关联妻子对象,
妻子对象关联丈夫对象,要求能够输出这个“丈夫对象”的妻子的名字,
或者能够输出这个“妻子对象”的丈夫的名字。要求能够画出程序执行过程的内存图。
并且要求在程序中演示出空指针异常的效果。
在一个A对象中调用另一个B对象的属性,A对象的地址保存在变量apple中,B对象的地址保存在变量balance中,当把balance的值赋予null空值,之后apple调用另一个balance的属性将无法找到B对象的属性,此时出现空指针异常。
Wife的class文件
public class Wife {
String idcard;
String name;
String dateBirth;
String husband;
Husband zhangfu;
public Wife(){
}
public Wife(String name){
System.out.println(name);
}
public String getName(){
return name;
}
}
Husband的class文件
public class Husband {
String idcard;
String name;
String dateBirth;
Wife qizi;
public Husband(){
}
public Husband(String name){
System.out.println(name);
}
public String getName(){
return name;
}
}
测试类class文件,调用为null值的变量,虽然这个变量可能之前存储着对象的地址,但是当值为null时将不再存储对象地址,若强行调用对象属性则会出现异常。
public class TestWife {
public static void main(String[] args) {
Husband ming=new Husband();
ming.name="黄晓明";
Wife li=new Wife();
li.name="小丽";
ming.qizi=li;
System.out.println(ming.qizi.name);//黄晓明妻子的名字
System.out.println(li.name);//小丽的名字
li.zhangfu=ming;
System.out.println(li.zhangfu.name);
System.out.println(ming.name);
Husband liang=new Husband();
liang.name="刘亮";
}
}