zoukankan      html  css  js  c++  java
  • 二维数组与类的定义_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]);
            }
    
        }
    }
    View Code

     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();
            }
    
        }
    }
    View Code
  • 相关阅读:
    如何高效处理bug?
    如何获取字符串函数的实现?
    数据处理-csv,pandas
    CentOS 下安装SAC(Seismic Analysis Code)
    CentOS安装使用ffmpeg
    Tensorflow问题记录 --pydot Failed to import pydot. You must install pydot and graphviz for pydotprint to work
    Tensorflow学习记录 --TensorFlow高效读取数据tfrecord
    Committee to boost development of Chinese language teachers
    Consensus-based decentralized auctions for robust task allocation
    Chinese market critical to US firms: US-China Business Council
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7468202.html
Copyright © 2011-2022 走看看