首页 > 系统相关 >java基础-什么是方法,方法的定义和调用,方法的重载,方法的内存

java基础-什么是方法,方法的定义和调用,方法的重载,方法的内存

时间:2023-05-05 20:56:28浏览次数:33  
标签:arr 调用 java 定义 int 数据类型 重载 方法

一、什么是方法

方法method是程序中最小的执行单元。

在实际开发中,可以将重复的代码、具有独立功能的代码抽取到方法中,这样可以提高代码的复用性和可维护性

二、方法的定义(打包)和调用

注意:方法要写在main主方法的外面(在main方法外面定义)。

1、最简单的方法定义和调用

//最简单的方法定义格式
public static void 方法名(){
    方法体内容;  
}
//调用,调用之前一定要先定义
方法名();

2、带参数的方法定义和调用

形参:方法定义中的参数,也就是方法名旁边括号中的参数。

实参:方法调用的参数,也就是方法体中的参数。

注意:在方法中,形参和实参的数据类型一定要一致

//带参数的方法定义
public static void 方法名(数据类型 变量名){
     方法体内容;  
}
//例如:
public static void method(int x,int y){
     System.out.print(x+y);
}
//调用
method(1,2);

3、带返回值的方法定义和调用

//带返回值的方法的定义
publict static 返回值类型 方法名(参数){
   方法体内容;
   return 返回值;
}
//例如:
public static int getSum(int a,int b){
    int c=a+b;
    return c;
}

当方法有返回时,调用也分为直接调用、赋值调用、输出调用

//直接调用
方法名(实参);
//赋值调用
整数类型 变量名=方法名(实参);
//输出调用
System.out.print(方法名(实参));

三、方法的重载

1、什么是重载

同一个类中,方法名相同,形参不同的方法。与返回值无关。

形参不同:个数不同,类型不同,顺序不同,满足其一即可。

 2、方法重载练习

练习1

public static void main(String[] args) {
        //需求:使用方法重载的思想
        //定义一个数组,要求输出[1,2,3,4,5]
        int[] arr = {1, 2, 3, 4, 5};//静态初始化数组
        
        //调用
        setArr(arr);
    }

    public static void setArr(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            }else {
                System.out.print(arr[i]+",");
            }
        }
        System.out.print("]");
    }

练习2

public static void main(String[] args) {
        /**
         * 需求:定义一个方法copyOfRange,
         * 将数组arr从索引from(包含from)开始,
         * 到索引to结束(不包含to)的元素复制到新数组中,
         * 将新数组返回。
         * **/
        //定义数组
        int[] arr={1,2,3,4,5,6,7};
        int[] copyArr= copyOfRange(arr,2,4);
        //遍历数组
        for (int i=0;i<copyArr.length;i++){
            System.out.print(copyArr[i]+" ");
        }
    }
    private static int[] copyOfRange(int[] arr,int from,int to) {
        int[] arr2=new int[to-from];
        //伪造索引
        int index=0;
        for (int i=from;i<to;i++){
            arr2[index]=arr[i];
            index++;
        }
        return arr2;
    }

四、方法的内存原理

栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈。

堆:new出来的,都会再堆内存中开辟一个小空间。

方法区:可以运行的class文件。

1、方法调用的基本内存原理

 2、基本数据类型和引用数据类型

基本数据类型:数据值是存储在自己的空间,是直接存储在栈里面的,当变量赋值给其他变量时,会重新在栈中开辟一个新的空间给这个新的变量存储值。

比如:int a=10;

int b=a;这时,int b会在栈内存中重新开辟一个空间存储10这个实际的值,当我们修改int b=9时并不会影响int a。

基本数据类型有整数类型(byte、short、int、long)、浮点类型(floate、double)、字符类型char、布尔类型。

引用数据类型:凡是用到new的都是引用数据类型,数据值是存储在其他空间。存储在堆内存中。

 

标签:arr,调用,java,定义,int,数据类型,重载,方法
From: https://www.cnblogs.com/hqh2021/p/17370040.html

相关文章

  • register at least one qt version using“qt vs tools“->“qt options“问题描述及解
    问题描述:在安装了Qt5.9.8,vs2022,QTVSTool2022并配置好环境变量之后创建Qt项目时无法创建,提示至少需要注册一个Qt版本到QtVSTools的QtOptions 解决方法:1.重新打开一个可以创建的C++vs文件,在上方菜单栏中“工具-选项-找到Qt的version”,点击加号,再点击windows右侧的......
  • Go笔记(十一):方法
    Go语言没有Java语言面向对象的特性,也无类对象的概念。但可以使用结构体实现这些特性。1、方法的声明Go中的方法是一种特殊的函数,与struct相关联,被称为struct的接收者。可以理解为方法就是有接收者的函数。语法格式如下:typemystructstruct{}func(recvmystruct)my......
  • re.finall方法的使用
    finall()特点:1.如果正则表达式中没有()则返回与整个正则匹配的列表2.如果正则表达式中有(),则返回()中匹配的内容列表,小括号两边东西都是负责确定提取数据所在位置1.正则表达式匹配单个数字和多个数字: 2.正则表达式_findall方法中flag参数的作用:3.finall方法中分组的......
  • javaNIO多线程worker实现
    boss线程负责接收连接,worker线程负责处理IO事件。packagenet.yury.nio;importjava.io.IOException;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.nio.channels.*;importjava.nio.charset.StandardCharsets;importjava.util.ArrayList;......
  • java安全
    java——sql注入:防御sql注入,其实就是session,参数绑定,存储过程这样的注入。//利用session防御,session内容正常情况下是用户无法修改的select*fromuserswhereuser=“'”+session.getAttribute("UserID")+"'";//参数绑定方式,利用了sq1的预编译技术Stringquery="SELECT......
  • Java的反射用途及其获取反射的三种方法
    (1)反射的用途有多种:①框架设计:在框架设计中,我们通常需要使用反射技术来解耦,使框架可扩展和灵活。②单元测试:在单元测试中,我们可以使用反射技术来访问私有或受保护的类成员,使测试更加全面。③动态代理:使用反射技术可以创建动态代理对象,从而可以在运行时期代理任意的......
  • Java--抽象
    Java--抽象抽象的概念如果父类当中的方法不确定如何进行{}方法体的实现,那么这就应该是一个抽象方法抽象方法和抽象类的格式抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束.抽象类:抽象方法所在的类,必须是抽象类才行,在class之前写上abstract即可.代码示......
  • java基于springboot+vue的垃圾分类管理系统,附源码+文档+PPT+数据库
    1、项目介绍垃圾分类网站的主要使用者分为管理员和用户、垃圾分类管理员,实现功能包括管理员:首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理、系统管理,垃圾分类管理员;首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃......
  • 22基于java的电影院售票管理系统
    项目背景随着互联网和电子商务的快速发展,开发一个电影院订票系统来帮助电影院对电影信息,售票信息进行统一化的信息管理;遇到的问题在设计的过程中,需要解决以下的几个问题:电影院会有多个播放厅,从而在同一时间播放不同的电影来满足客户需求每个厅的大小可能不同,即容纳的人数不......
  • java 手动校验dto
    1在Java中进行手动校验DTO的方法有很多种,这里提供一种常用的校验方法,使用HibernateValidator实现:231.添加依赖45首先需要在Maven或Gradle中添加HibernateValidator的依赖:67Maven:89```xml10<dependency>11<groupId>......