Java基础第6天+二维数组(遍历、求和、逆序、索引)、面向对象思想(类、对象、Java程序的开发,设计和特征)

1:二维数组(理解)

(1)元素是一维数组的数组。

(2)格式:

A:数据类型[][] 数组名 = new 数据类型[m][n];

B:数据类型[][] 数组名 = new 数据类型[m][];

m表示这个二维数组有多少个一维数组

这一次没有直接给出一维数组的元素个数,可以动态的给出。

举例:

int[][] arr = new int[3][];

arr[0] = new int[2];

arr[1] = new int[3]

arr[2] = new int[1];

     

C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};

D:数据类型[][] 数组名 = {{...},{...},{...}};

举例:

int[][] arr =  {{1,2,3},{4,6},{6}};

     

注意:

A:以下格式也可以表示二维数组

a:数据类型 数组名[][] = new 数据类型[m][n];

b:数据类型[] 数组名[] = new 数据类型[m][n];

B:注意下面定义的区别

int x;

int y;

int x,y;

int[] x;

int[] y[];

int[] x,y[];

(3)案例(掌握):

A:二维数组的遍历

/*

需求:遍历二维数组

两个明确:

返回值类型:void

参数列表:int[][] arr

*/

public static void printArray2(int[][] arr) {

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

}

B:二维数组的求和

//定义一个求和变量sum,初始化值是0

int sum = 0;

//通过遍历就可以得到每一个二维数组的元素。

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

//把元素累加即可。

sum += arr[x][y];

}

}

//最后输出sum,就是结果。

System.out.println("一年的销售额为:"+sum+"万元");

C:杨辉三角形

/*

需求:打印杨辉三角形(行数可以键盘录入)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

分析:看这种图像的规律

A:任何一行的第一列和最后一列都是1

B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。

步骤:

A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n

  这个n的数据来自于键盘录入。

B:给这个二维数组任何一行的第一列和最后一列赋值为1

C:按照规律给其他元素赋值

从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。

D:遍历这个二维数组。

*/

import java.util.Scanner;

class Array2Test3 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//这个n的数据来自于键盘录入。

System.out.println("请输入一个数据:");

int n = sc.nextInt();

//定义二维数组

int[][] arr = new int[n][n];

//给这个二维数组任何一行的第一列和最后一列赋值为1

for(int x=0; x<arr.length; x++) {

arr[x][0] = 1; //任何一行第1

arr[x][x] = 1; //任何一行的最后1

}

//按照规律给其他元素赋值

//从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。

for(int x=2; x<arr.length; x++) {

//这里如果y<=x是有个小问题的,就是最后一列的问题

//所以这里要减去1

//并且y也应该从1开始,因为第一列也是有值了

for(int y=1; y<=x-1; y++) {

//每一个数据是它上一行的前一列和它上一行的本列之和。

arr[x][y] = arr[x-1][y-1] + arr[x-1][y];

}

}

//遍历这个二维数组。

/*

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+"\t");

}

System.out.println();

}

*/

//这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似

for(int x=0; x<arr.length; x++) {

for(int y=0; y<=x; y++) {

System.out.print(arr[x][y]+"\t");

}

System.out.println();

}

}

}

 

2:两个思考题(理解)

(1)Java中的参数传递问题

Java中只有值传递。

基本类型:形式参数的改变不影响实际参数

引用类型:形式参数的改变直接影响实际参数

(2)数据加密问题

综合的小案例。

import java.util.Scanner;

class JiaMiDemo2 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//请输入一个数据

System.out.println("请输入一个数据(小于8)");

int number = sc.nextInt();

//写功能实现把number进行加密

//调用

String result = jiaMi(number);

System.out.println("加密后的结果是:"+result);

}

/*

需求:写一个功能,把数据number实现加密。

两个明确:

返回值类型:String 做一个字符串的拼接。

参数列表:int number

*/

public static String jiaMi(int number) {

//定义数组

int[] arr = new int[8];

//定义索引

int index = 0;

//number中的数据想办法放到数组中

while(number > 0) {

arr[index] = number%10;

index++;

number /= 10;

}

//把每个数据加5,然后对10取得余数

for(int x=0; x<index; x++) {

arr[x] += 5;

arr[x] %= 10;

}

//把第一位和最后一位交换

int temp = arr[0];

arr[0] = arr[index-1];

arr[index-1] = temp;

//把数组的元素拼接成一个字符串返回

//定义一个空内容字符串

String s = "";

for(int x=0; x<index; x++) {

s += arr[x];

}

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:特征

a:封装

b:继承

c:多态

猜你喜欢

转载自www.cnblogs.com/zyk2019/p/11332676.html
今日推荐