1.数组尾插法思想和计数器思想
package com.curriculum.a.Demo;
public class Demo7 {
public static void main(String[] args) {
/*
* 3. 尝试完成 找出指定元素在指定数组中所有下标位置 【难点】
* 案例数组:
* int[] arr = {1, 2, 3, 1, 2, 3, 1, 2, 3};
* 找出元素1 的所有下标位置
* 需要得到:
* 0, 3, 6
* 要求:
* a. 不允许在方法内打印展示
* b. 考虑多个数据情况
* c. 需要在方法外获取到下标数据信息
* d. 不允许使用数组作为返回值
* e. 一个方法完成
*
* */
// 先定义一个要操作的数组
int[] arr = {1, 2, 3, 1, 2, 3, 1, 2, 3};
/* 定义一个用来保存有效下标位置的数组,该数组容量要与
* 源数组容量一致,少了不够,多了浪费
*
*/
int[] index = new int [arr.length];
// 定义一个变量来接收lookFor的返回值
int num = lookFor(arr, index, 9);
/*
* 先判断是否找到了有效下标位置个数
*
* 如果找到1个及以上的个数,会以for循环展示所在index数组中
* 保存的下标位置
*
* 如果一个都没有没有找到,执行else中的代码
*
*/
if (num > 0) {
for (int i = 0; i < num; i++) {
System.out.print(index[i] + " ");
}
} else {
System.out.println("未找到...");
}
}
/**
* 找出指定数组中所有指定元素的下标位置的方法
* 该方法需要在调用之前定义一个与要操作的数组
* 容量一致,多了浪费,少了不够,
*
* @param arr需要处理的源数组
* @param index用来保存有效下标位置的数组
* @param num需要判断的元素
* @return 返回有效下标位置个数,如果没有,返回0
*/
public static int lookFor(int [] arr, int [] index, int num) {
// 首先定义有效下标位置的个数,如果没找到就是0个
int num2 = 0;
// 加入用户输入合法性判断;
if (num < 0 || num > arr.length) {
System.out.println("输入 不合法");
return 0;
}
// 以for循环遍历整个数组
for (int i = 0; i < index.length; i++) {
// 如果找到,将下标位置保存在index数组中
// 会在下标位置为0的元素开始保存
if (num == arr[i]) {
index[num2] = i;
// 有效下标位置个数会自增,然后index数组中下一次保存的地方会变成
// 下标为一的位置
num2++;
}
}
// 以有效下标个数为返回值返回到调用处,再做处理
return num2;
}
}
2.第一次面向对象思想
格式:
class 类名 {
属性描述;
行为描述;
}
类名:
要求符合大驼峰命名法,见名知意
类名这里可以认为是一个数据类型名,自定义数据类型
属性描述:
描述当前类有哪些属性
例如:
人类的身高体重,年龄姓名
行为描述:
描述当前类有哪些行为
例如:
人类的吃饭行为,睡觉行为,打游戏行为
/**
* 自定义Person类,人类
* @author Anonymous
*
*/
class Person {
/* 属性描述 【成员变量 Field】*/
// 姓名属性描述 这里暂时不需要初始化 只是描述当前类有哪些属性
// String是字符串类型,name成员变量
String name;
// 年龄描述
// int是数据类型 age成员变量
int age;
// 性别描述
// char是数据类型 gender成员变量
char gender;
/*
* 行为描述 【成员方法 Method】
* 一下方法目前不需要static 不要问
*/
// 吃饭行为描述
public void eat(String food) {
System.out.println("吃" + food);
}
// 睡醒行为描述
public void sleep() {
System.out.println("月亮不睡你不睡,你是秃头小宝贝");
}
public void game() {
System.out.println("WOT World Of Tank 坦克世界");
}
}
生活中面向对象和面向过程的例子
面向对象 直观,高效,并且是符合我们生活案例的一种方式
面向过程 较为繁琐的方式,但是面向对象的基础就是面向过程。
类和对象
类 统称的概念
对象 唯一的