zhangyanfengzi 2012-10-09 11:39 采纳率: 100%
浏览 211
已采纳

Integer 和类实现问题和重写++问题

public class countDemo {

    static Integer count;
     
    public static void main(String[] args) {
    
        for(int i = 0;i<6;i++){
            count++;
        }
        System.out.println(count);
    }
}

 这样为什么会报null指针异常呢,为什么不可以++呢

 

第二个问题:

   

public class User implements java.io.Serializable {
    private Integer userId;
    private String userName;
    private String password;
    private String mobile;
    private String email;
    
    @Override
    public String toString() {
        return "User [email=" + email + ", mobile=" + mobile + ", password="
                + password + ", userId=" + userId + ", userName=" + userName
                + "]";
    }
}

 为什么要在类上要实现implements java.io.Serializable 类?

public class User implements java.io.Serializable {

为什么要这样重写类里面的属性?

public String toString() {
        return "User [email=" + email + ", mobile=" + mobile + ", password="
                + password + ", userId=" + userId + ", userName=" + userName
                + "]";
    }

 

 

  • 写回答

5条回答 默认 最新

  • henghanan 2012-10-09 13:41
    关注

    1、没有给count赋初值,Integer是int的封装类,默认值为null
    应该这样赋值:
    Integer count = 0;(这种写法在jdk1.5及以上的版本适用,原因是1.5以上的版本提供了自动拆箱机制;但如果你的jdk是1.4及以下,则应该改为:
    Integer count = new Integer(0);)

    2、一个类只有实现了Serializable接口,它的对象才是可序列化的。而实际上Serializable是一个空接口,没有具体的内容,它的目的只是简单的标识一个类的对象可以被序列化。

    3、重写toString()方法是期望得到自己想要格式的字符串,这个方法是定义在Object类中的,参考源码:
    [code="java"]public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?