JAVA中的方法 /数组基本详记

一 方法
二 数组

一 方法:

	将一个独立的代码块{}抽取出来并为当前这个起名字!
	作用:提高代码的复用性

1.方法的概念:

	使用{}将代码包裹起来,并给这个代码起一个名字:方法名---->以后直接使用方法名调用.  {}代码块
   如何定义方法?

两种:

	有返回值类型的方法的定义
	没有返回值类型的方法定义

a.第一种:有返回值类型的方法的定义

	固定格式:
	public static 返回值类型 方法名(形式参数类型1 参数名称1,形式参数类型2 参数名称2...){
			业务需求...
			return 结果;
	}
	格式的详细介绍:
	 权限修饰符:public(公共的,访问权限足够大) static(静态)
	 返回值类型:数据类型(目前基本数据类型:四类八种: )
			举例:求两个数据之后  结果:int类型

a… 方法名:遵循标识符的规则(见名知意)

	单个单词:全部小写
	多个单独:第一个单词小写,从第二个单词开始,每个单词首字母大写,其余小写
	小驼峰命名法!
	形式参数类型:数据类型(目前基本数据类型:四类八种: )
	参数名称:变量名称
	return: 这个方法调用完毕了,带回具体的结果!
	有返回值类型的方法调用:
	1)单独调用(没有意义)
	2)输出调用:不推荐
	3)赋值调用:推荐

a…定义有具体返回值类型的方法的定义的注意事项!

	1)方法和方法平级关系,不能嵌套使用!
					特殊:方法递归(IO流后面讲):方法调用方法本身的一种现象!
	2)定义方法注意两个明确
		明确返回值类型
		明确参数类型以及参数个数
	3)定义方法的时候:
			参数类型必须携带的!
		public static int add(x,y){}  错误的:
		因为Java是一种强类型语言:语法非常严谨的,以及格式是有要求的!
	4)定义方法的时候,()后面不要出现; (目前来说没意义的方法!) 
	5)调用方法的时候,实际参数不需要携带数据类型

b.第二种:没有具体返回值类型的方法 定义以及调用?

方法定义:
	public static 返回值类型  方法名(形式参数列表(包含数据类型+变量名)...){
		要么 return 结果;
		要么没有具体结果;
	}

Java的语法:

	方法本身的定义:需要返回值类型,但是如果需求本身就没有具体返回结果,如何定义方法呢?
语法要求:如果没有具体返回值结果,使用void 来代替 返回值类型(位置)
注意:Java中不存在void类型(替代词)
没有具体返回值类型的方法的定义格式:
public static void 方法名(形式参数类型1 变量名1,形式参数类型2 变量名2...){
	直接输出语句或者其他业务操作;
}
没有具体返回值类型的方法调用
	单独调用
	赋值调用
	输出调用

b…法的定义要遵循标识符的规则:见名知意!

目前这个方法的功能都是求和,如果一些方法的功能相同的,那么定义方法的时候:见名知意!
	方法名可以不可以相同呢?
	可以!
技术:方法重载 (overLoad)
		方法名相同,参数列表不同,与返回值无关!		
					参数列表不同:
						1)数据类型一样的,参数个数不同
						2)参数个数一样,类型不同!
						参数个数不一样,参数类型不同

二 数组: 引用数据类型

数组:是可以存储元素的一种容器!
前提:元素的数据类型必须一致的!	
如何定义呢?
		格式:
				数据类型[] 数组名称 ;
				数据类型 数组名称[] ;
		举例:
				int[] arr; (习惯于第一种) 定义了一个int类型数组arr变量
				int arr[] ;定义了一个int类型的arr数组

a.数组的初始化:

		1)动态初始化:指定了数组长度,系统默认给定数组的元素值!
		2)静态初始化:指定了具体的元素的内容,系统默认指定数组的长度!	
1..动态初始化:
	数据类型[]  数组名称 =  new 数据类型[数组长度] ;
	数据类型 数组名称[] = new 数据类型[数组长度] ;
	举例:
		int[] arr = new int[3] ;  //创建了一个数组对象,分配3个长度
		= 左边  int :表示当前数组是int类型;限定了元素的类型int;
		System.out.println(arr);  DOS命令输出[I@6d06d69c
		[ : 表示一维数组   I :表示int 类型    @  :  表示地址值标记    6d06d69c  十六进制数据
	 []  :是一个一维数组
	 arr:变量名称(数组对象名称)
	 =右边   new :表示在内存中创建一个对象
	 int :数据类型int类型;
	 []  : 一维数组
	 3  :在内存中指定3个长度(意味着:有3个元素)
		int arr[] = new int[2] ;//.创建了一个数组对象,分配2个长度
数组中元素的的访问方式:
			数组名称[角标]来访问
			角标(下标/索引):都是从0开始记录元素的!
2..静态初始化 :指定数组的元素内容,系统给它默认长度
格式:
	标准格式:
		数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ;
		数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3....} ;
	举例:
			int[] arr = new int[]{11,22,33} ;
	简化格式:
			数据类型[] 数组名称  ={元素1,元素2,元素3....} ;
			数据类型 数组名称[]  ={元素1,元素2,元素3....} ;
	举例:
			定义数组的时候:不能动,静集合(只能其中一种初始化方式!)
			int[] arr = new int[3]{1,2,3} ; //错误的!
		简化格式举例:
		int[] arr = {1,2,3} ;

b.异常: 后期Throwable:异常的总称

	程序出问题了!
严重问题:
		error : 内存异常了 (通过一些第三方工具避免了!)
		举例:  一些软件通过一些特殊的操作:造成软件崩溃了!
异常:
		Exception: 能够通过本身代码来解决问题
			编译时期异常:只要不是运行时期的异常都属于编译时期(不解决,编译通过不了)
			RuntimeExcetion:运行时期异常
						在执行过程中,由于代码结构不严谨,导致的问题!
	第一个异常:数组角标越界!
	java.lang.ArrayIndexOutOfBoundsException:
	出现的原因:访问不存在的角标!就出异常了
	解决方案:改动角标值即可!
	第二个异常:空指针异常:
	java.lang.NullPointerException:
	出现的原因:
		某个对象都为null,还需要使用对象访问内容或者调用其他功能!
	解决方案:
		只需要对某个对象做一个非空判断!(逻辑判断)

c.数组的第二个应用:

最值问题;
		最大值/最小值
int[] arr = {13,87,65,24,57} ;  
   最值问题
分析:假设思想
	1)将数组中第一个元素arr[0]看为最大值 
	2)从角标1开始遍历其他元素
		2.1)分别将当前遍历的元素依次和最大值进行比较
			如果当前元素大于最大值
		将当前元素内容赋值max变量

d.数组的应用:

		数组的元素逆序
int[] arr = {13,87,65,24,57} ;
中心思想:
	将13  arr[0]--57 arr[arr.length-1]互换
	将87 arr[1]---24 arr[arr.length-1-1]互换...
	保证  数组的长度/2

e.数组元素查表法

		数组名称[index:角标]访问元素
假设:
	字符串数组:  数据类型[] 数组名称 = new 数据类型[]{元素1,....} ;
	String[] strs = {"星期一","星期二",
					"星期三","星期四","星期五","星期六","星期天"} ;

f.冒泡排序思想

	两两比较,将较大的值往后放;第一次比较完毕,最大值就出现在最大索引处!
	依次这样比较:
		规律:
			第一次:有0个不比
			第二次:有1个不比
			...
			...
			比较的次数:数组长度-1次

三. 二维数组(了解):

	   二位数组就是一个包含多个一维数组的数组!
	举例:
			Java基础班(将一个班级看一个数组)
			JavaEE2008  JavaEE2007  JavaEE2006
	二维数数组的定义格式:
	数据类型[] 数组名称[]  ;
	数据类型[][] 数组名称 ; (推荐)
	二维数组的初始化:
		动态初始化: 指定数组长度,系统给数组中元素分配默认值
a.动态初始化格式1
		数据类型[][] 数组名称  = new 数据类型[m][n] ;
		m:表示当前二维数组中的一维数组的个数
		n:表示每一个一维数组的长度
		int[][] arr = new int[3][2] ;
		int[] arr[] = new int[3][2] ;
b.维数组格式2:
     数据类型[][] 数组名称 = new 数据类型[m][] ;
    数据类型[] 数组名称[] = new 数据类型[m][] ;
举例
	int[] arr[] = new int[2][] ;
	//上面:当前二维arr中有2个一维数组,但是不知道2个一维数组的长度
	//所以,需要动态给定一维数组的长度
注意:
	int x,y[] ; //x是普通遍历,y是一维数组
	int x[][],y[] ;//x是二维数组,y是一个维数组!
c.二维数组格式3
  标准格式:
数据类型[][]  数组名称  =  new 数据类型[][]{{元素1,元素2,...},{元素1,元素2...},{元素1,元素2...}};
简化格式:
   数据类型[][] 数组名称 = {{元素1,元素2,...},{元素1,元素2...},{元素1,元素2...}}
	//错误的书写格式:
	//要么动态初始化/要么静态初始化
	int[][] arr = new int[3][2]{{1,2,3},{4,5,6}}
二维数组的应用:
		如何遍历呢?
二维数组是由多个一维数组组成	
		需要将每一个一维数组的元素获取到,一一输出
	输出格式优雅:
	{{1,2,3},{4,5,6},{7,8,9}}

在这里插入图片描述
二维数组的应用:杨辉三角形

输出:
     1
	1 1
	1 2 1
	1 3 3 1 
	1 4 6 4 1 
	1 5 10 10 5 1
分析:
1)行数和列数:都是6 ----->数据可以采用键盘录入!	
			二维数组的定义格式:
				格式1:int[][] arr = new int[num][num] ;
2)任何一行的第一列和最后一列都是1
3)从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和
键盘录入一个数据:使用二维数组初始化
		外层循环:行数
		内层循环:列数
		int[][] arr = new int[n][n] ;
给二维数组中的数据赋值(给任何的一列和最后一列赋值) .将定义二维数组遍历
	for(int x =0 ;  x < arr.length ; x ++){
		任何一行的第一列和最后一列都是1
	}
	再次遍历二维数组
		从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和要符合99乘法表的格式

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask-PyMongo是一个用于在Flask应用程序操作MongoDB数据库的扩展。它提供了方便的方法和函数,使得在Flask应用程序使用MongoDB变得更加简单。引用提到的`pymongo.MongoClient`方法可以用于创建与MongoDB数据库的连接。在Flask,可以使用以下代码创建一个MongoDB连接: ```python from flask import Flask from flask_pymongo import PyMongo app = Flask(__name__) app.config['MONGO_URI'] = 'mongodb://localhost:27017/mydb' # MongoDB数据库的URI mongo = PyMongo(app) ``` 其,`MONGO_URI`是MongoDB数据库的连接URI,`mydb`是数据库名称。通过以上代码,我们就可以在Flask应用程序使用`mongo`对象来访问和操作MongoDB数据库。 例如,要向集合插入一个文档,可以使用以下代码: ```python data = {"name": "John", "age": 25} result = mongo.db.collection.insert_one(data) ``` 其,`collection`是集合的名称,`insert_one`方法用于插入一个文档。 要从集合查询文档,可以使用以下代码: ```python document = mongo.db.collection.find_one({"name": "John"}) ``` 这将返回满足条件`{"name": "John"}`的第一个文档。 如果要更新集合的文档,可以使用以下代码: ```python filter = {"name": "John"} update = {"$set": {"age": 30}} result = mongo.db.collection.update_one(filter, update) ``` 这将更新满足条件`{"name": "John"}`的文档,将其`age`字段的值更新为30。 要删除集合的文档,可以使用以下代码: ```python filter = {"name": "John"} result = mongo.db.collection.delete_one(filter) ``` 这将删除满足条件`{"name": "John"}`的文档。 总之,Flask-PyMongo是一个方便的扩展,可以帮助你在Flask应用程序轻松地与MongoDB数据库进行交互。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python + Flask 操作MongoDB数据库,以及使用的常见问题](https://blog.csdn.net/qq_43594278/article/details/115555240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Pymongo操作笔-](https://blog.csdn.net/qq_45020818/article/details/109850245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值