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());
        }
    }
  • 相关阅读:
    Nginx实战系列之功能篇----后端节点健康检查
    nginx大量TIME_WAIT的解决办法
    Nginx 获取真实 IP 方案
    Redis基本操作——List
    redis-cli 命令总结
    redis 学习笔记-cluster集群搭建
    redis集群部署及常用的操作命令_01
    redis配置文件参数详解
    Redis 主从配置和参数详解
    Tomcat源码分析-开篇(Tomcat源码部署运行 Maven方式)
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12542553.html
Copyright © 2011-2022 走看看