之前的文章我们介绍了一下 Java 中的构造方法,接下来我们再来看一下 Java 中的引用型数组类型。

现在我们想定义一个坐标系,然后通过横坐标(row)和纵坐标(col)来确定一个坐标点,代码如下:

 public class HelloWorld {
public static void main(String[] args) {
Point p1 = new Point(1, 2);
p1.print(); // (1,2) Point p2 = new Point(3, 4);
p2.print(); // (3,4) }
} class Point {
int row;
int col; Point(int row, int col) {
this.row = row;
this.col = col;
} void print() {
System.out.print("(" + row + "," + col + ")");
} }

通过以上代码我们可以获取坐标系上的某个点,如(1,2)或(3,4),但是如果我们想获取一个点的坐标集合,如:[(1,2),(3,4),(5,6),(7,8)],那该如何实现呢。

我们先来看一下之前说过的 int 型数组。

 public class HelloWorld {
public static void main(String[] args) {
int[] arr = new int[4];
arr[0] = 11;
arr[1] = 22;
arr[2] = 33;
arr[3] = 44;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); // 11 22 33 44
} }
}

在上面的代码中我们通过  int[] arr = new int[4];  创建了一个长度为 4 的 int 型数组,那么我们不就可以通过  Point[] points = new Point[4];  来创建一个长度为 4 的 Point 型数组嘛,然后我们再通过  new Point(1,2) 这样的形式来分别给 Point 型数组内赋值就可以了,如下:

 public class HelloWorld {
public static void main(String[] args) {
Point[] points = new Point[4];
points[0] = new Point(1, 2);
points[1] = new Point(3, 4);
points[2] = new Point(5, 6);
points[3] = new Point(7, 8);
for (int i = 0; i < points.length; i++) {
points[i].print(); // (1,2) (3,4) (5,6) (7,8)
} }
} class Point {
int row;
int col; Point(int row, int col) {
this.row = row;
this.col = col;
} void print() {
System.out.print("(" + row + "," + col + ")");
} }

从输出结果可以看出完全符合我们的预期。

当然,在 int 型数组赋值时我们可以通过  int[] arr = new int[]{ } 方式,如下:

 public class HelloWorld {
public static void main(String[] args) {
int[] arr = new int[]{
11,
22,
33,
44
}; for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); // 11 22 33 44
} }
}

那我们同样可以将 Point 型数组修改成  Point points = new Point[]{ } ,如下:

 public class HelloWorld {
public static void main(String[] args) {
Point[] points = new Point[]{
new Point(1, 2),
new Point(3, 4),
new Point(5, 6),
new Point(7, 8)
}; for (int i = 0; i < points.length; i++) {
points[i].print(); // (1,2) (3,4) (5,6) (7,8)
} }
} class Point {
int row;
int col; Point(int row, int col) {
this.row = row;
this.col = col;
} void print() {
System.out.print("(" + row + "," + col + ")");
} }

Java 从入门到进阶之路(九)的更多相关文章

  1. Java 从入门到进阶之路(十九)

    在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...

  2. Java 从入门到进阶之路(二十九)

    在之前的文章我们已经可以对本地对文件和目录进行新建和删除等操作,接下来我们来对文件内对具体内容进行操作. 如下代码,我们实现了一个基本的文件写入: /** * java.io.RandomAccess ...

  3. Java 从入门到进阶之路(一)

    写在前面:从本片文章开始,将记录自己学习 Java 的点滴路程,目标定的并不是让自己成为一个 Java 高手,而是让自己多掌握一门语言,使自己的知识面更广一些,在学习 Java 的过程中如有不对的地方 ...

  4. Java 从入门到进阶之路(二)

    之前的文章我们介绍了一下用 IDEA 编辑器创建一个 Java 项目并输出 HelloWorld,本章我们来看一下 Java 中的变量和基本数据类型. 在这之前我们先来看一下 Java 中的关键字,这 ...

  5. Java 从入门到进阶之路(三)

    之前的文章我们介绍了 Java 中的变量和基本数据类型,本章我们来看一下 Java 的运算符和表达式. 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操 ...

  6. Java 从入门到进阶之路(四)

    之前的文章我们介绍了 Java 的运算符和表达式,本章我们来看一下 Java 的循环结构. 循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性进行. 循环的 ...

  7. Java 从入门到进阶之路(五)

    之前的文章我们介绍了 Java 的循环结构,本章我们来看一下 Java 的数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. 数组 - 相同数据类型的元 ...

  8. Java 从入门到进阶之路(六)

    之前的文章我们介绍了 Java 的数组,本章我们来看一下 Java 的对象和类. Java 是一种面向对象语言,那什么是对象呢,对象在编程语言中属于一个很宽泛的概念,我们可以认为万事万物都是对象,每个 ...

  9. Java 从入门到进阶之路(七)

    在之前的文章中我们介绍了一下 java 中的对象和类,接下来我们来看一下 Java 中的方法重载. 在显示生活中,我们肯定会遇到这样一个问题,那就是我们再商场买东西的时候在付账时的选择.如下 A:在收 ...

随机推荐

  1. Docker之构建上下文详解

    昨天写了使用 Dockerfile 定制镜像.其中构建上下文这一块没有写,今天把这一块单独拿出来写一下. Docker镜像构建 简单说下构建镜像步骤: cd Dockerfile 所在目录; 执行 d ...

  2. Java后端开发工作 - 写接口

    我在公司的工作内容是,对于一个BS应用,负责服务器端开发工作,Java语言.与前端开发人员合作,最终提供给前端RESTFUL接口,保证页面正常响应. 经验之谈 一个接口可以理解为一个业务逻辑,一个业务 ...

  3. SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列

    分享一道今天的面试题:SQL语句实现:数据库中有A B C三列,当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列 第一种:使用case when...then...else ...

  4. .NET Core 又一杀器! Web Blazor框架横空出世!

    多年来,Javascript(及其子框架)已在浏览器中运行DOM(文档对象模型),并且掌握了脚本知识才能真正操作客户端UI.大约2年前,所有这些都随着Web Assembly的引入而发生了变化-Web ...

  5. python中PIL模块

    Image模块 Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内.如open.save.conver.show-等功能. open类 Image ...

  6. 学习笔记14Js使用技巧

    **页面加载完毕时执行一段代码$(fuction(){ initialMethod(); }); *将一个<form>序列化为json对象并传给服务器var postData = $(&q ...

  7. java核心编程书上的一个错误

    书上说这段代码说明了java对对象不是采用的按引用调用 这明显错了,java还是引用传递,只是把引用对象的变量复制了,互换了x,y所指的对象,对a,b没有影响

  8. Ubuntu13.10编译android源码中遇到的问题

    1. jdk的版本不对 我开始安装的是最新的jdk7,但是编译时会出现jdk的版本

  9. python购物车练习题

    # 购物车练习# 1.启动程序后,让用户输入工资,打印商品列表# 2.允许用户根据商品编号购买商品# 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒# 4.可随时退出,退出时,打印已购买 ...

  10. Linux入门之简介

    1.啥是linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统. 它能运行主要的Unix工具软件.应用程序 ...