public class Method_Demo01{
public static void main (String [] args){
print();
}
private static void print(){
for (int i = 0;i<5;i++){
for(int j=0;j<8;j++){
System.out.print("*");
}
}
}
}
//结果为:
//****************************************
print
方法被main
函数调用后直接输出结果了,所以不需要传递参数。
注意事项
蒙牛工厂
原料:奶牛,饲料,水
产出物:奶制品
这就好比我们方法中的参数
和返回值
定义格式
修饰符 返回值类型 方法名 (参数类型 参数名称,…){
方法体;
return 返回值;
}
方法名称:命名规则和变量一样,小驼峰。
参数如果有多个用逗号隔开
return:有两个作用,第一停止当前方法,第二讲后的返回值还给调用处
返回值:也就是方法执行后最终产生的结果
注意:return后面的返回值,必须和方法名称前面的返回值类型对应。
public class Demo02MethodDefine {
public static void main(String[] args) {
//单独调用
sum(10,20);
//打印调用
System.out.println(sum(50,60));
//赋值调用
int number=sum(20,30);
}
public static int sum(int a,int b){
int result = a+b;
return result;
}
}
public static void main (String [] args){
System.out.println(sum(10,20));//30
System.out.println(sum(10,20,30));//60
System.out.println(sum(10,20,30,40));//100
}
public static int sum(int a,int b){
return a+b;
}
public static int sum(int a,int b,int c){
return a+b+c;
}
public static int sum(int a,int b,int c,int d){
return a+b+c+d;
}
方法的重载和参数名称无关!
在内存当中创建一个数组,并且向其中赋予一些默认值
两种常见的初始化:
数据类型[] 数组名称= new 数据类型[数组长度];
int[] num = new int[10];
解析含义:
public static void main (String[] args){
int [] arrayA = new int [10];
double [] arrayB = new double [10];
String [] arrayC = new String [20];
}
数据类型[] 数组名称= new 数据类型[] {元素1,元素2,...};
int[] num = new int[] {5,15,25};
解析含义:
public static void main (String[] args){
int [] arrayA = new int[] {10,20,30};
String [] arrayB = new String[] {"World","Hello","java"}
}
数据类型[] 数组名称= {元素1,元素2,...};
int[] num = {5,15,25};
注意事项:
静态初始化没有直接指定长度,但是会自动推算得到长度
静态初始化可以拆分成两个步骤,动态初始化也一样。
int [] array ;
array = new int {10,20,30};
但是静态初始化如果使用了省略格式就不能在拆开写了
使用建议:如果不确定数组中的具体内容就是用动态初始化,如果一直内容就是用静态初始化。
public static void main (String [] args){
int [] array = {10,20,30};
System.out.println(array);//I@75412c2f
}
注意:索引值从0开始,一直到“数组长度-1”为止。
public static void main (String [] args){
int [] array = {10,20,30};
System.out.println(array);//I@75412c2f
System.out.println(array[0]);//10
int number = array[1];
System.out.println(int);//20
}
public static void main (String [] args){
int [] array = new int [3];
System.out.println(array[1]);//0
array[1]=3;
System.out.println(array[1]);//3
}
注意事项:静态初始化其实也有默认值的过程,只不过在你写大括号的时候,写了具体数值系统会马上将默认值改成你写的值。
Java中的内存需要划分为五个部分
为什么要划分成五个部分呢:
就比如说你买了一个房子,肯定有厕所,客厅,卧室,厨房。这样分开后更加符合日常使用。同理Java也一样。
栈(Stack):存放的都是方法中的局部变量
局部变量:方法的参数,或者是方法大括号内部的变量
作用域:一旦超出作用域,立刻从栈内存消失
堆(Heap):凡是new出来的都会放在堆内存中,堆内存中有一个16进制地制值,堆内存中的数据都有默认值。
方法区(Method):存储class相关信息,包含方法的信息。
本地方法栈(Native Method Stack):与操作系统相关
寄存器(pc Register):与CPU相关
int [] array = new int [3];
System.out.println(array.length);//3
array = new int [5];
System.out.println(array.length);//5
注意:上面的这个例子,他并不是改变了数组的长度,而是创建了一个新的数组。只不过两个数组都是用的array表示的。
public static void main (String[] args){
int [] array = {10,20,30,40,50,60,70,80,90};
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void main (String[] args){
int [] array = {55,26,94,67,15,2,34};
int max=array[0];
for(int i=1;i<array.length;i++){
if(array[i]>max){
max=array[i];
}
}
System.out.println(max);//94
}
本来的样子{1,2,3,4}
之后的样子{4,3,2,1}
要求,不能使用新的数组,就是用原来的唯一的一个数组。
分析
public static void main(String[] args){
int [] array = {1,2,3,4,5};
for(int i=0;i<array.length;i++){
System.out.print(array[i]+",");
}
System.out.println();
System.out.println("==================");
for(int min=0, max=array.length-1;min<max;min++,max--){
int temp=array[min];
array[min]=array[max];
array[max]=temp;
}
for(int i=0;i<array.length;i++){
System.out.print(array[i]+",");
}
}
public static void main(String[] args){
int [] array = {1,2,3,4,5};
printArray(array);
}
public static void printArray(int[] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]+",");
}
System.out.println();
System.out.println("==================");
for(int min=0, max=array.length-1;min<max;min++,max--){
int temp=array[min];
array[min]=array[max];
array[max]=temp;
}
for(int i=0;i<array.length;i++){
System.out.print(array[i]+",");
}
}
- 数组可以作为方法的参数。
- 当调用方法的时候,向方法的小括号中进行传参,传递进去的其实是数组的地址值。
一个方法可以有零个或者多个参数,但是只能有零或者一个返回值,不能有多个返回值。
如果一个方法中产生了多个结果数据需要进行返回,这就需要一个数组作为返回值类。
public static void main(String[] args){
int [] result=calculate(10,20,30);
System.out.println("总和是:"+result[0]);
System.out.println("平均数是:"+result[1]);
}
public static int[] calculate(int a,int b,int c){
int sum= a+b+c;
int avg= sum/3;
int [] array={sum,avg};
return array;
}