微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

44.【Java 基础篇之方法与内存】

(一)、方法:

1.什么是方法:

Java的方法类似于其它语言的函数,是一段用来完成特定功能代码片段.
方法是程序中最小的内存单位.

2.方法的作用:

Java方法是语句的集合,它们在一起执行一个功能

a. 方法解决一类问题的步骤的有序组合

b. 方法包含于类或对象中

c. 方法在程序中被创建,在其他地方被引用

3.方法的命名规则:

首字母小写如果名称由多个单词组成,从第二个单词的开始首字母大写

4.设计方法的原则:

方法的本意是功能,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

5.java方法的定义:

Java的方法类似于其它语言的函数,是一段用来完成特定功能代码片段,一般情况下一个方法包含以下语法:

1).修饰符:这是可选的,告诉编译器如何调用方法。定义了该方法的访问类型。
2).返回值类型:方法可能会返回值。没有返回值returnValueType是关键字void。
3).方法名:是方法的**实际名称,**方法名和参数表共同构成方法签名。
4).参数类型:参数像是一个占位符。当方法调用时,传递给参数,这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数

形式参数:在方法调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。

5).方法体:方法体包含具体的语句,定义该方法功能

6.方法的格式:

修饰符 返回值类型 方法名 (参数类型 参数名)
{
	方法//打包的内容
	return 返回值‘
}

7.方法调用:

        调用方法方法名(实参列表)

(一) 、Java支持两种调用方法的方式,根据方法是否返回值来选择。

1)方法返回一个值的时候,方法调用通常被当做一个,例如:

int larger=max(30,40);

2)、如果方法返回的是void,方法调用一定是一条语句

System.out.println()

8.方法调用的基本内存原理

因为方法一个函数,没有new关键字,所以就只有栈.
一个方法,也就是一个内存。比如说先调用函数,然后在调用引用函数.(遵循先进先出的原则
比如说子弹装枪)

在这里插入图片描述

在这里插入图片描述

9.基本数据类型与引用数据类型

1.基本数据类型:数据是储存在自己的空间中.
特点:赋值给其他变量,也是赋的真实的值.
常用的基本数据类型:

int a=10;  b=a;

图解:

在这里插入图片描述

2.引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值.

常用的引用数据类型:

数组名 通过索引取值=========================    数组名

图解:

在这里插入图片描述

1.(值传递:形参改变实参不变)

代码展示:

package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
	public static void change(int number)
	{
		number=100;
	}
	public static void main(String []avgs)
	{
		int number=20;
		System.out.println("调用前:"+number);
		change(number);
		System.out.println("调用后:"+number);
	}	
}

代码展示:

在这里插入图片描述

2.(引用传递:行参改变实参也改变)

代码展示:

package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
	public static void change(int number[])
	{
		number[0]=100;
	}
	public static void main(String []avgs)
	{
		int number[]=new int[] {10,20,30};
			change(number);   //传递地址,引用
			System.out.println(number[0]);
	}		
}
 

效果展示:

在这里插入图片描述

(二)方法用法:

1.无返回值的类型

代码展示:

package test;  //  包名
public class test1 {     //项目名
	public static void playGame()
	{
		System.out.println("开始");
		System.out.println("对线");
		System.out.println("崩盘");
		System.out.println("骂队友");
		System.out.println("失败");
	}
	public static void main(String []avgs)
	{
		playGame();  
		System.out.println("====================");
		playGame();	
	}		
}

效果展示:

在这里插入图片描述

2.有返回值的类型:

代码展示:

题目描述:求两个整数的和,并返回值

package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
	public static int playGame(int number1,int number2)
	{
		int sum=0;
		sum=number1+number2;
		return sum;
	}
	public static void main(String []avgs)
	{
			int number1,number2;
			System.out.println("请您输入两个数字:");
			Scanner sc=new Scanner(System.in);
			number1=sc.nextInt();
			number2=sc.nextInt();
			System.out.println("两者的和为\n:"+playGame(number1,number2));
			
	}		
}
 

效果展示:

在这里插入图片描述

3.利用方法的知识,把数组1复制到数组2;

代码展示:

package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
 public static void copMethod(int a[],int start,int end)
 {
  int arr_number2[]=new int[5];
  for(int i=start,index=0;i<=end;i++,index++)
  {
   
   arr_number2[i]=a[i];
  }
  for(int i=0;i<arr_number2.length;i++)
  {
   System.out.print(" "+arr_number2[i]);
  }
 }
 public static void main(String []args)
 {
   int arr_number1[]=new int[5];
  Scanner sc=new Scanner(System.in);
  for(int i=0;i<arr_number1.length;i++)
  {
   arr_number1[i]=sc.nextInt();
  }
  System.out.println("拷贝复制后的数组为:");
  copMethod(arr_number1,2,4);
 }
}

在这里插入图片描述

4.判断一个范围内的素数:

判断101-200之间的质数,并输出所有质数,和质数的个数

代码展示:

package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
	static int count=0;     //  定义全局变量,只为了求个数
	public static void change(int number)
	{
		boolean flag=true;
		for(int i=2;i<number/2;i++)
		{
			if(number%i==0)   //如果不是素数
			{
				flag=false;
				break;
			}
		}
		if(flag)   //注意这里省略了  !=0
		{
			++count;
			System.out.println(number+" "+count);
		}
	}
	public static void main(String []avgs)
	{
		for(int i=101;i<200;i++)
		{
			change(i);
		}
	}
}

效果展示:

在这里插入图片描述

5.从一个整数中获得提取成数组:

题目描述: 我们已经知道一个整数123456,把整数123456,首先我们通过/ 进行得到个数,然后再通过%得到个位,然后定义一个动态数组,把这个动态数组进行赋值.

代码展示:

package test;  //  包名
import java.util.Random;
	public class test1 {     //项目名
	public static void main(String []avgs)
	{
		int number=123456;
		int temp=number;
		int count=0;
		while(number!=0)
		{
			number=number/10;
			count++;
		}
		int arr_number[]=new int[6];
		System.out.println(count);
		while(count>0)
		{
			int gw=temp%10;
			arr_number[count-1]=gw;
			temp=temp/10;
			count--;
		}
		for(int i=0;i<6;i++)
		{
			System.out.println(arr_number[i]+"");
		}
	}
}
 

效果展示:

在这里插入图片描述

复习一下数组

在这里插入图片描述

如有不懂,可私聊!!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐