黑马程序员————java基础--------方法与一维数组
来源:互联网 发布:西澳大学知乎 编辑:程序博客网 时间:2024/05/29 04:48
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、方法:
也就是c语言中的函数。指能够完成特定功能的代码块。但是在java面向对象语言中,方法只是类中的一个成员,而类才是面向对象语言的基本单位,就像组成社会的最基本单位是家庭一样,类就像是家庭,而方法在java中只是家庭中的一个成员。但是在面向结构语言当中,函数则是基本的单位。
方法的格式为:修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
方法体;
return 返回值;
}
像我们第一天在HelloWorld程序中的主方法,就是方法的一个典型代表。public static void main(String [] args){}这里面的public就是权限修饰符,static是静态修饰符,表示java虚拟机不用创建对象,就可以用类名直接调用该方法,void是返回值类型,表示没有的意思,因此return可以省略不写。main是该方法的名字,String [] args则是参数列表。因为在Scanner之前,键盘录入,都是通过String [] args来完成的。
1、在有主函数的类中,建立方法,必须是静态的。因为主函数是静态的,为了能够让静态方法访问静态方法,因此其他函数也必须是静态的。但是在别的类中,则没有这样的要求。比如
class Demo{public static void main(String [] args){String s="我实在是太喜欢黑马了";show(s);}public static void show(String s){System.out.println(s);}}
这是最典型的在主函数中调用方法了。如果show()中没有static的话,编译期间就会报错。方法调用一般有三种:上面的例子就是其中的一种:单独调用。因为show()是个没有返回值的方法。所以要采用这种调用。再比如:
class Demo{public static void main(String [] args){int d=sum(2,3);//赋值调用System.out.println(d);System.out.println(sum(2,3));//输出调用}public static int sum(int a,int b){int c=a+b;return c;}}
如果方法时有返回值的,那么单独调用就不适合了,而需要赋值调用,或者输出调用。
方法的注意事项:
A:方法不调用不执行
B:方法之间是平级关系,不能嵌套定义
C:方法定义的时候,参数是用,隔开的
D:方法在调用的时候,不用在传递数据类型
E:如果方法有明确的返回值类型,就必须有return语句返回。
方法重载:方法重载是指在同一个类中,方法名相同,参数列表不同。与返回值无关。参数列表是指参数的个数,以及参数对应的数据类型不同。
class Demo{public static void main(String [] args){String s="我要考黑马";int a=5;//方法重载show(a,s);int b=5;//方法重载show(a,b);}public static void show( int n,String s){for(int x=0;x<5;x++){for(int y=0;y<n;y++){System.out.print(s+" ");}System.out.println();}}public static void show(int a,int b){System.out.println(a+","+b);}}
上面的这个例子就是方法重载,其中在Demo类中有两个show()方法,但是这两个show方法的参数类型不同,因此show(a,s)调用show方法时就会主动匹配show(int n,String s)。而当show(a,b)就可以主动匹配show(int a,int b).
二、数组:
数组是存储同一种数据的多个元素的容器。数组既可以存储基本数据类型,也可以存储引用数据类型。但是数组的长度是固定的,就是当你在堆内存中new一个对象的时候,数组的长度就已经是固定的了。但是后面学到的集合长度就是可变的。但是集合只能存储引用数据类型。
数组的特点是每个元素都有一个index索引,我们可以通过索引快速追踪里面的每个元素,其中规定第一个元素索引是0.最大的索引是arr.length-1;我们在定义数组时有两种格式:
数据类型[] 数组名;
数据类型 数组名[];
A:静态初始化:int [] arr=new int []{1,2,3,4,5};
String [] s=new String []{"我","爱","黑","马"};
String [] s1={"我","真","的","爱","黑","马"};
B:动态初始化:int [] arr=new int [3];
一般情况下我们都会选择静态初始化的第三种。其实数组在new的时候,是建立在堆内存中的,如果数组类型不同,每个元素的默认值就不同:
byte,short,int,long 默认值为0
float,double 默认值为0.0
char默认值为 '\u0000'
boolean 默认值为false
引用类型默认值为 null
下面就是数组的一些常见操作:
方式1:
public static void printArray(int[] arr) {for(int x=0; x<arr.length; x++) {System.out.println(arr[x]);}}
方式2:
public static void printArray(int[] arr) {System.out.print("[");for(int x=0; x<arr.length; x++) {<span style="white-space:pre"></span>if(x == arr.length-1) {<span style="white-space:pre"></span>System.out.println(arr[x]+"]");<span style="white-space:pre"></span>}else {<span style="white-space:pre"></span>System.out.println(arr[x]+", ");<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}}
B:最值:如果学了Arrays类中的API之后,就可以通过sort()方法,给数组排序,然后最后一个元素就是最大的。第一个就是最小的。
最大值:
public static int getMax(int[] arr) {int max = arr[0];for(int x=1; x<arr.length; x++) {if(arr[x] > max) {//从数组中选择第一个元素,并将这个元素赋给最大值,依次让其与其余的元素比较,大的就赋给最大值。max = arr[x];}}return max;}
最小值:
public static int getMin(int[] arr) {int min = arr[0];for(int x=1; x<arr.length; x++) {<span style="white-space:pre"></span>if(arr[x] < min) {<span style="white-space:pre"></span>min = arr[x];<span style="white-space:pre"></span>}}return min;}
C:逆序
方式1:
public static int reverse(int[] arr) {for(int x=0; x<arr.length/2; x++) {//这里不存在偶数,奇数问题。int temp = arr[x];arr[x] = arr[arr.length-1-x];arr[arr.length-1-x] = temp;}}
方式2:
public static int reverse(int[] arr) {for(int start=0,end=arr.length-1; start<=end; start++,end--) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;}}
D:查表
public static String getString(String[] strArray,int index) {return strArray[index];}
E:基本查找
方式1:
public static int getIndex(int[] arr,int value) {for(int x=0; x<arr.length; x++) {if(arr[x] == value) {return x;}}//因为查找会出现没有元素的情况,此时就返回一个没有对应的-1索引。return -1;}
方式2:
public static int getIndex(int[] arr,int value) {int index = -1;<span style="white-space:pre"></span>for(int x=0; x<arr.length; x++) {<span style="white-space:pre"></span>if(arr[x] == value) {<span style="white-space:pre"></span>index = x;<span style="white-space:pre"></span>break;<span style="white-space:pre"></span>}}return index;}
F:排序:排序的方法比较多,这里就简单介绍一个冒泡排序
public staitc void bubbleorder(int [] arr){for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-1-x;y++){if(arr[y]>arr[y+1]){int temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}}
0 0
- 黑马程序员————java基础--------方法与一维数组
- 黑马程序员——Java基础---方法与数组操作
- 黑马程序员——java基础:函数与数组
- 黑马程序员——java基础---函数与数组
- 黑马程序员——java基础(函数与数组)
- 黑马程序员——Java基础之函数与数组
- 黑马程序员——Java基础--函数与数组
- 黑马程序员——Java基础语法---函数与数组
- 黑马程序员——java基础---数组
- 黑马程序员——Java基础---数组
- 黑马程序员——JAVA基础---数组
- 黑马程序员—Java基础—数组
- 黑马程序员—JAVA基础—数组
- 黑马程序员—Java基础—数组
- 黑马程序员——Java基础---数组
- 黑马程序员—Java语言基础(数组)
- 黑马程序员—java基础_数组
- 黑马程序员—java基础—java基础语法:数组,二维数组,方法重载
- POJ 2676Sudoku(数独)
- 平面坐标系之间点坐标的换算
- 学习布局——getContentPane() setContentPane()
- linux 每天备份mysql数据
- 使用pfile 启动oracle 实例时,启动失败---db_recovery_file_dest参数值在os上不存在。
- 黑马程序员————java基础--------方法与一维数组
- 软件工程《构建之法》悦读总结
- CODEVS_1074 食物链
- 通过评委给的分算出改参赛者的最后的分
- Shell脚本:打印九九乘法表
- CentOS下安装QT详细过程以及错误处理
- My deep learning reading list
- DataOutputStream、DataInputStream、ByteArrayOutputStream、ByteArrayInputStream
- UML静态视图——类图、对象图、包图