大数据基础之java方法

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据基础之java方法

方法简介

  1. 什么是方法

    • 在java用来存放一小段代码或指定功能的工具,在调用该方法后可以实现内部存储的功能.
  2. 方法的定义

    /*
    java中的方法:
        就类似于python中的方法,就是在类的内部,封装一小段代码实现固定功能的代码块,想要执行此功能时直接调用方法即可
    
        方法的定义:
         public static void main(String[] args) {
    
        }
    
        修饰符 返回值类型 方法名 (参数类型 参数名称1, 参数类型 参数名称2.....) {
            方法体: 要实现的功能代码.
            return 返回值;
        }
        修饰符: 对于方法的权限,特性,调用方式等进行修饰 public 公共权限, static 静态方法
        返回值类型: 标注我们要返回值数据的类型,如果返回值类型不匹配则报错  void 代表无返回值
        参数:
            参数类型 接收参数时只能接收固定类型的参数 参数名称  局部名称,出了方法就消失了
            在定义位置的淡出叫做形参
            在调用位置的参数叫做实参
        方法体:实现功能的代码可以是一行,也可以是多行,但是务必注意,一个方法实现的功能尽量单一
        return: 结束方法的执行,同时返回返回值,返回值类型要与方法定义时,标注的类型相同
    
        方法的种类: 无参无返回值 无参有返回值 有参无返回值  有参有返回值
     */
    public class Demo01 {
        public static void main(String[] args) {
            //方法的调用 使用方法名称( 传参) 即可
            func1();
            func2("正国");
            System.out.println(func3());
            System.out.println(func4(5,4));
    
        }
    
        /**
         * 无参无返回值方法
         */
        public static void func1(){
            System.out.println("hello itcast!!!");
        }
    
        /**
         * 有参无返回值
         */
        public static void func2(String name){
            System.out.println("和" +name+"真开心呀!!");
        }
    
        /**
         * 无参有返回值
         */
        public static String func3(){
            return "我想去回家看电影,千万不要把我落下!";
        }
        /**
         * 有参有返回值
         */
        public static int func4(int a, int b){
            return a + b;
        }
    }
  3. 方法的注意事项
  4. 方法的使用

    public static void main(String[] args) {
        int[] arr1 = {11, 22, 99, 44, 55};
        printArray(arr1);
    
        System.out.println(getMax(arr1));
    
        int[] arr2 = compute(3,4);
        printArray(arr2);
    }
    
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    
    public static int getMax(int[] arr){
        int maxNum = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(arr[i] >maxNum){
                maxNum = arr[i];
            }
        }
        return maxNum;
    }
    
    public static int[] compute(int a, int b){
        // 1.创建一个长度为4的空数组
        int[] arr = new int[4];
        // 2. 计算加减乘除的结果,赋值给数组中的0-3号下标的元素
        arr[0] = a + b;
        arr[1] = a - b;
        arr[2] = a * b;
        arr[3] = a / b;
        // 3.将数组返回
        return arr;
    }
  5. 方法重载

    /*
    方法重载:
        1. 方法名称相同 但是方法的参数列表不同
            参数列表不同:  double a, double b
                数据类型不同  int a, int b
                参数数量不同  int a, int b , int c
                参数顺序不同  int b   int a
        2.和修饰符无关
        3.和返回值类型无关
        4.和参数名无关
    需求:
    1. 定义方法compare(), 用来比较两个整型数据是否相等.
    2. 要求兼容所有的整数类型, 即(byte, short, int, long)
    
     */
    public class Demo03 {
        public static void main(String[] args) {
            //定义不同数据类型的变量
            byte a = 10;
            byte b = 20;
            short c = 10;
            short d = 20;
            int e = 10;
            int f = 10;
            long g = 10;
            long h = 20;
    
            System.out.println(compare(a, b));
            System.out.println(compare(c, d));
            System.out.println(compare(e, f));
            System.out.println(compare(g, h));
            
            // 方法重载我们一直在用  println
            
        }
    
        public static boolean compare(byte a, byte b) {
            return a == b;
        }
        /**
         * 可以使用方法重载,给同一个方法名添加不同的参数列表,使方法的兼容性增加
         * 使用重载方法时,调用位置会根据传参数量,传参类型不同自动选择合适的方法进行使用
         */
        public static boolean compare(short a, short b) {
            return a == b;
        }
        public static boolean compare(int a, int b) {
            return a == b;
        }
        public static boolean compare(long a, long b) {
            return a == b;
        }
    
    }

    public static void open(){}
    public static void open(int a){}
    static void open(int a,int b){}
    public static void open(double a,int b){}
    public static void open(int a,double b){}
    public void open(int i,double d){}
    public static void OPEN(){}
    public static void open(int i,int j){}

  6. 参数传递问题

    /*
        方法传参:
        引用数据类型(String, int[], float[]..): 在传参时传递的是地址,叫做引用传递
        引用类型数据,将数据传递到方法内部,修改内部数据后,外部数据受影响
        基础数据类型(int float boolean..): 在传参的时候传递的是值, 叫做值传递
        基础类型数据,将数据传递到方法内部,修改数据后,外部数据不受影响
     */
    public class Demo04 {
        public static void main(String[] args) {
            //创建一个引用类型数据
            int[] arr1 = {11,22,33,44,55};
            //将int[] 类型数据传入到方法中
            func1(arr1);
            System.out.println(Arrays.toString(arr1));  // [199, 22, 33, 44, 55]
    
            int num = 5;
            func2(num);
            System.out.println(num); // 5
    
        }
        public static void func1(int[] arr){
            arr[0] = 199;
        }
    
        public static void func2(int a){
            a = 10;
        }
    }
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
6天前
|
Java
Java如何标记异步方法
【8月更文挑战第13天】Java如何标记异步方法
14 1
|
13天前
|
安全 机器人 Java
|
5天前
|
Java
【Java】Math、System、RunTime、BigDecimal类常用方法
【Java】Math、System、RunTime、BigDecimal类常用方法
|
1天前
|
存储 Java
|
11天前
|
存储 Java 编译器
Java 基础语法-方法
Java 基础语法-方法
27 12
|
7天前
|
Java
Java aop 如何获取方法的参数体
【8月更文挑战第12天】Java aop 如何获取方法的参数体
31 2
|
11天前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
39 8
|
8天前
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
26 3
|
12天前
|
Java API 开发者
Java中的Lambda表达式:简化代码的现代方法
Lambda表达式,这一Java 8引入的特性,为开发者提供了一种更加紧凑、易读的编码风格。本文将深入探讨Lambda表达式的概念、使用场景以及它如何改变我们处理集合、线程和函数式接口的方式,旨在帮助读者理解并有效利用Lambda表达式来优化他们的Java代码。
|
10天前
|
机器学习/深度学习 算法 Java
Java调用Python方法
【8月更文挑战第7天】