1.结合练习
/*随机生成10个整数(1-100的范围)保存到数组,
并倒序打印以及求平均值、求最大值和最大值的下标,并查找里面是否有8
*/
public class ArrayHomework02 {
public static void main(String[] args) {
int arr[] = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 100) + 1;
}
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr[i] + " ");
}
int average = 0;
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println("sum = " + sum);
average = sum / arr.length;
int max = arr[0];
int index = -1;
int num8 = 0;
for (int i = 0; i < arr.length; i++) {
if (max <= arr[i]) {
max = arr[i];
index = i;
}
if (arr[i] == 8) {
num8 = arr[i];
System.out.println("num8 = " + num8);
}
}
System.out.println("index = " + index + " max = " + max);
}
}
冒泡排序法练习
//写出冒泡排序法
public class ArrayHomework03 {
public static void main(String[] args) {
int arr[] = {123, 12, 435, 678, 234};
int temp = 0;
for (int i = 0; i < arr.length - 1; i++) {//注意只需要比较长度 - 1的次数
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println("arr = " + arr[i]);
}
}
}
编程技巧:善用index = -1来判断数组的相关变化是否发生
2.引出类与对象
public class Object01 {
public static void main(String[] args) {
/*
两只猫猫:一只名字叫小白,今年3岁,白色。
还有一只叫小花,今年十岁,花色。请编写一个程序,当用户输入小猫的名字时,
就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,
则显示没有这只猫猫
*/
//单独变量来解决 ---> 不利于数据的管理(你把一只猫的信息拆解)
//第一只小猫的信息
String catName1 = "小白";
int catAge1 = 3;
String catColor1 = "白色";
//第二只猫的信息
String catName2 = "小花";
int cat2Age = 10;
Sting catColor2 = "花色";
//数组 ---> (1)数据类型体现不出来(2)只能通过[下标]获取信息,造成变量名字和内容
// 的对应关系不明确(3)不能体现猫的行为
String cat1[] = {"小白", "3", "白色"};
String cat2[] = {"小花", "100", "花色"};
}
}
之前学习过的方法缺点分析
- 不利于数据管理 效率低
- Java设计者映入类与对象(OOP),根本原因就是现有技术,不能完美地解决新的需求