zoukankan      html  css  js  c++  java
  • 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());
        }
    }
  • 相关阅读:
    # ES6基础
    # yarn简单使用
    # laravel框架中的配置
    需求概述开发进度09
    需求概述开发进度08
    需求概述开发进度07
    需求概述开发进度06
    需求概述开发进度05
    需求概述开发进度04
    需求概述开发进度03
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12542553.html
Copyright © 2011-2022 走看看