Java 从入门到进阶之路(九)
之前的文章我们介绍了一下 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 从入门到进阶之路(九)的更多相关文章
- Java 从入门到进阶之路(十九)
在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...
- Java 从入门到进阶之路(二十九)
在之前的文章我们已经可以对本地对文件和目录进行新建和删除等操作,接下来我们来对文件内对具体内容进行操作. 如下代码,我们实现了一个基本的文件写入: /** * java.io.RandomAccess ...
- Java 从入门到进阶之路(一)
写在前面:从本片文章开始,将记录自己学习 Java 的点滴路程,目标定的并不是让自己成为一个 Java 高手,而是让自己多掌握一门语言,使自己的知识面更广一些,在学习 Java 的过程中如有不对的地方 ...
- Java 从入门到进阶之路(二)
之前的文章我们介绍了一下用 IDEA 编辑器创建一个 Java 项目并输出 HelloWorld,本章我们来看一下 Java 中的变量和基本数据类型. 在这之前我们先来看一下 Java 中的关键字,这 ...
- Java 从入门到进阶之路(三)
之前的文章我们介绍了 Java 中的变量和基本数据类型,本章我们来看一下 Java 的运算符和表达式. 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操 ...
- Java 从入门到进阶之路(四)
之前的文章我们介绍了 Java 的运算符和表达式,本章我们来看一下 Java 的循环结构. 循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性进行. 循环的 ...
- Java 从入门到进阶之路(五)
之前的文章我们介绍了 Java 的循环结构,本章我们来看一下 Java 的数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. 数组 - 相同数据类型的元 ...
- Java 从入门到进阶之路(六)
之前的文章我们介绍了 Java 的数组,本章我们来看一下 Java 的对象和类. Java 是一种面向对象语言,那什么是对象呢,对象在编程语言中属于一个很宽泛的概念,我们可以认为万事万物都是对象,每个 ...
- Java 从入门到进阶之路(七)
在之前的文章中我们介绍了一下 java 中的对象和类,接下来我们来看一下 Java 中的方法重载. 在显示生活中,我们肯定会遇到这样一个问题,那就是我们再商场买东西的时候在付账时的选择.如下 A:在收 ...
随机推荐
- 【模板】prufer序列
如何构造一个prufer序列? 我们给一棵无根树的节点编上号,每次找到一个编号最小的度为1节点,删除它,并输出与它连接的点的编号,直到只剩下两个节点. 这样,我们就构造出来了一个prufer序列. 通 ...
- 解决MacOs 下的 matplotlib 中文字体乱码
在使用 matplotlib 时候,如果表中有中文字体,那么可能会出现无法显示的情况,原因是因为缺少中文字体,可以使用以下步骤解决. 查看 matplotlib 的位置 matplotlib.matp ...
- 8.3 NOIP 模拟12题解
话说这次考试T1和T2是真的水,然而T1CE,T2TLE,T3CE 这不就是在侮辱我的智商啊!之前本机编译都是c++,以后要用c++11. 这次的T1就是一个大型找规律,我的规律都找出来了,但是竟然用 ...
- git 设置不用每次都输入 账号密码
执行命令 git config --global credential.helper store 然后,下次再输入一次 账号密码 就可以了.
- 查看redis占用内存大小的方法
查看redis占用内存大小的方法 <pre>redis-cli auth 密码info</pre><pre># Memory used_memory:1349009 ...
- Dockerfile介绍及指令详情
Dockerfile简介: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么哪些无法重复的问题.镜 ...
- Redis持久化的几种方式——深入解析RDB
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而 ...
- BASH 编程之变量高级篇
内部变量 • $$与$BASHPID都代表着执行程序的进程 ID,我们可以通过 echo 打印,并用 ps 指令检查得到相同的进程 ID [root@oracle ~]# echo $BASHPID ...
- nyoj 324-猴子吃桃问题 (m[i] = (m[i-1] + 1) * 2)
324-猴子吃桃问题 内存限制:64MB 时间限制:3000ms 特判: No 通过数:20 提交数:21 难度:0 题目描述: 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法, ...
- VLAN实验(3)
1.选择2台S3700和5台pc机,并根据实验编址完成此拓扑图. 2.启动设备,检查设备的连通性: 由于现在我们还没有划分VLAN,这5台PC,还在同一个VLAN中,现在我们启动所有的设备,这是所有的 ...