第6章 数组、枚举及注解

合集下载

java枚举类型enum用法 switch-概述说明以及解释

java枚举类型enum用法 switch-概述说明以及解释

java枚举类型enum用法switch-概述说明以及解释1.引言1.1 概述在计算机编程中,枚举类型(enum)是一种特殊的数据类型,用于表示一组具名的常量。

与普通的变量不同,枚举类型的取值是有限且固定的,它将一系列具有相似属性或关联关系的常量进行分组,方便在程序中进行使用和管理。

在Java编程语言中,枚举类型是一种独立的类,它可以包含多个枚举常量,并且允许定义属性和方法。

枚举类型的定义方式简单明了,可以帮助程序员更好地组织和管理常量。

本文将重点介绍Java中枚举类型enum的用法,并阐述枚举类型在switch语句中的应用。

首先,我们将讨论枚举类型的定义和声明,包括如何创建枚举类型以及如何给枚举常量赋值。

接着,我们将探讨枚举类型的属性和方法,包括如何为枚举常量定义属性和方法,以及如何在程序中使用它们。

最后,我们将重点关注枚举类型在switch语句中的应用,介绍如何使用switch语句处理枚举类型的不同取值。

通过本文的学习,读者将能够更好地掌握枚举类型enum的用法,进一步提升自己的编程能力。

接下来,我们将详细介绍枚举类型的定义和声明。

1.2 文章结构本文将按照以下结构来探讨Java枚举类型(enum)以及其在switch 语句中的应用。

1. 引言1.1 概述在引言部分,我们将简要介绍Java枚举类型(enum)的基本概念和作用,以及本文的目的和重要性。

1.2 文章结构(当前部分)在文章结构部分,我们将详细介绍本文的整体结构,让读者对接下来的内容有一个清晰的认知。

1.3 目的在目的部分,我们将阐述本文的目标是为读者提供全面了解Java 枚举类型(enum)及其在switch语句中应用的知识,以帮助读者在实际开发中更好地运用这些概念。

2. 正文在这一节中,我们将介绍如何定义和声明枚举类型,以及枚举类型的特点和用法。

2.2 枚举类型的属性和方法这一节将介绍枚举类型可以拥有属性和方法,以及如何使用这些属性和方法来对枚举类型进行操作和使用。

数组语法知识点总结

数组语法知识点总结

数组语法知识点总结1. 数组的定义数组是一种由相同类型的数据元素构成的有序集合。

每个元素在数组中都有一个唯一的索引,通过这个索引可以访问和操作元素。

数组的长度是固定的,一旦数组被创建,它的大小就不能再改变。

在大多数编程语言中,数组的定义语法通常是类似这样的:```dataType[] arrayName = new dataType[length];```其中,dataType是数组元素的数据类型,arrayName是数组的名称,length是数组的长度。

例如,在Java中,我们可以定义一个整数数组:```int[] numbers = new int[5];```这样就创建了一个长度为5的整数数组numbers。

在C语言中,我们可以定义一个字符数组:```char letters[10];```这样就创建了一个长度为10的字符数组letters。

2. 数组的初始化数组可以在定义的同时进行初始化,也可以在定义后逐个赋值。

在定义的同时进行初始化时,可以使用大括号来指定数组的初始值。

在Java中,我们可以这样初始化一个整数数组:```int[] numbers = {1, 2, 3, 4, 5};这样数组numbers就被初始化为{1, 2, 3, 4, 5}。

在C语言中,我们可以这样初始化一个字符数组:```char letters[5] = {'a', 'b', 'c', 'd', 'e'};```这样数组letters就被初始化为{'a', 'b', 'c', 'd', 'e'}。

3. 数组的访问数组元素的访问可以通过索引来实现。

数组的索引是从0开始的,因此第一个元素的索引是0,第二个元素的索引是1,以此类推。

在Java中,我们可以通过索引来访问数组元素:```int[] numbers = {1, 2, 3, 4, 5};int firstNumber = numbers[0];int secondNumber = numbers[1];```在C语言中,也可以通过索引来访问数组元素:```char letters[5] = {'a', 'b', 'c', 'd', 'e'};char firstLetter = letters[0];char secondLetter = letters[1];```4. 数组的遍历数组可以通过循环来遍历,对数组中的每个元素进行操作。

java枚举类的定义

java枚举类的定义

java枚举类的定义Java枚举类是一种特殊类型的类,用于表示一组具有固定数量的常量。

枚举常量是预定义的,并且在枚举类定义中被声明为公共、静态和最终。

枚举类可以包含构造函数、方法和字段,就像普通的Java类一样。

枚举类的实例是不可变的,因此它们可以安全地被共享和重用。

Java枚举类的定义是通过使用关键字“enum”来完成的,如下所示:```public enum MyEnum {VALUE1,VALUE2,VALUE3;}```在上面的示例中,我们定义了一个名为“MyEnum”的枚举类,它包含名为“VALUE1”、“VALUE2”和“VALUE3”的三个常量。

这些常量都是MyEnum类的实例,并且它们是不可变的。

可以通过使用“MyEnum.VALUE1”、“MyEnum.VALUE2”和“MyEnum.VALUE3”来访问这些常量。

枚举类还可以包含方法和字段,就像普通的Java类一样。

例如,我们可以向MyEnum类添加一个名为“getValue”的方法,如下所示:```public enum MyEnum {VALUE1('Value One'),VALUE2('Value Two'),VALUE3('Value Three');private final String value;private MyEnum(String value) {this.value = value;}public String getValue() {return value;}}```在上面的示例中,我们向MyEnum类添加了一个名为“value”的私有字段,并且为枚举常量提供了一个名为“value”的构造函数,以便设置该字段的值。

我们还添加了一个名为“getValue”的公共方法,以允许访问该字段的值。

现在,我们可以通过调用“MyEnum.VALUE1.getValue()”、“MyEnum.VALUE2.getValue()”和“MyEnum.VALUE3.getValue()”来获取每个枚举常量的值。

Java枚举(enum)详解

Java枚举(enum)详解

Java枚举(enum)详解Java 枚举知识点概念enum的全称为 enumeration,是 JDK 1.5 中引⼊的新特性。

在Java中,被enum关键字修饰的类型就是枚举类型。

形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何⽅法,枚举值默认为从0开始的有序数值。

以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2。

枚举的好处:可以将常量组织起来,统⼀进⾏管理。

枚举的典型应⽤场景:错误码、状态机等。

枚举类型的本质尽管enum看起来像是⼀种新的数据类型,事实上,enum是⼀种受限制的类,并且具有⾃⼰的⽅法。

创建enum时,编译器会为你⽣成⼀个相关的类,这个类继承⾃ng.Enum。

ng.Enum类声明public abstract class Enum<E extends Enum<E>>implements Comparable<E>, Serializable { ... }枚举的⽅法在enum中,提供了⼀些基本⽅法:values():返回 enum 实例的数组,⽽且该数组中的元素严格保持在 enum 中声明时的顺序。

name():返回实例名。

ordinal():返回实例声明时的次序,从0开始。

getDeclaringClass():返回实例所属的 enum 类型。

equals():判断是否为同⼀个对象。

可以使⽤==来⽐较enum实例。

此外,ng.Enum实现了Comparable和Serializable接⼝,所以也提供compareTo()⽅法。

例:展⽰enum的基本⽅法public class EnumMethodDemo {enum Color {RED, GREEN, BLUE;}enum Size {BIG, MIDDLE, SMALL;}public static void main(String args[]) {System.out.println("=========== Print all Color ===========");for (Color c : Color.values()) {System.out.println(c + " ordinal: " + c.ordinal());}System.out.println("=========== Print all Size ===========");for (Size s : Size.values()) {System.out.println(s + " ordinal: " + s.ordinal());}Color green = Color.GREEN;System.out.println(<span class="hljs-string">"green name(): "</span> + ());System.out.println(<span class="hljs-string">"green getDeclaringClass(): "</span> + green.getDeclaringClass());System.out.println(<span class="hljs-string">"green hashCode(): "</span> + green.hashCode());System.out.println(<span class="hljs-string">"green compareTo Color.GREEN: "</span> + pareTo(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Color.GREEN: "</span> + green.equals(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Size.MIDDLE: "</span> + green.equals(Size.MIDDLE));System.out.println(<span class="hljs-string">"green equals 1: "</span> + green.equals(<span class="hljs-number">1</span>));System.out.format(<span class="hljs-string">"green == Color.BLUE: %b\n"</span>, green == Color.BLUE);}输出=========== Print all Color ===========RED ordinal: 0GREEN ordinal: 1BLUE ordinal: 2=========== Print all Size ===========BIG ordinal: 0MIDDLE ordinal: 1SMALL ordinal: 2green name(): GREENgreen getDeclaringClass(): class org.zp.javase.enumeration.EnumDemo$Colorgreen hashCode(): 460141958green compareTo Color.GREEN: 0green equals Color.GREEN: truegreen equals Size.MIDDLE: falsegreen equals 1: falsegreen == Color.BLUE: false枚举的特性枚举的特性,归结起来就是⼀句话:除了不能继承,基本上可以将enum看做⼀个常规的类。

Delphi基本数据类型---枚举、子界、集合、数组

Delphi基本数据类型---枚举、子界、集合、数组

Delphi基本数据类型---枚举、⼦界、集合、数组参考:参考:1.根据枚举定义集合typeTMyColor = (mcBlue, mcRed); //定义了⼀个枚举类型TMyColorTMyColorSet = set of TMyColor; //定义了⼀个基于枚举类型的集合TMyColorSet2.根据枚举定义数组typeTMyEnum = (red, green, blue); //定义枚举procedure TForm1.ButtonClick(Sender : TObject);constColorArr : array[TMyEnum] of string = ('红', '绿', '蓝'); //定义数据varmyEnum : TMyEnum; //定义枚举类型beginfor myEnum := Low(ColorArr) to High(ColorArr) dobeginShowMessage(ColorArr[myEnum]);end;end. 注意其中根据枚举定义相关的数组的语法 注意其中使⽤枚举进⾏循环控制的⽅法3.枚举类型的相关知识,参考4.⼦界类型 如果我们定义⼀个变量为Integer型,那么它的取值范围⼀般为-32768~32767.⽽事实上,每个程序所⽤到的变量的值都有⼀个确定的范围。

例如,⼈的年龄⼀般为1~120岁,⼀年中的⽉数为1~12,⼀个⽉中的天数为1~31天等等 如果能在程序中对所⽤的变量的值域做具体规定,就便于检查出那些不合法的数据,这样就能更好的保证程序运⾏的正确性且在⼀定程度上节省了内存空间 ⼦界类型就能很好的解决上⾯的问题。

此外,在数组的定义中,常⽤到⼦界类型,以规定数组下标的范围 1)定义格式: type ⼦界类型标识符 = 常量1..常量2 //其中常量1称为⼦界的下界,常量2称为⼦界的上界 上界和下界必须是同⼀顺序类型(该类型称为⼦界类型的基类型),且上界的序号必须⼤于下界序号,例如typeage = 1..100;letter = 'a'..'z'; 可以直接在变量说明中定义⼦界类型,如typeletter = 'a'..'z';varch1, ch2 : letter; 可以合并成varch1, ch2 : 'a'...'z'; 2)⼦界类型数据的运算规则 凡是可以使⽤基类型的运算规则同样适⽤于该类型的⼦界类型 例如,可以使⽤整型变量的地⽅,也可以使⽤以整型为基类型的⼦界类型数据 对基类型的运算规则同样适⽤于该类型的⼦界类型 例如,div,mod要求参数运算的数据为整型,因⽽也可以为整型的任何⼦界类型数据 基类型相同的不同⼦界类型可以进⾏混个运算,⽐如有以下说明varx : 1..100;y : 1..500;z : 1..1000;a : integer; 则下⾯的语句是合法的a:=Sqr(x) + y + z;z := x + y; 下⾯的语句:y := x + z + a; 当x+z+a的值在1~500范围内也就是(y所属的⼦界类型的范围)就是合法的,否则就会出错 3)⼦界类型的应⽤举例 例1,使⽤⼦界类型情况语句,当输⼊⽉、⽇、年(10 30 1986),输出30 oct 1986varmonth : 1..12;day : 1..31;year : 1900..2003;beginwrite('Enter date(mm dd yyyy):');readln(month, day, year);write(day);case month of1:write('Jan' :5);2:write('Feb' :5);3:write('Mar':5);4:write('Apr':5);5:write('May':5);6:write('Jun':5);7:write('Jul':5);8:write('Aug':5);9:write('Sep':5);10:write('Oct':5);11:write('Nov':5);12:write('Dec':5);end;writeln(year:7);end. 例2,将⼀个四位的⼗六进制数转换成⼗进制varch : char;n : 1..4;d1, d2, d3, d4, t : 0..15;s : real;beginwrite('The hex number is');for n:=1 to 4 dobegin {将四位的⼗六进制数分四次作为字符读⼊}read(ch);write(ch);{分别转换为⼗进制的数d1, d2, d3, d4}if (ch >= '0') and (ch <= '9') thent := ord(ch) - 48;if (ch >= 'a') and (ch <= 'z') thent:=ord(ch)-87;if (ch >= 'A') and (ch <= 'Z') thent:=ord(ch)-55;case n of1 : d1 := t;2 : d2 := t;3 : d3 := t;4 : d4 := t;end;end;s := d1*16*16*16 + d2*16*16 + d3*16 + d4;writeln('dec:', s);end.。

解析JAVA程序设计第六章课后答案

解析JAVA程序设计第六章课后答案

第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。

对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。

2.试说明容器与组件之间的关系。

组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。

容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。

3.阅读下面程序,说明其运行结果和功能。

//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。

//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。

枚举enums-概述说明以及解释

枚举enums-概述说明以及解释

枚举enums-概述说明以及解释1.引言1.1 概述枚举(enums)是一种常见的数据类型,用于定义一组有限的具名值。

在许多编程语言中,枚举提供了一种方便的方式来表示一系列相关的常量。

它们可以帮助我们更好地组织和理解代码,使得代码更加可读、可维护和可靠。

枚举类型由一组事先定义好的枚举成员组成。

每个枚举成员都有一个与之关联的名称和一个对应的值。

这些枚举成员的值是唯一且不可变的,可以用来代表某种状态、类型或其他特定的常量值。

枚举在编程中有广泛的应用,特别是在需要表示一组相关的选项或状态的场景中。

例如,当我们需要表示一周中的星期几时,可以使用枚举来定义七个枚举成员,分别代表星期一到星期日。

这样,我们在代码中引用这些枚举成员时就能够更加清晰地表达我们的意图,而不是直接使用数字或字符串。

在本文中,我们将探讨枚举的定义和作用,以及它们在实际编程中的使用场景。

我们将深入了解枚举的语法和特性,并通过实例来说明如何使用枚举来提高代码的可读性和可维护性。

接下来的章节将介绍枚举的定义和使用场景,并通过实际示例来说明它们的实际应用。

最后,我们将对枚举的概念进行总结,并展望未来对枚举的进一步探索和应用。

让我们一起深入学习和探讨枚举的世界吧!文章结构部分的内容如下:文章结构部分旨在向读者介绍整篇文章的组织框架和各个章节的内容概览。

通过清晰地呈现文章的结构,读者可以更好地理解和跟随整个论述逻辑。

本篇长文的文章结构如下:1. 引言- 1.1 概述- 1.2 文章结构- 1.3 目的2. 正文- 2.1 枚举的定义和作用- 2.2 枚举的使用场景3. 结论- 3.1 总结- 3.2 对枚举的展望引言部分首先概述了本篇长文的主题-枚举的概念和应用。

紧接着,文章结构部分将详细介绍本篇长文的组织框架。

最后,明确了编写此篇长文的目的。

正文部分通篇探讨了枚举的定义和作用,以及枚举在实际应用中的使用场景。

读者将会理解枚举的概念、特性以及为什么使用枚举能够更加有效地解决问题。

java竞赛知识点总结

java竞赛知识点总结

java竞赛知识点总结引言随着计算机技术的发展,编程竞赛已经成为了大学生程序员们的一项受欢迎的比赛。

而Java语言也成为了编程竞赛的主流语言之一。

本文将对Java编程竞赛涉及的知识点进行总结,以帮助读者更好的准备并参加Java编程竞赛。

一、基础知识1. 数据类型Java中的数据类型主要分为基本数据类型和引用数据类型。

基本数据类型包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。

而引用数据类型包括类、数组、接口等。

在竞赛中,需要熟练掌握各种数据类型的特点及使用方法。

2. 控制语句Java中的控制语句包括:if-else语句、switch-case语句、for循环、while循环、do-while循环、break语句、continue语句等。

.这些控制语句可以帮助程序员控制程序的逻辑流程,是解决问题的重要工具。

3. 数组数组在编程竞赛中是常用的数据结构。

需要掌握数组的声明、初始化、遍历、排序等操作,以及在不同场景下的使用方法。

4. 字符串字符串在Java中是一个重要的数据类型。

需要掌握字符串的定义、初始化、操作方法、常用的API等知识点。

5. 类和对象面向对象是Java的编程范式,对于程序员来说需要熟练掌握类的定义、对象的创建、属性和方法的访问、继承、多态等重要知识点。

6. 包和导入包是Java中的一种组织结构,可以帮助程序员有效地管理Java类。

在编程竞赛中,需要熟练掌握包的定义、导入和使用。

7. 异常处理Java中的异常处理提供了一种灵活的机制来处理程序中的异常情况。

需要熟练掌握try-catch语句、throw和throws关键字等异常处理方法。

8. 输入输出在编程竞赛中,输入输出是非常关键的操作,需要掌握标准输入输出、文件输入输出、流操作等知识点。

9. 集合框架Java集合框架提供了一系列的接口和类来帮助程序员快速地操作集合数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.一维数组的定义 一维数组的定义格式有如下两种: 方式1:<类型><数组名>[]; 方式2:<类型>[] <数组名>; 其中:<类型>可以是Java中任意的数据类型,<数组名>为用户自定义的 一个合法的变量名,[]指明该变量是一个数组类型变量。Java在定义数组时并 不为数组元素分配内存,仅为<数组名>分配一个引用变量的空间。例如下面 的语句: int a[]; String [] person; int b[100]; // 错误,声明数组时不能指定其长度 2.创建一维数组对象 和创建其他Java对象一样,同样使用new关键字创建一维数组对象,格式 为: 数组名 = new 元素类型 [元素个数]; 例如下面的语句: int [] Array = new int[100]; // 创建一个int型数组,存放100个int类 型的数据
6.2 多维数组
右击“NumSort.java”,选择“Run As”“Run Configurations”,如图 6.6所示,选择Main标签页,在“Project”栏中选择“MyProject_06”,在“Main class”栏中选择“NumSort”, 选择“Arguments”标签页,在“Program argumentds”栏中输入“12 5 78 45 17 6 8 13 32 14”,然后单击“Run”按钮,运 行程序。
Java实用教程(第3版)
6.2 多维数组
(3) 若最终元素是引用类型,则还需对每一个最终元素进行对象的空间分 配。例如下面的语句:
Point[][] p; p = new Point[3][]; p[0] = new Point[2]; // 定义一个二维数组的引用变量 // 先作为一维数组,进行最高维空间的分配 // 每一个元素又是一个一维数组,再进行一维数组空间
Java实用教程(第3版)
6.1 一维数组
Java虚拟机首先在堆区中为数组分配内存空间,如图6.1所示,创建了一 个包含100个元素的int型数组,数组成员都是int类型,占4个字节,因此整个 数组对象在堆区中占用400个字节。之后,就要给每个数组成员赋予其数据类 型的默认值,int型的默认值是0。
堆内存 内存 0 0 ... 0 Array 0
图6.1 一维数组的内存布局
Java实用教程(第3版)
6.1 一维数组
3. 一维数组初始化 定义数组的同时也可对数组元素进行显式初始化,有动态初始化和静态 初始化。静态初始化指的是在定义数组的同时就为数组元素分配空间并赋值, 它的格式如下: <类型>[] <数组名> = {<表达式1>,<表达式2>,…}; 或者 <类型> <数组名>[ ] = {<表达式1>,<表达式2>,…}; Java编译程序会自动根据<表达式>个数算出整个数组的长度,并分配相 应的空间,例如下面的语句: int[ ] Array = {1,2,3,4};
Java实用教程(第3版)
6.2 多维数组
和一维数组一样,若没有对二维数组成员进行显式初始化,则会进行隐 式初始化,会根据创建的数组类型初始化对象,内存布局如图6.4所示。
0 0 0 0 0 0
内存
堆内存
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
Java实用教程(第3版)
6.1 一维数组
数组成员是引用类型的也可静态初始化,如图6.2所示。 Point[ ] pa = {new Point(1,4),new Point(3,9),new Point(15,18)}; class Point { int x,y; Point(int a,int b){ x = a; y = b; } }
内存
堆内存
1 4 3 9 15 18
Point
Point Point
Pa
图6.2 引用类型数组的内存布局
Java实用教程(第3版)
6.1 一维数组
动态初始化指的是数组定义与为数组分配空间和赋值的操作分开进行, 例如下面的语句: int a[ ] = new int[3]; a[0] = 1; a[1] = 5; a[2] = 9; 同样,数组成员是引用类型的也可动态初始化,例如下面的语句: Point[ ] pa = new Point[3 ]; pa[0]= new Point(1,4); pa[1]= new Point(3,9); pa[2]= new Point(15,18); // 或采用匿名数组写法 // Point[] pa = {new Point(1,4),new Point(3,9),new Point(15,18)}; class Point { int x,y; Point(int a,int b){ x = a; y = b; } }
pt[1] pt[2] pt pt[1][1]
7 8 9 10 11 12
Point(7,8)
pt[2][0] pt[2][1]
Point(9,10) Point(11,12)
图6.5 二维数组引用类型的内存布局 Java实用教程(第3版)
6.2 多维数组
二维数组的动态初始化有两种方式: 方式1: <类型>[ ][ ]<数组名> = new <类型>[<第一维大小>][<第二维大小>]; 例如:int[][] arr = new int[3][5]; 方式2:从高维向低维依次进行空间分配,此时分配的数组空间可以是 任意的形状。 (1) 由于二维数组首先是一个一维数组,故先对该一维数组进行空间分 配,也就是说,先对最高维进行空间分配。 <类型>[ ][ ]<数组名> = new <类型>[<元素个数>][]; 例如:int [][] c = new int[3][]; (2) 每一个元素又是一个一维数组,故对每一个元素再用new语句进行 空间分配,格式与一维数组相同。例如下面的语句: c[0] = new int[4]; c[1] = new int[3]; c[2] = new int[5];
第6章 数组、枚举及注解
6.1 一维数组 6.2 多维数组 6.3 访问数组 6.4 数组实用类Arrays 6.5 枚举 6.6 enum的构造方法
6.7 使用EnumMap 6.8 注解 6.9 内置注解 6.10 元注解 6.11 综合实例
Java实用教程(第3版)
6.1 一维数组
Java实用教程(第3版)
6.1 一维数组
【例6.1】 输入一组非0整数到一维数组中,设计一个Java程序,求出这一 组数的平均值,并分别统计出这一组数中正数和负数的个数。 TestAverage.java
package org.arrays; public class TestAverage { public static void main(String[] args){ int i = args.length; // 获取命令行参数的长度 int[] arr = new int[10]; int num =0; int k =0; int p =0; for(int j =0;j<i;j++){ arr[j]= Integer.parseInt(args[j]); if (arr[j]< 0){ k++; // 负数的个数加一 } else p++; // 正数的个数加一 num = num + arr[j]; // 计算累加和 } System.out.println("正数的个数"+p); System.out.println("负数的个数"+k); System.out.println("平均值是"+num/i); // 计算平均值 Java实用教程(第3版) } }
分配
p[1] = new Point[1]; p[2] = new Point[2]; p[0][0] = new Point(1,1); p[0][1] = new Point(2,2); // 最后对每一个元素进行Point对象空间的分配 p[1][0] = new Point(3,3); p[2][0] = new Point(4,4); p[2][1] = new Point(5,5); class Point { int x, y; Point(int a, int b) { x = a; y = b; } } 【例6.2】 设计一个Java程序,从低到高将从命令行中读取的一组数字进行升序排 Java实用教程(第3版) 列。
a
图6.4 二维数组的内存布局
Java实用教程(第3版和一维数组一样,定义二维数组的同时也可对数组成员进行显式初始化, 有动态初始化和静态初始化。 在下面的语句中,定义String类型数组alphabet的同时初始化数组成员, 即静态初始化。 String[][] alphabet = {{"a","b","c"},{"d","e","f"},{"g","h","i"},{"j","k","l"}}; 注意:无论是初始化一维数组还是二维数组,都不能指定其长度。例如 下面的语句: String[4][3] alphabet = {{"a","b","c"},{"d","e","f"},{"g","h","i"},{"j","k","l"}}; // 错误 二维数组的第二维的长度可以各不相同,例如下面的语句: String[][] alphabet = {{"a","b","c","d",},{"e","f"},{"g","h"},{"i","j","k"}};
相关文档
最新文档