黑马程序员——java基础(函数与数组)

------- android培训java培训、期待与您交流! ----------

第一节:函数
一、函数的简述:
    1 函数的定义:就是在类中的具有特定功能的一段独立小程序叫做函数,也称方法。 
2 函数的格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
对上面的语法格式具体的说明:
(1) 修饰符 方法的修饰符比较多,是对访问权限进行限定的。
(2) 返回值类型 用于限定方法返回值的数据类型的。
(3) 方法名 给方法起一个名字,方便调用此函数。
(4) 参数类型 用于限定调用方法时传入参数的数据类型。
(5) 参数名 是一个变量,用于接收方法时传入的数据。
(6) return关键字 用于结束方法以及返回方法指定类型的值。
(7) 返回值 该值会返回给调用者。
3 函数的注意事项:
 (1) 函数不被调用,就不会执行。
 (2) 假如函数有明确了返回值类型,就必须有return语句返回,要是没有明确返回值类型,返回值类型用void关键字,return语句在最后一行可以省略不写。
 (3) 函数之间是平级关系,函数内可以调用函数,不能再定义函数。
 (4) 要明确返回值类型和参数列表
4 而如何的去定义一个函数呢? 
 (1) 在定义一个函数时要明确该功能的结果是啥。
 (2) 在该功能过程中,是否有未知内容参与了运算。
二、方法的重载
    1 重载的定义:在同一个类中,方法名相同,参数列表不同。与返回值无关。
2 重载的好处:方便与代码的阅读。
第二节:数组
一、数组的简述
    1 数组的定义: 简单的理解就是存储同一种数据类型的多个元素的容器。
2 数组的特点:数组中的元素都进行了编号,从0开始。
3 数组格式:
(1) 数据类型[] 数组名 = new 元素类型 [元素个数或数组长度];
  举例:int[] aray=new int[6];
(2) 数据类型[] 数组名= new 元素类型 []{元素1,元素2,…};
举例:int[] array=new int[]{1,2,4};
(3)数据类型[] 数组名={元素1,元素2,...};
   举例:int[] array={1,2,3};
二、java中内存的分配
1 java内存中的分配
(1) 栈----->存储局部变量
(2) 堆----->存储new出来的
(3) 方法区---->面向对象中会讲到
(4) 本地方法区---->系统相关
(5) 寄存器---->CPU的使用
   2 栈和堆的区别
 (1) 栈 用于存储局部变量,执行完,自己所占的空间会自动释放
 (2) 堆 数组和对象通过new创建的实例放在堆内存中,都有一个地址值,每一个变量都会有默认的值,数据使用完,会被垃圾回收器回收。
三、二维数组
    1 二维数组的定义:就是数组中的数组。
2 格式:
(1) 一、int[][]array=new int[a][b];
  此格式是;有a个一维数组,每个数组中的元素为b个。
(2)二、int[][]array=new int[a][];
  此格式是:有a个一维数组,每个数组都默认为null。
(3)三、int[][]array={{1,2,3},{4,5}};
  此格式是: 都能够看到每个数组中的具体的元素。
四、数组中常见的操作
1  获取元素中的最大值与最小值

//获取数组中的最大值。
class ArrayDemo
{
	public static void main(String[] args)
	{
		int[] arr = {23,4,5,9,0,1};//定义一个数组。
		int max=getMax(arr);//调取元素最大值的方法。
		System.out.println("max="+max);//打印出max。
	}
	public static int getMax(int[] arr)//获取数组中最大的数,1 他是有结果的,所以返回值类型为int,2 有未知内容。
	{
		int max=arr[0];//定义变量max用于记住最大数,首先假设第一个元素为最大值。
		for (int x=1;x<arr.length ;x++ )//通过一个for循环遍历数组中的元素。
		{
			if (arr[x]>max)//比较arr[x]与max的大小。
		
			{
				max=arr[x];//如果arr[x]的值最大,就把arr[x]的值赋值给变量max.
			}
		}
		return max;//把最大的那个值返回。
	}
}
//获取数组中最小值。

class ArrayDemo1
{	public static void main(String[] args)
	{
		int[] arr={2,5,8,3,0,1};//定义一个数组。
		int min =getMin(arr);//调取元素最小值的方法
		System.out.println("min="+min);//打印出最小值。
	}

	public static int getMin(int[] arr)//定义一个功能,1 有结果 有返回值 2 有未知内容。
	{
		int min =arr[0];//把第一个元素作为最小值赋值给变量min。
		for (int x=1;x<arr.length ;x++ )//定义一个for循环进行对数组遍历。
		{
			if (min>arr[x])//比较min与arr[x]的大小。
			{
				min=arr[x];//把小的值arr[x]的值赋值给min。
			}
		}
			return min ;//把最小值返回。
	}
	
}
2     折半查找法

//折半查找法
class ArrayDemo2
{
	public static void main(String[] args)
	{
		int[] arr={5,7,12,45,78,90};//定义一个数组
		int get=getSort(arr,79);//函数的调用
		System.out.println("get="+get);//打印要找的数据
		
	}
	public static int getSort(int[] arr,int key)
	{
		int min,mid,max;//定义三个变量
		min=0;
		max=arr.length-1;
		mid=(min+max)/2;
		while (arr[mid]!= key)//判断当不等于要找的数时
		{
			if (key>arr[mid])//如果要找的数大于中间数
	
				min =mid+1;
			else if (key<arr[mid])//如果要找的数小于中间数时
			
				max=mid-1;
				if (min>max)
				
				return -1;//要是要找的数不存在的话就返回-1
				mid=(min+max)/2;
		}
		return mid;//返回要找的元素的角标

	}
}
3 两种的排序方法

//选择排序
class ArrayDemo3
{
	public static void main(String[] args)
	{
		int [] arr={5,7,2,8,20,1};//定义一个数组
			selectSort(arr);//调用一个方法进行对数组进行排序
			 printArray	(arr);//让数组以一定格式打印出来

	}
	public static void selectSort(int[] arr)
	{
		for (int x=0;x<arr.length-1 ;x++ )//for循环进行遍历数组中的元素
		{
			for (int y=x+1;y<arr.length ;y++ )//for循环遍历遍历的元素与外循环的一个元素进行比较
			{
				if (arr[x]>arr[y])//如果外循环的元素大于内循环的元素
				{
					int temp=arr[x];//采用第三方变量进行对两个的元素进行位置变换
					arr[x]=arr[y];
					arr[y]=temp;
				}
			}
			

		}
	}

public static void printArray(int[] arr)
	{
		System.out.print("[");
		for (int x= 0;x<arr.length ;x++ )//对数组中的元素进行遍历
		{
			if (x!=arr.length-1)
			{
				System.out.print(arr[x]+" ");//采用的是字符串的拼接的方式
			}	
			else
			{
				System.out.print(arr[x]+"]");




			}

		}
	}
}
//二 冒泡排序
class  ArrayDemo4
{
	public static void main(String[] arga)
	{
		int [] arr={3,9,76,2,0};//定义一个数组
		selectGet(arr);//调用函数进行对数组内的元素进行排序
		printArray(arr);//以一定的格式打印出来
	}
	public static void selectGet(int[] arr)
	{
			for (int x=0;x<arr.length-1 ;x++ )//for循环的作用是就是所有元素进行相比较的次数
			{
				for (int y=0;y<arr.length-x-1 ;y++ )//for循环进行对相邻的元素进行比较
				{
					if (arr[y]>arr[y+1])//判断如果前一个元素大于了后一个元素
					{
						int temp=arr[y];//采用第三方的变量进行对数组中的元素进行位置的交换
						arr[y]=arr[y+1];
						arr[y+1]=temp;
					}
				}
			}
	}
public static void printArray(int[] arr)
	{
		System.out.print("[");
		for (int x= 0;x<arr.length ;x++ )//for循环对元素进行遍历
		{
			if (x!=arr.length-1)
			{
				System.out.print(arr[x]+" ");//采用字符串的拼接的方式
			}	
			else
			{
				System.out.print(arr[x]+"]");
			}

		}

	}

}


------- android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值