大数据基础之java面向对象

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

面向对象

  1. 面向对象概述
  2. 类的定义
  3. 类的使用

    1.如果创建一个类,不写构造方法,系统会默认赋予一个空参构造
    2.如果我们书写了构造方法,无论是空参还是全参,系统就不会自动赋予了
    3.如果想要在创建对象时动态赋予成员变量值,则使用全参构造
    4.创建一个对象时,只会执行一种构造方法
    
    空参构造:
        修饰符 类名(){
        }
    全参构造
        修饰符 类名(参数类型 参数名称1,参数类型 参数名称2 ,,,,,,){
        } 
    成员变量一般是私有的
    为了调用或者赋值成员变量我们一般会使用get set方法
    get或set 方法内部想要获取成员属性,一般会采用this获取,否则出现同名局部变量后优先使用局部变量
    在java中遵循就近原则
  4. 封装

    封装: 尽量少的将方法或者属性暴露给调用者
    好处: 安全, 降低调用难度,和沟通成本
    缺点: 灵活性差
    
    方式:private  可以将属性和方法私有  不能修饰类
    
    特点:private 修饰过后,可以在类的内部直接使用,但是在类的外部不能调用,类似于python中的__
  5. 继承

    1.在子类的构造方法中,都会自动调用父类的空参构造
    2.如果父类没有空参构造,我们可以使用spuer(参数的方式)调用父类的全参构造
    一般情况下,我们会手动给出父类的空参构造
    • 局部变量 类中的成员变量, 父类中的成员变量的调用
    int age = 10;
    Person p1 = new Person();
    System.out.println("局部变量:" + age);
    System.out.println("ItcastMan成员变量:" + this.age);
    System.out.println("Chinese成员变量:" + super.age);
    System.out.println("Person成员变量:" + p1.age);

    方法重写

    子类中继承父类方法的特点:
        1.在子类中可以继承父类中的非私有属性和方法
        2.子类对象中可以书写新的方法
        3.子类中和父类中相同的方法可以进行覆盖,这个叫做重写
            注意: 重写方法时要使用override
                 父类中的私有方法不能重写,但是可以书写与其同名的子类方法
                 重写父类方法时,不能比父类的权限更低
    
        4.子类中可以重载父类中的方法
  6. 多态

    多态: 在不同的环境下,展现出不同的状态就是多态.
    java中的多态: 在继承关系中,使用父类创建子类对象时,不同的子类对象所执行的效果不相同
    
    多态的前提:1.要有继承关系 2.方法重写3.父类引用指向子类对象
    
    多态情况下调用成员的规则:
    调用成员变量: 当前父类引用指向子类对象,调用成员变量时,调用的是父类的成员变量
    调用成员方法: 当前父类引用指向子类对象,调用成员方法时,调用的是子类的成员方法
    
    在应用java的多态时,一般都会使用子类对象调用子类中的方法,而不会使用其调用变量,因为调用变量提现不出来多态多此一举
    如果使用get 或者set 方法进行数据处理,调用的是子类的

    多态的弊端

    多态中有几个弊端:
    1. 无法通过子类的对象调用子类中特有的功能
    解决方法:向下转型
    
    转型方法:
    向上转型:从子类向父类转型(自动)
    父类名称 对象名 = (子类对象);
    父类名称 对象名 = new 子类名();
    
    向下转型:从父类向子类进行转型(强制)
    子类对象 对象名  = (子类名)(父类对象);
    子类对象 对象名  = (子类名)(new 父类名());
    
    向下转型时一定要具备继承关系,否则报错
  7. final和static

    final

    final 关键字:
    代表当前被修饰的内容已经是最终状态,不能被修改只能被使用
    可以修饰类:此类不能被继承,但是可以继承其他的类, 一般作为工具类使用
    可以修饰成员变量:此时成员变量变为常量,只能在定义时赋值一次,后续不可赋值或修改
    可以修饰方法:此方法可以被继承,但是不能被重写.

    static

    static 静态
    1.使用static修饰成员变量: 所有的对象所共有,修饰完成后,调用时使用类名调用
    可以类比为python中的类属性
    2.使用static修饰成员方法: static中只能调用带static的属性或者方法, 不能使用this super
    可以类比为python中的类方法
  8. 抽象类

    抽象:不具体 或者说没有真实的实现
    抽象方法: 不具备方法体的方法,只是声明的一下方法
    抽象类:具有抽象方法的类叫做抽象类
    
    需求:
    1. 创建抽象类Animal.
    2. 在该类中定义抽象方法eat()
  9. 接口

    接口:就是比抽象类还要抽象的一个类,使用interface进行修饰
    一般接口都是给类添加特殊的功能拓展的
    
    1.使用interface修饰
    2.使用implements继承
    3.在接口中只能书写抽象方法和常量
        抽象方法自动添加 public abstract
        常量中自动添加 public static final
    4.可以使用接口类创建子类对象,调用其功能,实现接口多态
    
    类和接口间的继承:
    1.类和类之间只能单继承,或多级继承
    2.类和接口之间可以单实现,也可以多实现
    3.接口和接口之间,可以多继承,也可以单继承
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
13天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
17 1
|
26天前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
23 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
88 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
1月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
2月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
35 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
32 2
|
2月前
|
消息中间件 分布式计算 Java
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
34 2
|
2月前
|
分布式计算 Java 大数据
大数据-147 Apache Kudu 常用 Java API 增删改查
大数据-147 Apache Kudu 常用 Java API 增删改查
35 1
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
18 0
|
2月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
40 0