精华内容
下载资源
问答
  • 在main方法中定义的数组引用变量在其他方法中不能用啊,程序如下,总是出现“找不到符号的错误”,那位高手该分析一下啊(其它的三个类我已经定义了)/***@(#)MultiMedia.java***@aut...在main 方法中定义的数组引用...

    在main方法中定义的数组引用变量在其他方法中不能用啊,程序如下,总是出现“找不到符号的错误”,那位高手该分析一下啊(其它的三个类我已经定义了)/***@(#)MultiMedia.java***@aut...

    在main 方法中定义的数组引用变量在其他方法中不能用啊,程序如下,总是出现“找不到符号的错误”,那位高手该分析一下啊(其它的三个类我已经定义了)

    /**

    * @(#)MultiMedia.java

    *

    *

    * @author

    * @version 1.00 2009/11/26

    */

    public class MultiMedia {

    public Book book;

    public CD cd;

    public Cassette cassette;

    public static int NUMOFOBJECT=0; //用来记录数组中对象的个数

    //构造方法

    public MultiMedia(Book book,CD cd,Cassette cassette) {

    this.book=book;

    this.cd=cd;

    this.cassette=cassette;

    }

    public static void main(String[] args){

    MultiMedia[] mediaList=new MultiMedia[100];

    for(int i=0;i

    mediaList[i]=null;

    }

    MultiMedia myMedia=new MultiMedia(new Book("java程序设计",1,"饶一梅"),new CD("范特西",2,700),new Cassette("周杰伦",3,14));

    MultiMedia yourMedia=new MultiMedia(new Book("C语言程序设计",2,"谭浩强"),new CD("叶惠美",3,800),new Cassette("羽泉",5,14));

    add(yourMedia);

    delete(yourMedia);

    }

    //add 方法用于添加对象

    public static void add(MultiMedia a){

    NUMOFOBJECT++;

    if(mediaList[0]=null){

    mediaList[0]=a;

    }

    else {

    int j=0;

    while(mediaList[j]!=null)

    j++;

    mediaList[j]=a;

    }

    }

    //delete 方法用于删除对象

    public static void delete(MultiMedia a){

    int i=0;

    while(i

    if(mediaList[i]=a){

    for(;i

    mediaList[i]=mediaList[i+1];//删除对象mediaList[i],其余对象一次前移

    }

    mediaList[NUMOFOBJECT-1]=null;//最后一个对象指向空

    }

    else System.out.println("没有找到该对象,请重新输入");

    i++;

    }

    }

    //search方法用于查找对象

    public static void search(MultiMedia a){

    for(int i=0;i

    if(mediaList[i]=a){

    break;

    System.out.println(a.book.name);

    }

    }

    }

    }

    mediaList设成static就会出现“非法的表达式开始”的错误

    展开

    展开全文
  • Java数组详解

    2021-02-27 09:59:00
    数组是相同类型的变量按顺序组成...声明数组声明数组包括数组变量的名字(简称数组名)、数组的类型。声明一维数组有下列两种格式数组的元素类型 数组名[];数组的元素类型 [] 数组名;例如: float boy[];float[] boy;...

    数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。

    数组属于引用型变量,创建数组需要经过声明数组和为数组分配变量两个步骤。

    声明数组

    声明数组包括数组变量的名字(简称数组名)、数组的类型。

    声明一维数组有下列两种格式

    数组的元素类型 数组名[];

    数组的元素类型 [] 数组名;

    例如: float boy[];

    float[] boy;

    声明二维数组有下列两种格式

    数组的元素类型 数组名[][];

    数组的元素类型 [][] 数组名;

    例如: char cat[][];

    char[][] cat;

    分配变量

    声明数组后,还必须为它分配内存空间,为一维数组分配内存空间的格式如下:

    数组名字 = new 数组元素的类型[数组元素的个数];

    例如: float boy[];

    boy= new float[4];

    声明数组和创建数组可以一起完成,例如:

    float boy[]=new float[4];

    这是一个长度为4的boy数组类型

    101628eb565ed04c05583d4f5a640751.png

    二维数组和一维数组一样,在声明之后必须用new运算符为数组分配内在空间。

    例如: int mytwo[][];

    mytwo = new int [3][4];

    声明数组和创建数组可以一起完成,例如:

    int mytwo[][] = new int[3][4];

    Java采用“数组的数组”来声明多维数组。上述创建的二维数组mytwo就是由3个长度为4的一维数组:mytwo[0]、mytwo[1]和mytwo[2]构成的。

    使用数组

    一维数组通过索引符访问自己的元素,如boy[0],boy[1]等。需要注意的是索引从0开始 。

    二维数组也通过索引符访问自己的元素,如a[0][1],a[1][2]等。需要注意的是索引从0开始。

    比如声明创建了一个二维数组a:

    int a[][] = new int[2][3];

    那么第一个索引的变化范围为从0到1,第二个索引变化范围为从0到2。

    Length的使用

    数组的元素的个数称作数组的长度。

    对于一维数组,“数组名.length”的值就是数组中元素的个数。

    对于二维数组“数组名.length”的值是它含有的一维数组的个数。

    例如,对于

    float a[] = new float[12];

    int b[][] = new int[3][6];

    a.length的值12;而b.length的值是3。

    数组的初始化

    创建数组后,系统会给数组的每个元素一个默认的值,如,float型是0.0。

    在声明数组的同时也可以给数组的元素一个初始值,如:

    float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};

    也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,

    例如:

    int a[][]= {{1}, {1,1},{1,2,1}, {1,3,3,1},{1,4,6,4,1}};

    数组的引用

    数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

    例如,对于int a[] = {1,2,3}, b[ ]= {4,5};数组变量a和b分别存放着引用0x35ce36和0x757aef。

    0c3929bdbceeaaac8d8ebb96c220b270.png

    如果使用了下列赋值语句(a和b的类型必须相同)a=b;那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同。

    fc5cf56f5cd445b22dca49fc66c3399d.png

    数组的遍历

    基于循环语句的遍历,语法格式如下:

    for(声明循环变量:数组的名字) {

    … …

    }

    其中,声明的循环变量的类型必须和数组的类型相同。

    可以将这种形式的for语句中翻译成“对于循环变量依次取数组的每一个元素的值”。

    示例:

    public class Demo11{

    public static void main(String args[]){

    int a[] = {1,2,3,4}; /*创建一个int类型的数组

    System.out.println("数组元素的个数:"+a.length);

    System.out.println("a[1]:"+a[1]); /*通过下标来访问具体的数组元素

    for(int i=0;i

    System.out.println("a["+i+"]:"+a[i]);

    }

    }

    }

    测试数组

    76c58843b1138963d1762a0549f6c3a5.png

    遍历

    553dd9dbf5273e3779ec866402e71532.png

    展开全文
  • JAVA数组的定义及用法

    2021-03-06 03:16:41
    当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。另外一种形式对C++开发人员可能认为非常奇怪,只是对JA...

    数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。

    1. 一维数组

    1.1 一维数组的定义

    type arrayName[];

    type[] arrayName;

    当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。

    另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统并未对事实上例化,仅仅需指明变量的类型就可以,也不需在[]指定数组大小。(第一种形式是不是仅仅是为了兼容曾经的习惯,毕竟C语言的影响太大了?)

    比如:

    int intArray[];

    声明了一个整型数组,数组中的每一个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素个数,即数组长度,并且对于如上定义的一个数组是不能訪问它的不论什么元素的。我们必须为它分配内存空间,这时要用到运算符new,其格式例如以下:

    arrayName=new type[arraySize];

    当中,arraySize指明数组的长度。如:

    intArray=new int[3];

    为一个整型数组分配3个int型整数所占领的内存空间。

    通常,这两部分能够合在一起,格式例如以下:

    type arrayName=new type[arraySize];

    比如:

    int intArray=new int[3];

    1.2 一维数组元素的引用

    定义了一个数组,并用运算符new为它分配了内存空间后,就能够引用数组中的每个元素了。数组元素的引用方式为:

    arrayName[index]

    当中:index为数组下标,它能够为整型常数或表达式。如a[3],b[i](i为整型),c[6*I]等。下标 从0開始,一直到数组的长度减1。对于上面样例中的in-tArray数来说,它有3个元素,分别为:

    intArray[0],intArray[1],intArray[2]。注意:没有intArray[3]。

    另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同一时候,对于每一个数组都有一个属性length指明它的长度,比如:intArray.length指明数组intArray的长度。

    public class ArrayTest{

    public static void main(String args[]){

    int i;

    int a[]=new int[5];

    for(i=0;i<5;i++)

    a[i]=i;

    for(i=a.length-1;i>=0;i--)

    System.out.println("a["+i+"]="+a[i]);

    }

    }

    执行结果例如以下:

    C:/>java ArrayTest

    a[4]=4

    a[3]=3

    a[2]=2

    a[1]=1

    a[0]=0

    该程序对数组中的每一个元素赋值,然后按逆序输出。

    1.3 一维数组的初始化

    对数组元素能够依照上述的样例进行赋值。也能够在定义数组的同一时候进行初始化。

    比如:

    int a[]={1,2,3,4,5};

    用逗号(,)分隔数组的各个元素,系统自己主动为数组分配一定空间。

    与C中不同,这时Java不要求数组为静态(static),事实上这里的变量相似C中的指针,所以将其作为返回值给其他函数使用,仍然是有效的,在C中将局部变量返回给调用函数继续使用是刚開始学习的人非常easy犯的错误。

    2. 多维数组

    与C、C++一样,Java中多维数组被看作数组的数组。比如二维数组为一个特殊的一维数组,其每一个元素又是一个一维数组。以下我们主要以二维数为例来进行说明,高维的情况是相似的。

    2.1 二维数组的定义

    二维数组的定义方式为:

    type arrayName[][];

    比如:

    int intArray[][];

    与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符new来分配内存,然后才干够訪问每一个元素。

    对高维数组来说,分配内存空间有以下几种方法:

    1. 直接为每一维分配空间,如:

    int a[][]=new int[2][3];

    2. 从最高维開始,分别为每一维分配空间,如:

    int a[][]=new int[2][];

    a[0]=new int[3];

    a[1]=new int[3];

    完毕1中同样的功能。这一点与C、C++是不同的,在C、C++中必须一次指明每一维的长度。

    2.2 二维数组元素的引用

    对二维数组中每一个元素,引用方式为:arrayName[index1][index2] 当中index1、index2为下标,可为整型常数或表达式,如a[2][3]等,相同,每一维的下标都从0開始。

    2.3 二维数组的初始化

    有两种方式:

    1. 直接对每一个元素进行赋值。

    2. 在定义数组的同一时候进行初始化。

    如:int a[][]={{2,3},{1,5},{3,4}};

    定义了一个3×2的数组,并对每一个元素赋值。

    展开全文
  • 原标题:Java数组和普通对象的引用变量有什么区别1、数组和普通对象的引用变量有什么区别了解什么是数组看这里:java中的数组是什么对于Java的数组来说,只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高...

    原标题:Java数组和普通对象的引用变量有什么区别

    1、数组和普通对象的引用变量有什么区别

    了解什么是数组看这里:java中的数组是什么

    对于Java的数组来说,只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高原则),才能将数组引用传递给另一数组引用,但仍然不能改变数组长度(仅仅只是调整数组引用指针的指向)。

    了解数组传递看这里:数组如何传递

    publicclass TestArrayLength {

    publicstaticvoidmain(String[] args) {

    int[] numbers = { 3, 5, 12 };

    int[] digits = newint[4];

    System.out.println("digits数组长度:" + digits.length);//4

    for(int number : numbers) {

    System.out.print(number + ",");//3,5,12,

    }

    System.out.println("");

    for(int digit : digits) {

    System.out.print(digit + ",");//0,0,0,0,

    }

    System.out.println("");

    digits = numbers;

    System.out.println("digits数组长度:" + digits.length);//3

    }

    }

    执行结果如下:

    digits数组长度:4

    3,5,12,

    0,0,0,0,

    digits数组长度:3

    数组初始化之后在内存中的存储如下图,在堆中有2个新的数组对象,栈中有2个分别指向这两个数组对象的引用变量:

    254cbf7ee3c45a4abe219ea20b0fc176.png

    在执行digits = numbers赋值后,虽然看似digits的数组长度看似由4变成3,其实只是numbers和digits指向同一个数组对象而已。

    而digits本身失去引用而变成垃圾,等待垃圾回收来回收(但其长度仍然为4)。如图:

    了解java垃圾回收看这里:java垃圾回收机制是什么

    Java新人自学交流群:202250194返回搜狐,查看更多

    责任编辑:

    展开全文
  • 数组中常见的错误:1.NullPointerExcepation :空指针异常原因:引用的类型变量没有指向任何的对象,在这种情况下还访问了它的属性和方法。一个对象如果使用完了不会立马释放,只是将这个对象变为一个垃圾对象,由...
  • Java-数组变量

    2021-03-02 15:26:48
    必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法格式 格式: Datatype[] arrayRefVar; 或 Datatype arrayRefVar[]; 例: Byte类型: byte[] arrayByteA; int类型: int [] arrayInteA; long类型...
  • 请问定义个数组变量作为Java中的局部变量,没有初始化怎么可以编译通过int[]a=newint[5];打印a[0]结果为0这是为何,不是局部变量一定要初始化么,不会默认初始化的吗? 答:java里面的int数组是有初始值的 如果未...
  • Java 通过变量引用多维数组元素接下来,我们准备为大家介绍“通过变量引用多维数组元素”。通过变量引用多维数组元素——'变量'在程序运行的过程中,是可以改变的,所以,将变量作为多维数组的下标,就可以引用多维...
  • 我有这么简单的代码.... } } 它输出了我所期望的: $javac A.java && java A The quick brown​ fox jumped over the lazy cat 奇怪的是zzz()中的a = a.当我拿出它时似乎没有任何改变.为什么会这样?
  • I know how to pass a variable from one activity to another using global variables.e.g.In one.java:GlobalVars.setColour(0);In two.java:if (GlobalVars.getColour() == 0) ...GlobalVariables.java:private s...
  • JAVA数组是什么?

    2021-02-12 12:56:30
    Java中数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来...数组变量属引用类型,数组也可以看...
  • Java数组

    2021-03-05 21:17:42
    Java 数组Java语言中提供的数组是用来...现在将为大家介绍Java数组的声明、创建和初始化,并给出其对应的代码。声明数组变量。首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[]...
  • 关于java数组名地址与c语言数组名的不同 package Frist; public class 关于数组名 { public static void main(String[]args){ int arr[]={1,32,5}; int arr1[][]={{123,14,51},{1,8,6,},{8,5}}; System.out....
  • java数组

    2021-03-06 01:07:34
    数组的定义数组是引用数据类型三种当中的...格式1:元素类型[] 数组名= new元素类型[元素个数组长度];格式2:元素类型[] 数组名= new元素类型[] {元素,元素,......};int[] arr = new int[] {3,5,1,7};int[] ar...
  • JAVA数组

    2021-03-06 20:24:36
    第一节 什么是数组数组可以理解为是一个巨大的“盒子”,里面可以按...那么我们该如何使用java中的数组呢?1.声明数组,语法:数据类型[] 数组名;或者 数据类型 数组名[];其中数组名是任意合法的变量名2.分配空...
  • java声明数组变量

    2021-05-08 08:22:16
    声明一个数组变量 type[] 变量名,比如:int[] arrInt; int arrInt2[]; 语法支持,可以这样写但是实标开发中不建议 数组的初始化分为两种:静态初始化 动态初始化 静态初始化: 初始化写法arrInt= new int[] {1,2,3,...
  • Java基础语法:数组

    2021-02-25 18:43:23
    一、简介描述:数组是相同类型数据的有序集合。其中,每一个数据称作一个数组元素,每个数组元素...数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中...
  • java数组声明格式

    2021-03-24 13:23:42
    java 声明动态数组,java对象数组详解,java中声明数组,java数组声明格式Java 中数组的声明一维数组的声明: 在 Java 中,数组是独立的对象,有自身的方法,不是变量的集合。 数组的声明: 类型标识符 数组名[ ] 或者 类型...
  • Java 数组

    2021-03-14 13:16:02
    数组对于每一门编辑应语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽...本教程将为大家介绍Java数组的声明、创建和初始化,并给出其对应的代码。声明数组变量首先必须声明数组变量,才能...
  • 带你走进Java数组世界

    2021-03-11 15:27:18
    你可以声明一个数组变量,如 num[100] 来代替直接声明 100 个独立变量 num有的子怒骂num0,num1,....,num99。本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。一、数组的声明和两种定义...
  • java 数组

    2021-03-09 18:59:42
    【1】习题引入:键盘录入十个学生的成绩,求和,求平均import java.util.Scanner;public class TestArray01{public static void main(String[] args){//功能:键盘录入十个学生的成绩,求和,求平均://定义一个...
  • java 数组 容器

    2021-02-28 15:21:14
    容器:是将多个数据存储到一起,每个数据称为该容器的元素.数组:存储数据长度...如:定义一个长度为5的整数组 int[] arr = new int[5];定义一个长度为10的字符串数组 String arr = new String[10];方式二:格式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 593,791
精华内容 237,516
关键字:

java数组的数是变量

java 订阅