Java基础六

1 二维数组

1.1 二维数组概述

  • 一个班级有许多学生,可以用数组来存储,但是一个学校有许多班级,这是时候也应该用数组来存储。
  • Java给我们提供了二维数组来供我们使用。
  • 简单的讲,二维数组其实就是一个元素为一维数组的数组。

1.2 二维数组的格式一

数据类型[][] 数组名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
  • 示例:int[][] arr = new int[3][2];
  • 说明:
    • 定义了一个二维数组arr。
    • 这个二维数组有3个一维数组,名称是arr[0]、arr[1]、arr[2]。
    • 每个一维数组有2个元素,可以通过arr[m-1][n-1]来获取。   
  • 示例:
package com.xuweiwei;

/**
 * 二维数组
 */
public class Array2Demo {
    public static void main(String[] args) {
        //定义一个二维数组
        int[][] arr = new int[3][2];
        //输出二维数组名称
        System.out.println(arr);
        //输出二维数组的第一个元素一维数组的名称
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //输出二维数组的元素
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);
        System.out.println(arr[1][0]);
        System.out.println(arr[1][1]);
        System.out.println(arr[2][0]);
        System.out.println(arr[2][1]);
    }
}

1.3 二维数组的格式二

数据类型[][] 数组名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
一维数组元素的个数可以动态的创建
  • 示例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[4];
arr[2] = new int[5];

1.4 二维数组的格式三

数据类型[][] 数组名 = new 数据类型[][]{{元素,……},{元素,……},……};
或
数据类型[][] 数组名 = {{元素,……},{元素,……},……};
  • 示例:
package com.xuweiwei;

public class Array2Demo2 {
    public static void main(String[] args) {
        //二维数组的静态初始化
        int[][] arr = {{1,2,3},{3,4}};
    }
}

1.5 二维数组的应用

  • 示例:
package com.xuweiwei;

/**
 * 二维数组的遍历
 */
public class Array2Test1 {
    public static void main(String[] args) {
        //定义一个二维数组
        int[][] arr = {{1,2,3},{4,5,6},{7,5,6}};
        //二维数组的遍历
        for (int i = 0; i < arr.length; i++) {
            for (int y = 0; y < arr[i].length; y++) {
                System.out.print(arr[i][y] +"\t");
            }
            System.out.println();
        }
    }
}
  • 示例:
package com.xuweiwei;

/**
 * 二维数组求和
 */
public class Array2Test2 {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5,6},{7,5,6}};
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int y = 0; y < arr[i].length; y++) {
                sum += arr[i][y];
            }
        }
        System.out.println("二维数组的和是:"+sum);

    }
} 

2 面向对象

2.1 面向对象思想的引入

  • 当有多个数组都需要遍历的时候,我们就可以将遍历的代码封装到方法中,需要遍历的时候,直接调用对应的方法就可以了,提高了代码的复用性。在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能代码封装到相应的方法中,这样继续封装会发现方法越来越多,这个时候就可以思考能不能将这些方法也进行封装呢?类是可以用来存放方法的,所以,我们就考虑使用类来封装多个方法,将来再做数组操作的时候,不用去找具体的方法,先找到这个类,然后使用这个类中的方法。
  • 上面的就是面向对象思想的编程方式。

2.2 面向过程的思想概述

  • 完成一个需求的步骤:首先要搞懂我们要做什么,然后再分析怎么做,最后我们再去用代码实现。一步一步的去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和写作,完成我们的需求。
  • 在上面的每一个具体步骤中我们都市参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
  • 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
  • 面向过程稿的代表语言:C语言。  

2.3 面向对象开发、设计和特征

  • 面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情。
  • 面向对象设计:其实就是在管理和维护对象之间的关系。
  • 面向对象特征:封装、继承、多态。  

2.4 类和对象的关系

  • 我们学习编程语言,就是为了模拟现实世界的食物,实现信息化。比如:去超市买东西的计费系统,去银行办业务的系统。
  • 我们如何表示一个现实事物?
    • 属性:就是该事物的描述信息。
    • 行为:就是该事物能够做什么  
  • 我们学习的Java语言最基本的单位是类,所以,我们应该把事物用一个类来体现。
  • 类:是一组相关属性和行为的集合。
  • 对象:是该类事物的具体体现。

2.5 类和对象的应用

  • 示例:
package com.xuweiwei;

/**
 * 学生类
 */
public class Student {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package com.xuweiwei;

public class StudentTest {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("许威威");
        student.setAge(26);
        System.out.println(student);

    }
}

原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/9193814.html

时间: 2024-10-15 19:56:53

Java基础六的相关文章

java基础(六)之继承初探

什么是继承? 一个类得到了另一个类当中的成员变量和成员方法.java只支持单继承.一个子类只允许继承一个父类,一个父类可以被多个子类继承. 比如下面的一个例子, 先创建一个Person类 class Person{ String name; int age; void eat(){ System.out.println("eating!"); } void introduce(){ System.out.println("Name is " + name +&quo

java基础六 [异常处理](阅读Head First Java记录)

在程序运行时,我们不能保证所有服务和方法都是正确的,如果发生问题报错会导致程序崩溃,所以需要对一些可以预见的错误进行异常处理,通过throw去抛出一个异常,然后用try..catch..将要执行的该方法括起来,通过它去捕获该方法可能throw的异常并进行处理 throw:抛出异常(只有方法抛出了异常,才能被try...catch...捕获) throw new FileIsTooSmallExcepton(); 捕获异常: try{ 要执行的方法 }catch(xxException e){ 接

重学JAVA基础(六):多线程的同步

1.synchronized关键字 /** * 同步关键字 * @author tomsnail * @date 2015年4月18日 下午12:12:39 */ public class SyncThreadTest { private static final byte[] lock = new byte[1]; /** * 同步方法 * @author tomsnail * @date 2015年4月18日 下午12:15:30 */ public synchronized void te

java基础知识文章汇总

将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序的深入解析 java基础(五) String性质深入解析 java基础(六) switch语句的深入解析 java基础(七) java四种访问权限 java基础(八) 深入解析常量池与装拆箱机制 java

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

Java并发基础(六) - 线程池

Java并发基础(六) - 线程池 1. 概述 这里讲一下Java并发编程的线程池的原理及其实现 2. 线程池的基本用法 2.1 线程池的处理流程图 该图来自<Java并发编程的艺术>: 从图中我们可以看出当一个新任务到线程池时,线程池的处理流程如下: 线程池首先判断线程池里面线程数是否达到核心线程数.如果不是则直接创建新线程作为核心线程来执行该任务(该线程作为核心线程不会由于任务的完成而销毁),否则进入下一流程. 判断阻塞队列是否已经满了.如果没满则将该任务放入阻塞队列中,等待核心线程处理,

java基础(六)

JAVA基础(六) 数组 数组是一组相关变量的集合. 数组是一组相关数据的集合,一组数据实际上就是一连串的的变量,数组按照使用可以分为一维数组.二维数组.多维数组. 数组能够进行一组数据的管理. 一维数组的定义:     类型 数组名[] = new 数组名[数组长度]; 一维数组的读取:    数组名[下标] = input.next(); 一个数组的最大索引号(下标)是它的元素个数(数组的长度)-1 获得数组长度:数组名.length 数组中每一个元素类型都是一样的 若要取出或写入数组中指定

Java基础复习笔记系列 六 容器

Java基础复习笔记系列之 容器 1. 2.

java基础进阶篇(六)_HashTable------【java源码栈】

一.概述 ??前面介绍了HashMap的结构和原理,这里介绍个类似HashMap的结构Hashtable. ??HashTable 官方解释是HashMap的轻量级实现, 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射. ??所以我们结合HashMap来介绍HashTable, 比较下两者的区别. ??HashTable 使用的很少, 它支持线程安全, 通过内部方法加上 synchronized 实现, 因此同步锁的密度太大了, 在实际情