大数据实用教程之面向对象进阶

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

大数据实用教程之面向对象进阶:包的创建与使用

是对一个程序中指定功能的部分代码进行包装

构造方法
是一个方法

特殊点:

构造方法没有返回值,不是指的返回值类型是void,而是根本就不写返回值类型
方法名字和类名相同
构造方法不能用static来修饰
构造方法调用的时机:

通俗来讲:是在实例化一个对象的时候调用的
一般情况下,我们在构造方法中做什么:

对对象的某一些属性进行初始化赋值操作
实例化对象的过程:

Person xiaoming = new Person();

new : 表示在堆上开辟空间

执行非静态代码段

然后再执行构造方法:

在构造方法中调用其他的构造方法

可以使用this()的方式来调用其他的构造方法

注意事项:

this() 必须写在构造方法的第一行
不能循环调用
无参构造方法需要注意的问题

如果一个类中没有写构造方法,此时这个类具有一个默认的public权限的无参构造方法
如果一个类中写构造方法了,此时这个默认的public权限的无参构造方法将不再提供
代码块
非静态代码段

静态代码段

static {

}
// 当这个类第一次被加载到内存中的时候执行
// 当你第一次使用这个类的时候执行(实例化对象、调用静态方法...)
private关键字与属性封装
是一种编程思想:

狭义上的封装:

​ 一个类中的某一些属性,我们不希望外界直接访问。(外界赋的值可能不是我们想要的值)。此时,我们可以将这个属性私有化(private),杜绝了外界直接访问这个属性的可能性。但是我们还需要再去提供用来访问这个属性的方法。(设置值、获取值)(setter/getter)

private:

​ 是访问权限修饰符的其中之一,可以用来修饰属性和方法。被private修饰的成员,只能够在当前的类中访问

单例设计模式

设计模式:

​ 是前人总结出来的,用来解决特定问题的一个解决方案。

单例设计模式:

​ 用来解决,在不同的模块中,我们需要访问到同一个类的同一个对象。

关于私有化构造方法:

​ 其实这个操作,在单例中是不必须的。

饿汉式

/**

  • 在这个单例设计的过程中,只要我们用到了这个User类,instance都会实例化
  • 此时,instance可能我们并不会使用到。所以会造成一定程度上的性能损耗。
    */

class User {

// 声明一个私有的、静态的、当前类的对象,并实例化
// 因为这个instance是静态的,实例化的过程只会执行一次
private static User instance = new User();
// 提供一个public权限的、静态的、返回当前类对象的方法
public static User getUser() {
    // 将刚才实例化的instance返回,因为这个instance只会实例化一次,所以无论这个方法执行多少次,最终返回的结果都是同一个对象
    return instance;
}

}
懒汉式

/**

  • 使用的时候再去实例化instance,没有多余的资源浪费
  • 这种方式,在多线程环境中有问题
    */

class User {

// 声明一个私有的、静态的、当前类的对象,不对他进行实例化
// 什么时候需要获取这个对象的时候,再去实例化
private static User instance;
// 提供一个public权限的、静态的、返回当前类对象的方法
public static User getUser() {
    // 在使用的时候,判断instance是不是null, 如果是,对他做实例化,如果不是,直接使用即可
    if (instance == null)
        instance = new User();
    
    return instance;
}

}

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
大数据 Java Shell
大数据Azkaban常见工作流进阶实战
大数据Azkaban常见工作流进阶实战
160 0
|
5月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【7月更文挑战第22天】在大数据领域,Python算法效率至关重要。本文深入解析时间与空间复杂度,用大O表示法衡量执行时间和存储需求。通过冒泡排序(O(n^2)时间,O(1)空间)与快速排序(平均O(n log n)时间,O(log n)空间)实例,展示Python代码实现与复杂度分析。策略包括算法适配、分治法应用及空间换取时间优化。掌握这些,可提升大数据处理能力,持续学习实践是关键。
129 1
|
6月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
153 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
|
6月前
|
分布式计算 Hadoop 大数据
【大数据】Hadoop下载安装及伪分布式集群搭建教程
【大数据】Hadoop下载安装及伪分布式集群搭建教程
265 0
|
7月前
|
大数据 调度 Python
Python大数据之Python进阶(七)线程的注意点
Python大数据之Python进阶(七)线程的注意点
49 0
|
7月前
|
大数据 Python
Python大数据之Python进阶(六)多线程的使用
Python大数据之Python进阶(六)多线程的使用
67 0
|
7月前
|
大数据 调度 Python
Python大数据之Python进阶(五)线程
Python大数据之Python进阶(五)线程
36 0
|
7月前
|
大数据 Python
Python大数据之Python进阶(四)进程的注意点
Python大数据之Python进阶(四)进程的注意点
83 0
|
7月前
|
大数据 Python
Python大数据之Python进阶(三)多进程的使用
Python大数据之Python进阶(三)多进程的使用
61 0
|
7月前
|
大数据 Python Windows
Python大数据之Python进阶(二)多任务编程-进程
Python大数据之Python进阶(二)多任务编程-进程
73 0