数组和对象
1:二维数组定义格式?
看懂针对每种格式的内存图解?
动态初始化
A:数据类型[][] 数组名 = new 数据类型[m][n];
B:数据类型[][] 数组名 = new 数据类型[m][];
静态初始化
C:数据类型[][] 数组名 = new 数据类型[][]{{…},{…},{…}};
D:数据类型[][] 数组名 = {{…},{…},{…}};
内存图解
2:案例
A:二维数组遍历
public class Array {
public static void main(String[] args) {
int[][] arr = {{1, 2, 3}, {4, 5, 6}};
printArray(arr);
}
// 遍历二维数组
public static void printArray(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:公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
public class Sum {
public static void main(String[] args) {
int [][] arr={{22,66,44}, {77,33,88}, {25,45,65}, {11,66,99}};
printArray(arr);
}
// 遍历二维数组
public static void printArray(int[][]arr){
int sum = 0;
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++) {
sum += arr[x][y];
}
}
System.out.println(sum);
}
}
C:打印杨辉三角形(行数可以键盘录入)
import java.util.Scanner;
public class YangHui {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 通过键盘输入行数
System.out.println("请输入行数:");
int a = sc.nextInt();
// 定义一个数组,行列数都一样
int[][]arr=new int[a][a];
for (int i=0;i<arr.length;i++){
arr[i][i]=1;//将三角形的每一行的最后一个元素置成1
arr[i][0]=1;//将每一行的第一个数,置成1
}
for (int i =2; i < arr.length; i++) {
for (int j =1; j <= i-1; 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]+"\t");
}
System.out.println();
}
}
}
3:两个思考题
A:参数传递问题
B:数据加密问题
Java中只有值传递
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
数据加密
4:回顾前5天知识,准备考试。
准备纸张和笔。
如果要用多张纸,要求每张纸张都写上自己的名字。
字迹要清晰明了,否则直接扣分1分。
5:面向对象思想概述和举例
当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的方法,来实现
一台电脑,一辆汽车,一部手机等
6:类与对象分别是什么,举例说明
- 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。
- 类是具有相同属性和方法(行为)的对象的集合
public class People {
//属性(成员变量) 有什么
double height; //身高
int age; //年龄
int sex; //性别,0为男性,非0为女性
//方法 干什么
void cry(){
System.out.println("我在哭!");
}
void laugh(){
System.out.println("我在笑!");
}
void printBaseMes(){
System.out.println("我的身高是"+height+"cm");
System.out.println("我的年龄是"+age+"岁");
if(this.sex==0)
System.out.println("我是男性!");
else
System.out.println("我是女性!");
}
}
比如对 People这个类,我想实例化LiLei这个人。LiLei 的数据类型便是 People 这个类型
(类可以看成使我们自己定义的数据类型)
public class NewObject {
public static void main(String[] args) {
People LiLei = new People(); //创建一个People对象LiLei
LiLei.height =170;
LiLei.age = 20;
LiLei.sex = 1;
LiLei.printBaseMes();
}
}
7:如何定义一个类,类的组成
成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法 定义格式和以前一样,就是去掉了static。
类名 对象名 = new 类名();
8:如何使用一个类的成员
对象名.成员变量
对象名.成员方法()
9:模仿学生类和手机类写一个人类,并测试。
public class People {
//属性(成员变量) 有什么
double height; //身高
int age; //年龄
int sex; //性别,0为男性,非0为女性
//方法 干什么
void cry(){
System.out.println("我在哭!");
}
void laugh(){
System.out.println("我在笑!");
}
void printBaseMes(){
System.out.println("我的身高是"+height+"cm");
System.out.println("我的年龄是"+age+"岁");
if(this.sex==0)
System.out.println("我是男性!");
else
System.out.println("我是女性!");
}
}
public class NewObject {
public static void main(String[] args) {
People LiLei = new People(); //创建一个People对象LiLei
LiLei.height =170;
LiLei.age = 20;
LiLei.sex = 1;
LiLei.printBaseMes();
}
}
javac NewObject.java People.java
java NewObject