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:在收 ...
随机推荐
- node留言板
这是一个nodejs + mongodb 的小项目,对数据库的增删改查 1. 引入项目依赖 "art-template": "^4.13.2", "b ...
- class定义类 及 实现继承
class 定义类 代码如下: class Student { constructor(name) { this.name = name; } sayHello() { console.log(&qu ...
- Splash的使用
Splash Lua脚本http://localhost:8050 入口及返回值 function main(splash, args) splash:go("http://www.baid ...
- 前端技术之:如何运行使用了ES(import)的node程序
方式一: 在package.json文件的scripts域中,配置以下的命令: "start": "cross-env NODE_ENV=dev node -r es ...
- Zabbix 四 主动模式
本次的主机192.168.131.8 被动模式. 将zabbix4.4.4的源码包放过去,解压安装依赖准备编译安装,并创建zabbix账户. tar -xf zabbix-4.4.0.tar.gz & ...
- csp模拟69
考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
Apache配置负载均衡和集群使用mod_jk的方式比较多,但是mod_jk已经停止更新,并且配置相对复杂.Apache2.2以后,提供了一种原生的方式配置负载均衡和集群,比mod_jk简单很多. 1 ...
- 单点登录 - API 认证系统 Passport(二)
安装 composer require laravel/passport=~4.0 notes: 1)确保系统安装unzip.zip等命令. 2)composer 安装出现 Authenticatio ...
- 洛谷 pP2146 [NOI2015]软件包管理器
题目的传送门 题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...
- 大数据之路week01--day02我实在时被继承super这些东西搞的头疼,今天来好好整理以下。
这一周的第一天的内容是面向对象的封装,以及对方法的调用.实在时没法单独拿出来单说,就结合这一节一起说了. 我实在是被继承中的super用法给弄的有点晕,程序总是不能按照我想的那样,不是说结果,而是实现 ...