二维数组与类的定义_DAY06
Posted AI菌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组与类的定义_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的主要内容,如果未能解决你的问题,请参考以下文章