10.Java方法学习知识点大全(下)

简介: 10.Java方法学习知识点大全(上)

2.人肉计算机

(1)三种调用方法的演示

public class MethodDemo5 {
    public static void main(String[] args) {
        //目标:掌握带返回值方法的定义和调用格式
        //1.直接调用---用于没有返回值的结果
        getSum(10,20,30);
        //2.赋值调用(最常用)
        double sum=getSum(10,20,30);
        System.out.println(sum);
        //3.输出调用
        System.out.println(getSum(10,20,30));
    }
        public static double getSum(double num1,double num2,double num3){
            double result=num1+num2+num3;
            return result;//返回方法的调用处
        }
}

1.直接调用的结果:空的

2.赋值调用的结果

3.输出调用的结果

(2)题目正解

public class MethodDemo5 {
    public static void main(String[] args) {
        //目标:掌握带返回值方法的定义和调用格式
        //1.直接调用---用于没有返回值的结果
       // getSum(10,20,30);
        //2.赋值调用
        //double sum=getSum(10,20,30);
        //System.out.println(sum);
        //3.输出调用
        //System.out.println(getSum(10,20,30));
        //先计算第一个季度的营业额
        double sum1=getSum(10,20,30);
        //先计算第二个季度的营业额
        double sum2=getSum(20,30,40);
        //先计算第三个季度的营业额
        double sum3=getSum(30,40,50);
        //先计算第四个季度的营业额
        double sum4=getSum(40,50,60);
        //求全年的营业额
        double sum=sum1+sum2+sum3+sum4;
        System.out.println(sum);
    }
        public static double getSum(double num1,double num2,double num3){
            double result=num1+num2+num3;
            return result;//返回方法的调用处
        }
}

3.总结

方法的返回值返回到调用处

4.练习:比较大小

public class MethodDemo6 {
    public static void main(String[] args) {
        //目标:要能区分出什么时候使用带返回值的方法
        //需求:定义方法,比较两个长方形的面积
        double area1=getArea(5.3,1.7);
        double area2=getArea(2.4,2.7);
        if(area1>area2){
            System.out.println("第一个长方形的面积更大");
        }else{
            System.out.println("第二个长方形的面积更大");
        }
    }
    //1.我要干嘛?比较两个长方形的面积
    //2.需要什么?两个长 两个宽
   /* public static void compare(double len1,double width1,double len2,double width2){
        double area1=len1*width1;
        double area2=len2*width2;
        if(area1>area2){
            System.out.println("第一个长方形的面积更大");
        }else{
            System.out.println("第二个长方形的面积更大");
        }
    */
    //在以后实际的开发中,我们一般是把重复的代码或者具有独立功能的代码抽取到方法中
    //以后直接调用就好了
    //如果不止两个长方形比较呢?
        //定义一个方法求长方形的面积
        //1.我要干嘛?比较两个长方形的面积
        //2.需要什么?两个长 两个宽
        //3.方法的调用处,是否需要继续使用方法的结果
        //如果要用,那么方法必须要有返回值
        //如果不要用,方法可以写返回值,也可以不写返回值
        public static double getArea(double len,double width){
            double area=len*width;
            return area;
        }
    }

五、方法的小结

1.方法的完整定义格式

2.方法的注意事项

3.return关键字

4.判断下面的代码书写是否正确

六、方法的重载

下面的代码是否构成重载?

答案:是.因为方法名相同,参数不同,上面有两个参数,下面有三个参数

1.区分一下方法是否构成重载

要在同一个类里面,方法名一样,形参不一样,不看返回值

2.会定义重载的方法

public class MethodDemo7 {
    public static void main(String[] args) {
        /*
        需求:使用方法重载的思想,设计比较两个整数是否相同的方法
         要求:兼容全整数类型(byte,short,int,long)
         */
        //调用
        //只要保证实参和形参一一对应就好了,调用的时候会调用相应的方法
       compare(5,3);
       compare((byte)5,(byte)3);
      /* byte b1=5;
       byte b2=3;
       compare(b1,b2);
       */
    }
    //会把相同功能的方法起成一样的名字
    //好处1:定义方法的时候可以不用那么多的单词了
    //好处2:调用方法的时候也不需要那么麻烦了
    public static void compare(byte b1,byte b2){
        System.out.println(b1==b2);
    }
    public static void compare(int i1,int i2){
        System.out.println(i1==i2);
    }
    public static void compare(short s1,short s2){
        System.out.println(s1==s2);
    }
    public static void compare(long l1,long l2){
        System.out.println(l1==l2);
    }
}

七、方法的基本内存原理

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

只要是new出来的,都是引用数据类型,例如数组

int[] arr=new arr{1,2,3};

小结

九、方法的值传递

1.基本数据类型的值的传递

猜猜下面代码的结果是什么呢?不要轻敌哦~

public class Test1 {
    public static void main(String[] args) {
        int number=100;
        System.out.println("调用方法前:"+number);
        change(number);
        System.out.println("调用方法后:"+number);
    }
    public static void change(int number){
        number=200;
    }
}

为什么会这样呢?接下来从内存的角度去分析

(注意上图是将change中的number赋值为200,而原来number的值不变)

小结

传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值.

怎样修改代码将number的值改为200呢?

那么需要让方法具有返回值,并且在类中定义变量接收返回值.

public class Test1 {
    public static void main(String[] args) {
        int number=100;
        System.out.println("调用方法前:"+number);
        number=change(number);
        System.out.println("调用方法后:"+number);
    }
    public static int  change(int number){
        number=200;
        return number;
    }
}

2.引用数据类型的值的传递

猜猜这个结果吧~

public class Test2 {
    public static void main(String[] args) {
        int[]arr={10,20,30};
        System.out.println("调用change方法前:"+arr[1]);
        change(arr);
        System.out.println("调用change方法后:"+arr[1]);
    }
    public static void change(int[] arr){
        arr[1]=200;
    }
}

为什么会这样呢?

(注意上图是将arr地址值交给了change方法的形参)

小结

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值.


总结

今天的内容你是否有所收获呢友友们🥰如果有写的不对的地方,欢迎大家帮我指正.最后,希望友友们点赞收藏一下博客关注后续的Java学习内容哦~😘💕💕

相关文章
|
12天前
|
Java
Java——方法的引用
方法引用允许将已有方法作为函数式接口的实现。使用“::”符号,需具备函数式接口,被引用的方法须存在且参数和返回值需与抽象方法一致。其分类包括:静态方法引用(类::方法名)、成员方法引用(对象::方法名、this::方法名、super::方法名)和构造方法引用(类名::new)。方法引用提高了代码的简洁性和可读性,减少了样板代码。
29 13
Java——方法的引用
|
8天前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
13 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
4天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
14 4
|
17天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
42 18
|
7天前
|
安全 Java API
Java根据URL获取文件内容的实现方法
此示例展示了如何安全、有效地根据URL获取文件内容。它不仅展现了处理网络资源的基本技巧,还体现了良好的异常处理实践。在实际开发中,根据项目需求,你可能还需要添加额外的功能,如设置连接超时、处理HTTP响应码等。
37 4
|
13天前
|
Java API
Java方法的优缺点
Java 方法是编程的基本构建块,具有代码重用性、模块化、易于调试、增强可读性、支持重载和可变参数、封装性及静态与实例方法的灵活性等优点,但也存在性能开销、过度抽象、限制使用环境、参数传递开销、命名冲突和堆栈溢出等缺点。合理设计方法可确保代码高效且易维护。
|
8天前
|
安全 Java
java调用方法
java调用方法
18 4
|
13天前
|
Java
Java的方法详解
在 Java 中,方法是执行特定任务的代码块,包括定义、参数传递、返回值处理及重载等功能。
|
9天前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法
|
20天前
|
JavaScript 前端开发 Java
通过JUnit5访问Java静态、私有、保护变量和方法
在《通过Gtest访问C++静态、私有、保护变量和方法》一文中介绍了如何通过Gtest访问C++静态、私有、保护变量和方法,本文介绍如何通过Junit5访问Java静态、私有、保护变量和方法。
17 0
下一篇
无影云桌面