第八天 T3S04
*****************************************************************************
二维数组 类
*****************************************************************************
编一点,调试一点
程序运行main()
{
int [] scores=new int[];
打印菜单方法(scores);
}
打印菜单方法(int[] aryScore){
输出菜单
判断用户选择的菜单编号
switch
case 1:
录入成绩方法(aryScore)
case 2:
//计算总成绩方法
计算总成绩方法(aryScore)
}
录入成绩方法(int[] ary){
录入成绩
}
计算总成绩方法(int[] ary){
}
}
今日内容:
1、二维数组
2、类的相关知识
static this 类 及内存
数组:一维数组,数组元素就是普通值
二维数组,数组元素又是一个数组 较少
1、字面量声明:
int[][] aryNum={{12,13,14},{22,23,24},{32,33,34}};
把二维数组理解成 行列 的表格
3行,每行有3列
12 13 14
22 23 24
32 33 34
int[][] aryTest={{1,2},{10,23,34,15},{2},{34,33,35}};
1 2 第一行有2列
10 23 34 15 第2行有4列
2 第3行有1列
34 33 35 第4行有3列
访问二维数组的语法 数组名[行的索引][列的索引]
aryTest[1][2] 34
【注意】二维数组的长度:数组中有几个元素,也就是有几行。
外层控制二维数组的行数
for(int i=0; i< 二维数组.length; i++){
内层循环用于控制每行中的列数
for(int j=0; j<二维数组[i].length; j++){
二维数组[i][j]
}
}
Demo1.java
2、构造方式声明二维数组
必须指明有几行有几列, 各行的列数相同
int[][] aryTest=new int[4][5];
练习:
int[][] aryScore={
{90,89,78,98},
{96,80,70,90},
{91,56,98,90}
};
每一行代表一个学生,同一列代表一个学科
要求:输出各个学生的平均分
输出各个学科的平均分
Demo2.java
类的相关内容:
所有代码都必须写在class中,是以.java文件形式存储的
一个.java文件中可以有多个类
一个.java 文件中只能有一个public的类,且文件名一定要和public 修饰的类名一致
在Java中使用内存,会把内存划分为3个区域
1、静态区域: 当程序运行时,Java会把程序中所有使用static修饰的成员存放在静态区域中,程序关闭后,静态区域占有的内存才释放
2、堆区域:占有的内存比例较大
存放 new 出的内容
堆区域的内容不会自动清空,由Java垃圾回收机制/GC来清空
3、栈区域:占有的内存比例较小,存放局部变量(方法中或方法中语句块内部的变量)
栈空间的内容,在执行到}时,会自动清空
栈空间的读取速度快
Demo6.java
一、在静态方法中,如果调用非静态成员:
main()中调用非静态方法
1、创建方法所在类的对象: 类名 对象名=new 类名();
2、对象名.方法名();
二、在同一个类中,一个非静态方法调用另一个非静态方法,直接调用即可
或者使用this.方法名()来调用
三、不在同一个类中,一个方法如果要调用另一个方法
1、创建方法所在类的对象: 类名 对象名=new 类名();
2、对象名.方法名();
{ }代码块的作用范围
明日内容:
1、什么是类
2、什么对象
3、类和对象的关系
4、类里的成员
5、static new
6、封装
作业:
1、重做昨天作业
2、二维数组的理解和案例使用
3、作业:升级成绩管理系统
使用二维数组
1、总分最高
2、统计平均分最高的学科
4、随意声明一个二维数组,给二维数组排序