精华内容
参与话题
问答
  • Java中数组的定义与使用(一)

    万次阅读 多人点赞 2018-09-01 00:05:13
    如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这儿时候如果按照此类方式定义就会非常麻烦,...

    数组的基本概念

    如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:

    int i1, i2, i3, ... i100;
    

    但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。

    其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配,而数组的定义语法有如下两类。

    • 数组动态初始化:
      • 声明并开辟数组:
        • 数据类型 [] 数组名称 = new 数据类型[长度];
        • 数据类型 [] 数组名称 = new 数据类型[长度];
      • 分布进行数组空间开辟(实例化)
        | Tables | Are |
        | ------------- |:-------------?
        | 声明数组: | 数组类型 数组名称[] = null; | | | 数组类型 [] 数组名称 =null; | | 开辟数组空间: | 数组名称 =new` 数组类型[长度]; |

    那么当数组开辟空间之后,就可以采用如下的方式的操作:

    • 数组的访问通过索引完成,即:“数组名称[索引]”,但是需要注意的是,数组的索引从0开始,所以索引的范围就是0 ~ 数组长度-1,例如开辟了3个空间的数组,所以可以使用的索引是:0,1,2,如果此时访问的时候超过了数组的索引范围,会产生java.lang.ArrayIndexOutOfBoundsException 异常信息;
    • 当我们数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值;
    • 数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,数组是一个有限的数据集合,所以应该使用 for 循环。
    • Java 中提供有一种动态取得数组长度的方式:数组名称.length;

    范例: 定义一个int型数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = new int[3]; /*开辟了一个长度为3的数组*/
    		data[0] = 10; // 第一个元素
    		data[1] = 20; // 第二个元素
    		data[2] = 30; // 第三个元素
    		for(int x = 0; x < data.length; x++) {
    			System.out.println(data[x]); //通过循环控制索引
    		}
    	}
    }
    

    数组本身除了声明并开辟空间之外还有另外一种开辟模式。

    范例: 采用分步的模式开辟数组空间

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null; 
    		data = new int[3]; /*开辟了一个长度为3的数组*/
    		data[0] = 10; // 第一个元素
    		data[1] = 20; // 第二个元素
    		data[2] = 30; // 第三个元素
    		for(int x = 0; x < data.length; x++) {
    			System.out.println(data[x]); //通过循环控制索引
    		}
    	}
    }
    

    但是千万要记住,数组属于引用数据类型,所以在数组使用之前一定要开辟控件(实例化),如果使用了没有开辟空间的数组,则一定会出现 NullPointerException 异常信息:

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null; 
    		System.out.println(data[x]);
    	}
    }
    

    这一原则和之前讲解的对象是完全相同的。

    数组在开发之中一定会使用,但是像上面的操作很少。在以后的实际开发之中,会更多的使用数组概念,而直接使用,99%情况下都只是做一个 for 循环输出。

    数组引用传递

    既然数组属于引用数据类型,那么也一定可以发生引用传递。在这之前首先来研究一下数组的空间开辟。

    范例: 观察一道程序

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null;
    		data = new int[3]; //开辟一个长度为3的数组
    		data[0] = 10;
    		data[1] = 20;
    		data[2] = 30;
    	}
    }
    

    新建数组变量

    那么既然说到了引用数据类型了,就一定可以发生引用传递,而现在的引用传递的本质也一定是:同一块堆内存空间可以被不同的栈内存所指向。

    范例: 定义一个程序

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null;
    		data = new int[3]; //开辟一个长度为3的数组
    		int temp[] = null; //声明对象
    		data[0] = 10;
    		data[1] = 20;
    		data[2] = 30;
    		temp = data;  //int temp[] = data;
    		temp[0] = 99;
    		for(int i = 0; i < temp.length; i++) {
    			System.out.println(data[i]);
    		}
    	}
    }
    

    这里写图片描述

    引用传递分析都是一个套路。同一块堆内存被不同的栈内存所指向。

    数组静态初始化

    在之前所进行的数组定义都有一个明显特点:数组先开辟内存空间,而后再使用索引进行内容的设置,实际上这种做法都叫做动态初始化,而如果希望数组在定义的时候可以同时出现设置内容,那么就可以采用静态初始化完成。

    数组的静态初始化一共分为以下两种类型:

    Tables Are
    简化格式: 数据类型 数组名称 = {值, 值,…}
    完整格式: 数据类型 数组名称 = new 数据类型[] {值, 值,…}

    范例: 采用静态初始化定义数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = {1, 2, 4, 545, 11, 32, 13131, 4444};
    		for(int i = 0; i < data.length; i++) {
    			System.out.println(data[i]);
    		}
    	}
    }
    

    在开发之中,对于静态数组的初始化强烈建议使用完整语法模式,这样可以轻松地使用匿名数组这一概念。

    public class ArrayDemo {
    	public static void main(String args[]) {
    		System.out.println(new int[] {1, 2, 4, 545, 11, 32, 13131, 4444}.length);
    	}
    }
    

    以后使用静态方式定义数组的时候一定要写上完整格式。

    数组最大的缺陷:长度固定。

    二维数组

    在之前所使用的数组发现只需要一个索引就可以进行访问,那么这样的数组实际上非常像一个数据行的概念。

    索引 0 1 2 3 4 5 6 7 8
    内容 12 23 44 56 90 445 49 99 1010

    现在痛过一个索引就可以取得唯一的一个记录。所以这样的数组可以简单理解为一维数组,而二维数组本质上指的是行列集合,也如果要确定某一个数据需要行索引和列索引来进行定位。

    索引 0 1 2 3 4 5 6 7 8
    0 12 23 44 56 90 445 49 99 1010
    1 2 3 41 56 9 45 49 99 10

    如果要想确定一个数据则数据使用的结构是“数组名称[行索引][列索引]”,所以这样的结构就是一个表的结构。

    那么对二维数组的定义有两种声明形式:

    • 数组的动态初始化:数据类型 对象数组[][] = new 数据类型[行个数][列个数];
    • 数组的静态初始化:数据类型 对象数组[][] = new 数据类型[行个数][列个数]{{值, 值,…}, {值, 值,…},…};

    数组的数组就是二维数组。

    范例: 定义一个二维数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		//此时的数组并不是一个等列数组
    		int data[][] = new int[][] {
    			{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
    		//如果在进行输出的时候一定要使用双重循环,
    		//外部的循环控制输出的行数,而内部的循环控制输出列数
    		for(int i = 0; i < data.length; i++) {
    			for(int j = 0; j < data[i].length; j++) {
    				System.out.print("data[" + i + "][" + j + "]=" + data[i][j] + "、");
    			}
    			System.out.println();
    		}
    	}
    }
    

    由于输出麻烦,所以可以忽略了,在进行开发之中,出现二位数组的几率并不高。

    展开全文
  • 定义一个人类Person该类中应该有两个私有属性姓名name和年龄age。定义构造方法用来初始化数据成员。再定义显示display方法将姓名和年龄打印出来。 在main方法中创建人类的实例然后将信息显示。 代码如下: /* * ...

    编写Java程序用于显示人的姓名和年龄。 定义一个人类Person该类中应该有两个私有属性姓名name和年龄age。定义构造方法用来初始化数据成员。再定义显示display方法将姓名和年龄打印出来。 在main方法中创建人类的实例然后将信息显示。

    代码如下:

    /*
     * 编写Java程序用于显示人的姓名和年龄。
     * 定义一个人类Person该类中应该有两个私有属性姓名name和年龄age。
     * 定义构造方法用来初始化数据成员。再定义显示display方法将姓名和年龄打印出来。
     * 在main方法中创建人类的实例然后将信息显示。
     */
    
    public class Person {
    	public static void main(String[] args) {
    		Person person = new Person("abc", 12);
    		System.out.println(person.display());
    	}
    
    	private String name;
    	private int age;
    
    	public Person() {
    		super();
    	}
    
    	public Person(String name, int age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    
    	public String display() {
    		return "Person [name=" + name + ", age=" + age + "]";
    	}
    
    }
    
    展开全文
  • 定义一个名为 Circle的类,其中含有double型的成员变量centerX和centerY表 示圆心坐标,radius 表示圆的半径。定义求圆面积的方法getArea0方法和求圆周长的方法getPerimeter()。为半径radius 定义访问方法和修改方法...
    定义一个名为 Circle的类,其中含有double型的成员变量centerX和centerY表 示圆心坐标,radius 表示圆的半径。定义求圆面积的方法getArea0方法和求圆周长的方法getPerimeter()。为半径radius 定义访问方法和修改方法。定义一个带参数构造方法,通过给出圆的半径创建圆对象。定义默认构造方法,在该方法中调用有参数构造方法,将圆的半径设置为1.0。画出该类的UML图。编写程序测试这个圆类的所有方法。
    public class Circle {
    	double centerX=0,centerY=0,radius;
       public double getRadius() {
       return radius;
    }
       public void noCircle() {
         this.radius=1;
       }
    public void setRadius(double radius) {
       this.radius = radius;
    }
    public double CircleBody() {
       return radius;
    }
    public double getArea() {
       return radius*radius*Math.PI; 
    }
    public double getPerimeter() {
       return 2*radius*Math.PI;
    }
       public static void main(String[] args) {
         // TODO Auto-generated method stub
    Circle c=new Circle();
    c.noCircle();
    System.out.println("圆的半径为:"+c.CircleBody());
    System.out.println("圆的面积为:"+c.getArea());
    System.out.println("圆的周长为:"+c.getPerimeter());
       }
    }
    

    进阶:

    (1)定义一个名为Circle的类表圆,其中含有double型的成员变量centerX、centerY表示圆心坐标,radius表示圆的半径。定义求圆面积的方法getArea()方法和求圆周长的方法getPerimeter()。 (2)定义一个带参数构造方法,通过给出圆的半径创建圆对象。定义默认构造方法。 (3)定义一个名为Cylinder类表示圆柱,它继承Circle类,要求定义一个变量height表示圆柱高度。定义getVolume()方法求圆柱体积。定义默认构造方法和带radius和height两个参数的构造方法。

    展开全文
  • 定义一个表示学生信息的类Student...

    万次阅读 多人点赞 2018-07-30 17:33:18
    定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量:  nO 表示学号;name表示姓名;sex表示性别;age表示年龄;java:表示Java课程成绩。 (2)类Student带参数的构造方法:  在构造...

     定义一个表示学生信息的类Student,要求如下:  

    (1)类Student的成员变量:

     nO 表示学号;name表示姓名;sex表示性别;age表示年龄;java:表示Java课程成绩。

    (2)类Student带参数的构造方法:  

      在构造方法中通过参数完成对成员变量的赋值操作。

    (3)类Student的方法成员:

      getNo(): 获得学号;  getName():获得姓名;  getSex():获得性别; getAge()获得年龄;  getJava():获得Java 课程成绩  

    (4)根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

    代码如下:

    (1)

    (2)

    (3)

    (4)

    输出如下:

     

    展开全文
  • 定义一个学生类,Student有姓名,学号,选学的课程列表 定义一个课程类:课程名称,课程分数 (1)初始化一个学生,选择了三门课程,并添加到学生的属性中 (2)实现统计学生的总分功能 1.正...
  • 代码1 import static java.lang.Math.PI;... * 定义一个圆类 * 内部提供一个属性半径r * 提供两个方法计算面积和周长并输出 * 定义一个测试类使用 * */ class Circle4 { double r; public Ci...
  • RS422管脚定义说明

    万次阅读 2019-01-09 17:02:40
    RS422 针脚定义: 1.英式标识为 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+)、GND 2.美式标识为 Y 、Z 、 A 、 B 、 GND 3.中式标识为 TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND  具体的需要查看422芯片手册,并和对...
  • SQL Server 2012 外键约束(定义外键、删除外键)

    万次阅读 多人点赞 2019-04-21 20:00:26
    文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除外键 准备知识     外键...
  • 定义一个圆类——Circle,在类的内部提供一个属性:半径®,同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一...
  • Python定义函数实现累计求和

    千次阅读 2020-01-31 21:06:02
    Python实现0-n累加求和一、使用三种方法实现0-n累加求和1、使用while循环2、使用 for循环3、使用递归函数二、使用了三种实现累加求和的方法,分别定义了三个函数。1、对0-100实现累加求和,令n=100,分别调用三个...
  • 习题6.13 定义一个Student类,包含如下内容: 成员变量:学号,姓名,性别,班干部否,数学,语文,外语 成员方法:输入,总分,平均分 编程实现这个类,并调用相应的方法输入数据,计算总分和平均分。 代码块: ...
  • C/C++定义二维数组(矩阵)

    万次阅读 多人点赞 2016-09-30 09:24:20
    本文介绍了C/C++二维数组定义,分维度确定与否来介绍。
  • #/*定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0), 以及一个movePoint(int dx,int dy)方法实现点的位置移动,创建两个Point对象p1、p2, 分别调用movePoint方法后...
  • 定义一个表示学生信息的类Student,要求如下:(有关类的编程)  (1)类Student的成员变量: sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。 (2)类Student带参数的构造...
  • Python 变量,定义变量,变量类型

    千次阅读 2018-11-06 21:58:49
    变量的定义.py: # 1. 定义一个变量记录 QQ 号码。 定义变量必须要有 = 赋值;没有=表示使用变量,会报未定义的错误 qq_number = "1234567" # 2. 定义一个变量记录 QQ 密码 qq_password = "123"...
  • java中如何定义一个数组

    千次阅读 2018-12-20 11:34:02
    数组的定义方法 int[] a; //定义一个数组a int[] b=new int[10]; //定义一个长度为10的数组b int[] c={7,1,2,3,8}; //定义一个数组c,并赋值,其中a[0]=7,a[4]=8; //以数组b为例,长度为10,分别是从b[0]-...
  • C++头文件定义类的方法

    万次阅读 多人点赞 2019-06-29 16:52:57
    新手在写C++程序定义类的时候,可能会犯一个错误,就是在main函数文件里定义很多类,一个文件中包含很多函数,这样程序看起来很冗杂。今天总结一下如何在C++中使用头文件来定义一个类,并在另一个文件中进行引用。 ...
  • 邻接矩阵的定义和例子

    千次阅读 2018-04-07 21:41:52
    根据图的定义可知,图的逻辑结构分为两部分:V和E的集合。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,称这个二维数组为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无...
  • /*定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。 (2)类Student带参数的构造方法: 在...
  • matlab函数定义详解

    千次阅读 2014-06-28 16:23:49
    但凡经过编程熏陶的人,在学习其他一门陌生... 在数学中,定义一个函数,我们需要明确定义域、值域、表达式。在matlab中,则对应为输入参数,输出参数,函数体。实际上,matlab支持多输入多输出,函数的返回值可以为一
  • MINI-PCIE接口定义管脚定义PIN定义

    万次阅读 2019-08-17 19:10:45
    PCI Express Mini Card (also known as Mini PCI Express, Mini PCIe, and Mini PCI-E) is a replacement for the Mini PCI form factor based on PCI Express. It is developed by the PCI-SIG....
  • matlab中巧妙定义分段函数

    千次阅读 2019-10-06 19:40:22
    学习matlab有一段时间了,可是最近在一场考试中我发现还有很多简单的问题我都没有学会,比如怎么在matlab中定义分段函数。 最简单的方法当然是使用if~else语句,但是由于很多时候我需要使用函数句柄,将函数视作一...
  • 实验报告:定义一个表示学生的类Student

    万次阅读 多人点赞 2018-06-02 18:23:46
    定义一个表示学生的类Student,包括属性“学号”、“班号”、“姓名”、“性别”、“年龄”; * 方法“获得学号”、“获得班号”、 “获得姓名”、“获得性别”、 “获得年龄”、 “修改年龄”。 * 在main()中创建...
  • 分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值. Student 类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和 成绩属性赋值 在测试类中创建两个 ...
  • 数据完整性 要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储的数据...– 用户定义的完整性(User-defined Integrity) • 实体完整性和参照完整性是关系模型必须满足的完整性约束...
  • python中class的定义及使用

    万次阅读 多人点赞 2019-06-05 13:38:44
    定义了该集合中每个对象所共有的属性和方法。 #对象:它是类的实例化。 #方法:类中定义的函数。 #类(Class) 由3个部分构成: ''' 类的名称:类名 类的属性:指对象的特征(一组数据) 类的方法:允许对象进行操作的...
  • 结构体变量和结构体类型的定义

    万次阅读 多人点赞 2019-08-02 16:43:19
    结构体类型定义 定义方式1: Typedef struct LNode { int data; // 数据域 struct LNode *next; // 指针域 } *LinkList; 定义方式2: struct LNode { int data; // 数据域 struct LNode *next; // 指针域 }; ...
  • 定义一个圆类(Circle)

    万次阅读 2017-10-24 18:44:57
    – 定义一个圆类(Circle),其所在的包为bzu.info.software;定义一个圆柱类Cylinder,其所在的包为bzu.info.com;定义一个主类A,其所在的包也为bzu.info.com,在A中生成一个Cylinder对象,并输出其体积。编译并...
  • 哈哈。 #include #include #include #include #include "stdafx.h" #include #include #include using namespace std; int red[9240000]; int main() { ...如何定义超大数组?
  • 跳转指定行数: Ctrl + G 跳转到函数定义: F12 或者函数名右键&gt;转到定义

空空如也

1 2 3 4 5 ... 20
收藏数 1,836,854
精华内容 734,741
关键字:

定义