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


    (一)、方法:

    1.什么是方法:

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

    2.方法的作用:

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

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

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

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

    3.方法的命名规则:

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

    4.设计方法的原则:

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

    5.java方法的定义:

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

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

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

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

    6.方法的格式:

    修饰符 返回值类型 方法名 (参数类型 参数名)
    {
    	方法体     //打包的内容
    	return 返回值‘
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7.方法的调用:

            调用方法:                方法名(实参列表)
    
    • 1

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

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

    int larger=max(30,40);
    
    • 1

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

    System.out.println()
    
    • 1

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

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

    在这里插入图片描述

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

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

    int a=10;  b=a;
    
    • 1

    图解:
    在这里插入图片描述

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

    常用的引用数据类型:

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

    图解:
    在这里插入图片描述

    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);
    	}	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    代码展示:

    在这里插入图片描述

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    效果展示:

    在这里插入图片描述

    (二)方法的用法:

    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();	
    	}		
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    效果展示:

    在这里插入图片描述

    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));
    			
    	}		
    }
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    效果展示:

    在这里插入图片描述

    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);
     }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在这里插入图片描述

    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);
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    效果展示:

    在这里插入图片描述

    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]+"");
    		}
    	}
    }
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    效果展示:

    在这里插入图片描述

    复习一下数组
    在这里插入图片描述

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

  • 相关阅读:
    破解仓储难题?WMS仓储管理系统解决方案
    树的相关知识的注意事项
    api调用钉钉群机器人发信息
    路径中的斜杠与反斜杠
    Safran与是德科技合作为蔚来提供电动汽车中的5G和C-V2X连接测试
    VS + QT 封装带UI界面的DLL
    对一个即将上线的网站,如何做一个较完整的Web应用/网站测试?
    Vue 面试题:了解 Vue 中的 Mixin 吗?
    非零基础自学Java (老师:韩顺平) 第11章 枚举和注解 【2 注解】
    Linux 系统编程:内存管理系统调用的深度解析
  • 原文地址:https://blog.csdn.net/qq_69683957/article/details/126472176