创建自定义类的对象数组

源代码

public class Student{
     static int number = 0;     // 静态变量的访问可以不用创建类的实例就可就可使用< 类名.属性 >的方法访问
     String name; // 学生姓名

     Student( ){     // 无参构造函数
         System.out.println("创建学生成功。。");
         number++;      // 学生数加1
     }

     public static void main(String [] args){
         //  主方法开始
         System.out.println("学生数:"+Student.number);     // 0

         Student [] s;    // 声明要创建的对象数组
         s = new Student[2];   // 创建对象数组,为对象数组开辟空间
         s[0] = new Student();  // 创建数组对象,为数组对象开辟空间

         s[0].name = "凌小墨";       // 先声明,再创建,之后才能使用
        
         System.out.println("学生数:" + Student.number);
         System.out.println("姓名:"+s[0].name);

     }
}

运行结果

问题

  • 为什么Java里创建对象数组不同于C++呢?

Java语言是强类型语言,意思是每个变量和每个表达式都有一个在编译时就确定的类型,所以所有变量必须显式声明类型,也就是说,所有的变量必须先声明,后使用。

Java语言支持的数据类型分为两类:基本数据类型(也叫原始数据类型,Primitive Type)和引用数据类型(Reference Type)。

基本类型不用多说,主要是引用类型。引用类型包括类、接口和数组类型,还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是Java语言里不再使用指针这个说法。

参考阅读

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林冠宏的技术文章

由 System.arraycopy 引发的巩固:对象引用 与 对象 的区别

作者:林冠宏 / 指尖下的幽灵 腾讯云+社区:https://cloud.tencent.com/developer/user/1148436/acti...

1979
来自专栏Java3y

Collection总览

1365
来自专栏java一日一条

一个Java对象到底占用多大内存

大家可以用这个代码边看边验证,注意的是,运行这个程序需要通过javaagent注入Instrumentation,具体可以看原博客。我今天主要是总结下手动计算J...

361
来自专栏牛肉圆粉不加葱

(3) - Scala case class那些你不知道的知识

除了在模式匹配中使用之外,unapply 方法可以让你结构 case class 来提取它的字段,如:

661
来自专栏微信公众号:Java团长

深入理解Java对象的创建过程:类的初始化与实例化

在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没...

983
来自专栏林冠宏的技术文章

由 System.arraycopy 引发的巩固:对象引用 与 对象 的区别

首先明确一点,System.arraycopy 操作的是数组,效果是深复制。 是不是觉得怎么和你印象的中不一样? 重点来了,对于对象数组,例如: User[]...

964
来自专栏诸葛青云的专栏

C语言指针指向你的时候,菜鸡原型毕露!

所以先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样。

583
来自专栏walterlv - 吕毅的博客

C#/.NET 中推荐的 Dispose 模式的实现

发布于 2015-02-05 02:10 更新于 2018-06...

451
来自专栏java一日一条

一个Java对象到底占用多大内存

大家可以用这个代码边看边验证,注意的是,运行这个程序需要通过javaagent注入Instrumentation,具体可以看原博客。我今天主要是总结下手动计算J...

321
来自专栏Java架构沉思录

一个对象的前世今生

在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没...

1081

扫码关注云+社区