创建自定义类的对象数组

源代码

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 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

29:统计字符数

29:统计字符数 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。 ...

3696
来自专栏python成长之路

字典常用操作

1674
来自专栏菩提树下的杨过

温故知新:接口的隐式实现与显式实现

这二者的区别,仅在一个类同时实现多个接口,且多个接口中有相同的方法名字定义时,才有比较的意义。 using System; namespace Interfa...

2037
来自专栏java学习

面试题47(关于类的加载顺序)

以下代码执行后输出结果为? ---- public class Test{ public static Test t1 = new Test();{ ...

2937
来自专栏Python疯子

python列表,字典排序使用小知识点

1077
来自专栏Rgc

python中赋值,深拷贝,浅拷贝区别

这三种不适合 int,str,float,bool等类型。因为这些类型在值改变后,被赋值的变量值不变。

762
来自专栏程序员互动联盟

【编程基础】C语言之指针二

指针和数组 C语言的数组表示一段连续的内存空间,用来存储多个特定类型的对象。与之相反,指针用来存储单个内存地址。数组和指针不是同一种结构因此不可以互相转换。而数...

3334
来自专栏十月梦想

JavaScript数组元素排序

使用for循环遍历出数组;然后判断i号元素和i+1号大小,如果判断大于,存储小的元素,如果判断小于存储大的元素

703
来自专栏xingoo, 一个梦想做发明家的程序员

复制控制---复制构造函数

复制构造函数 只有单个形参,而且该参数是对本类类型对象的引用。 主要用于: 1 根据另一个同类型的对象显示或隐式的初始化一个对象 string a = "abc...

1885
来自专栏吾爱乐享

java学习之stringbuffer练习2,反转

1285

扫码关注云+社区