二维数组与类的定义_DAY06
1:二维数组(理解):
(1)格式:
1:int[][] arr = new int[3][2];
2:int[][] arr = new int[3][];
3:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
内存图:
格式1的内存图:

格式2的内存图:

数组穿参的内存图:

(2)应用:遍历与求和。
数组综合应用:数组加密,杨辉三角
2:Java中的参数传递问题。(理解内存图)
基本类型:形式参数的改变对实际参数没有影响。
引用类型:形式参数的改变直接影响实际参数。
3:面向对象(理解)
(1) 面向对象:是基于面向过程的一种思想。
面向过程:以函数为基础,关注实现过程。
面向对象:以对象为基础,关注实现结果。
(2) 面向对象的思想特点:
A:是一种更符合人们思考习惯的思想。
B:把复杂的事情简单化了。
C:把我们从执行者变成了指挥者。
举例:
买电脑。
洗衣,做饭。
旅游。
吃烤鸭。
(3)事物是如何体现的呢?
A:属性 有哪些特征
B:行为 有哪些功能
(4)类与对象的关系:(掌握)
把事物转换成类:
A:成员变量
定义在类中,方法外。
B:成员方法
和以前的区别是去掉static。
类:是相关的属性和行为的集合。是一个抽象的概念。
对象:是某种事物的具体存在,具体的表现形式。
举例:
类:学生
对象:田野,张三
(5)案例:
A:人类
B:变形金刚类
//C:汽车类(内存图)
(6)如何使用呢?
A:创建对象
格式:
类名(一种抽象好的类型,实际上是自定义的数组类型) 对象名 = new 类名(); 创建对象必须加()
B:使用成员变量和成员方法
对象名.成员变量
对象名.成员方法名() :调用方法必须加()
(7)内存:引用型变量,存在于堆内存当中

附题:
1.数组加密
import java.util.Scanner; /**
1、数组加密:
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字。最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。 例如:
输入:23691
输出: 74186 2.思路:
第一步 倒叙: 19632
第二步 一系列计算: 64187
第三步 首尾交换: 74186
3、提示:
将每一位上的数剥离放到数组中操作
注意倒叙放入数组,注意要记录住索引
*/
public class JiaMi {
public static void main(String[] args) {
//输入一个数 例如26391;
Scanner sc=new Scanner(System.in);
int num=sc.nextInt(); //调用加密方法
method(num);
} public static void method(int num){ //获得每位上的数
/*
int ge=num%10; num=num/10; //1 2639
int shi=num%10; num=num/10; //9 263
int bai=num%10; num=num/10; //2 26
int qian=num%10; num=num/10; //6 2
int wan=num%10; //2 0
*/ int[] arr=new int[7]; // 1 9 2 6 2 0 0
int index=0;
while(num>0){
arr[index]=num%10;
num=num/10;
index++; // 最后index=5
} //加5取除以10的余数
for(int i=0;i<index;i++){
arr[i]=(arr[i]+5)%10;
} //交换首尾顺序
int temp=arr[0];
arr[0]=arr[index-1];
arr[index-1]=temp; //输出
for(int i=0;i<index;i++){
System.out.print(arr[i]);
} }
}
2、使用二维数组打印杨辉三角
/**
* 使用二维数组完成杨辉三角的打印
* 1
* 11
* 121
* 1331
* 14641
*/
public class YangHuiSanJiao {
public static void main(String[] args) { //定义一个二维数组,存放杨辉三角
int[][] arr=new int[5][5]; for(int i=0;i<arr.length;i++){
for(int j=0;j<=i;j++){
arr[i][j]=0;
}
} //给杨辉三角赋值
//给前两行赋值
arr[0][0]=1;
arr[1][0]=1;
arr[1][1]=1; for(int i=2;i<arr.length;i++){
//给第一列和正三角的最后一列赋值
arr[i][0]=1;
arr[i][i]=i;
//给其余列赋值,本列的数等于上一行本列的数与上一行前一列的数之和
for(int j=1;j<=i;j++){
//上一行本列的数 arr[i-1][j]
//上一行前一列的数 arr[i-1][j-1]
arr[i][j]= arr[i-1][j]+arr[i-1][j-1];
}
} //打印一个正三角
for(int i=0;i<arr.length;i++){
for(int j=0;j<=i;j++){
System.out.print(arr[i][j]);
}
System.out.println();
} }
}
二维数组与类的定义_DAY06的更多相关文章
- c# 一维数组和二维数组的几种定义方式<转>
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- [zt]C++二维数组讲解、二维数组的声明和初始化
定义: int *pia = new int[10]; // array of 10 uninitialized ints 此 new 表达式分配了一个含有 10 个 int 型元素的数组,并返回指向 ...
- C语言基础--二维数组
二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...
- Java基本语法-----java二维数组
由于word里的样式在csdn上调太麻烦了,所以我再次贴图了,后面二维数组那里是文字的,大家将就看吧. 二维数组常见的操作: 1.遍历二维数组 2.对二维数组求和 class Demo { // 定义 ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义. ...
- numpy数组(5)-二维数组的轴
numpy的mean(),std()等方法是作用于整个numpy数组的,如果是二维数组的话,也是整个数组,包括所有行和列,但我们经常需要它仅作用于行或者列,而不是整个二维数组,这个时候,可以定义轴ax ...
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
- 101-PHP二维数组的元素输出三,封装成函数
<?php $arr=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65),5,234,56,'Hel ...
- JS 剑指Offer(二)二维数组中的查找
04.在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. var ...
随机推荐
- Android APP测试流程
一. Monkey测试(冒烟测试) 使用monkey测试工具进行如下操作: 1. APP的安装 2. APP随机操作测试(APP压力测试) 3. APP的卸载 二. 安装卸载测试 1. 使用测试真机进 ...
- 如何使用vs进行代码比较
当我们在进行团队合作开始项目时,有时候不仅自己要写代码还需要修改bug,当我们修改代码以后,为了保持代码库中代码的整洁美观和一直性,有些误操作,比如多一个或多个空格,多一行,少一行,格式对齐等,这样的 ...
- ASP.NET 日志组件Smart.LogNet.DLL 引用即可写入日志及读取日志
借助LogNet组件,以后查看站点日志,再也不用去服务器下载了 日志组件:LogNet.DLL ,引用即可使用 写入方法: 1.LogNet.Log.WriteLog("日志标题" ...
- Kindeditor图片粘贴上传(chrome)
kindeditor4.1.x版本已支持图片批量上传,不过传统的选文件上传的方式依然效率低下. 很多时候,编辑人员可能需要将一个文档中图片上传到网上,那么,按照传统的上传方法,他必须先将图片另存为到本 ...
- 20145232 韩文浩 《Java程序设计》第6周学习总结
教材学习内容总结 Java是以串流(Stream)的方式来处理输入与输出. 串流是一种抽象观念,从键盘输入资料,将处理结果输入档案,以及读取档案的内容等动作皆视为串流的处理. 输入串流代表对象为jav ...
- 移动端 - APP测试要点
功能测试 1.运行 1)App安装完成后的试运行,可正常打开软件. 2)App打开测试,是否有加载状态进度提示. 3)App页面间的切换是否流畅,逻辑是否正确. 2.注册 1)同表单编辑页面 2)用户 ...
- Beta阶段第三篇Scrum冲刺博客-Day2
1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 张晨晨:熟悉代码 郭琪容:了解复习模块需要的部分知识 ...
- idea2018.2.4的安装激活与热部署插件JRebel的激活方法
去Idea的官网下载如上版本的Idea安装文件 并且在网上搜索下载如下破解工具 放置在相应的Idea安装目录下 然后在Idea中输入激活码 { "licenseId": " ...
- Delphi 的多线程使用已经很简单了
先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体): {自定义方法: 在窗体上绘制...} procedure MyMethod; var i: Integer; begin ...
- HTML超级链接详细讲解
超级链接是网站中使用比较频繁的HTML元素,因为网站的各种页面都是由超级链接串接而成,超级链接完成了页面之间的跳转.超级链接是浏览者和服务器的交互的主要手段,在后面的技术中会逐步深化学习. — 注意 ...