• 二维数组和面向对象基础


    1:二维数组(理解)
    (1)元素是一维数组的数组。
    (2)格式:

    1. 数据类型[][] 数组名 = new 数据类型[m][n];
    2. 数据类型[][] 数组名 = new 数据类型[m][];
    3. 数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
    4. 数据类型[][] 数组名 = {{...},{...},{...}};

    (3)案例(掌握):

    1. 二维数组的遍历
    2. 二维数组的求和
    3. 杨辉三角形

    杨辉三角:

    public class Array2Demo {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int[][] arr = new int[n][n];
            /*
             * 思路:
             * A:任何一行的第一列和最后一列都是1;
             * B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列和;
             * C:首先定义一个二维数组,行数如果是n,列数也为n;
             * D:给这个二维数组任何一行的第一列和最后一列赋值为1;
             * E:按照规律给其他元素赋值,从第三行开始,每一个数据是它上一行的前一列 
             *   和它上一行的本列之和。
             * F:遍历这个二维数组。
             */
            for(int i=0;i<arr.length;i++){
                arr[i][0] = 1;
                arr[i][i] = 1;
            }
            for(int i=2;i<arr.length;i++){
                for(int j=1;j<i;j++){
                    arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
                }
            }
            for(int i=0;i<arr.length;i++){
                for(int j=0;j<=i;j++){
                    System.out.print(arr[i][j]+"	");
                }
                System.out.println();
            }
        }
    }

    2:两个思考题(理解)
    (1)Java中的参数传递问题
    Java中只有值传递。

    基本类型:形式参数的改变不影响实际参数
    引用类型:形式参数的改变直接影响实际参数
    (2)数据加密问题
    综合的小案例。

    /*
    某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
    在传递过程中需要加密,加密规则如下:
        首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
        最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
        然后,把加密后的结果在控制台打印出来。 
        
    题目要求:
        A:数据是小于8位的整数
            定义一个int类型的数据
            int number = 123456;
        B:加密规则
            a:首先将数据倒序
                结果 654321
            b:然后将每位数字都加上5,再用和除以10的余数代替该数字
                结果 109876
            c:最后将第一位和最后一位数字交换
                结果 609871
        C:把加密后的结果输出在控制台
    */
    public class JMDemo {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数据:");
            int number = sc.nextInt();
            String result = JM(number);
            System.out.println("加密后:"+result);
                
        }
        public static String JM(int number){
            int[] arr = new int[8];
            int index = 0;
            while(number > 0){
                arr[index] = number%10;
                index++;
                number/=10;
            }
            for(int i=0;i<index;i++){
                arr[i] = (arr[i]+5)%10;
            }
            int temp;
            temp = arr[0];
             arr[0] = arr[index-1];
            arr[index-1] = temp;
            
            String s = "";
            for(int i=0;i<index;i++){
                s += arr[i];
            }
            return s;
        }
    }

    3:面向对象(掌握)
    (1)面向对象
    面向对象是基于面向过程的编程思想
    (2)面向对象的思想特点

    • A:是一种更符合我们思考习惯的思想
    • B:把复杂的事情简单化
    • C:让我们从执行者变成了指挥者

    举例:
    买电脑
    洗衣服
    做饭
    ...
    万事万物皆对象
    (3)把大象装进冰箱(理解)

    • A:面向过程实现
    • B:面向对象实现


    注意:如何让我们的操作更符合面向对象思想呢?

    • A:有哪些类
    • B:每个类有哪些成员
    • C:类与类的关系

    (4)类与对象
    A:现实世界的事物
    属性 事物的基本描述
    行为 事物的功能
    B:Java语言中最基本的单位是类。所以,我们要用类来体现事物
    C:类
    成员变量 事物属性
    成员方法 事物行为
    D:类:是一组相关的属性和行为的集合。是一个抽象的概念。
    对象:是该类事物的具体存在,是一个具体的实例。(对象)

    举例:
    学生:类
    班长:对象
    (5)类的定义及使用
    A:类的定义
    成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
    成员方法 定义格式和以前一样,就是去掉了static。
    B:使用类的内容
    a:创建对象? 格式
    类名 对象名 = new 类名();
    b:如何使用成员变量和成员方法呢
    对象名.成员变量
    对象名.成员方法()
    (6)案例:
    A:学生类的定义和使用
    B:手机类的定义和使用
    (7)内存图
    A:一个对象的内存图

    B:二个对象的内存图

    C:三个对象的内存图


    (8)Java程序的开发,设计和特征

    • A:开发:就是不断的创建对象,通过对象调用功能
    • B:设计:就是管理和维护对象间的关系
    • C:特征
    1. 封装
    2. 继承
    3. 多态
  • 相关阅读:
    从零开始搭建系统1.2——Nginx安装及配置
    从零开始搭建系统1.1——CentOs安装
    从零开始搭框架——系统架构
    从零开始搭建系统——前言
    PHP语法入门以及变量
    用PHP写出计算器
    PHP常量以及基本数据类型
    PHP入门了解
    php中搭建Web服务器和服务器配置
    JS中for,for...in,for...of以及foreach循环的用法
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/8999554.html
Copyright © 2020-2023  润新知