后端 java 基础入门:数组的尾插思想,计数器思想和【 初识面向对象思想】

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 坦克世界");
	}
}

生活中面向对象和面向过程的例子
面向对象 直观,高效,并且是符合我们生活案例的一种方式
面向过程 较为繁琐的方式,但是面向对象的基础就是面向过程。

类和对象
类 统称的概念
对象 唯一的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值