• Java正确创建对象数组


    先从一段简单的错误代码切入,然后在后面提出正确的创建方法。

    先考虑这段代码:

    public class Student {
    
        private int age;
        private String name;
    
        public void Student() {
            this.age = 21;
            this.name = "someone";
        }
    
        public void setAge (int age) {
            this.age = age;
        }
    
        public int getAge() {
            return this.age;
        }
    }
    public class Test {
    
        public static void main(String[] args) {
    
            Student[] students = new Student [3]; 
    
            students[0].setAge(18);  
    
            System.out.println(students[0].getAge());
        }
    }

    运行结果如下,是一个空指针异常:

    Exception in thread “main” java.lang.NullPointerException 
    at Test.main(Test.java:7)

    分析原因

    Student[] students = new Student [3]; 这一句创建了三个Student的声明,但并没有调用Student的构造方法,等价于,

    Student s1;
    Student s2;
    Student s3;

    因此,s1, s2, s3的对象实际上并没有被创建,在内存上也没有一块对应的空间。那么在对象还没有被创建之前,我们自然是不可以调用它的任何方法的。

    正确的对象数组创建方法

    public class Test {
    
        public static void main(String[] args) {
    
            int i;
    
            Student[] students = new Student [3]; 
    
            //实例化每一个元素
            for (i = 0; i < students.length; i++) {
                students[i] = new Student();
            }
    
            students[0].setAge(18);  
            students[1].setAge(30); 
            students[2].setAge(25); 
    
            System.out.println(students[0].getAge());
            System.out.println(students[1].getAge());
            System.out.println(students[2].getAge());
        }
    }
  • 相关阅读:
    冒泡排序代码实现
    git简单的操作命令
    git操作
    二进制流 及 ajax图片上传
    mysql备份和还原
    安装memcacheq
    源码分页搜索公用
    yii框架phpexcel
    vim 设定一个新的snippets
    ubuntu 安装 flash player
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12542553.html
Copyright © 2020-2023  润新知