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学习内容哦~😘💕💕

相关文章
|
11天前
|
Java
判断不为空和不为空串的方法java
判断不为空和不为空串的方法java
|
1天前
|
缓存 Java 数据库
Java并发编程学习11-任务执行演示
【5月更文挑战第4天】本篇将结合任务执行和 Executor 框架的基础知识,演示一些不同版本的任务执行Demo,并且每个版本都实现了不同程度的并发性。
18 4
Java并发编程学习11-任务执行演示
|
1天前
|
XML JavaScript Java
详解Java解析XML的四种方法
详解Java解析XML的四种方法
|
1天前
|
存储 Java API
掌握8条方法设计规则,设计优雅健壮的Java方法
掌握8条方法设计规则,设计优雅健壮的Java方法
|
2天前
|
Java C语言
详解java方法与递归
详解java方法与递归
8 3
|
2天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
8 0
|
2天前
|
数据库连接
java+ssm+vue代码视频学习讲解
java+ssm+vue代码视频学习讲解
5 0
|
2天前
|
Java
Java一分钟之-方法定义与调用基础
【5月更文挑战第8天】本文介绍了Java编程中的方法定义和调用,包括基本结构、常见问题和避免策略。方法定义涉及返回类型、参数列表和方法体,易错点有返回类型不匹配、参数错误和忘记返回值。在方法调用时,要注意参数传递、静态与非静态方法的区分,以及重载方法的调用。避免错误的策略包括明确返回类型、参数校验、理解值传递、区分静态和非静态方法以及合理利用重载。通过学习和实践,可以提升编写清晰、可维护代码的能力。
12 0
|
5天前
|
搜索推荐 Java Shell
8大Java排序方法(由简入繁),有代码详解和原理指导
8大Java排序方法(由简入繁),有代码详解和原理指导
27 0
|
11天前
|
Java API
【亮剑】三种有效的方法来删除List中的重复元素Java的List
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。