温故知新|学习笔记

简介: 快速学习温故知新。

开发者学堂课程【Scala 核心编程-基础:温故知新】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8966


温故知新

 

内容介绍:

一、方法

二、属性高级

三、Scala 对象构建流程分析

四、包

五、包的可见性问题

六、面对对象编程方法-抽象

 

一、方法

1、方法是什么

方法从本质的角度来看,方法和函数是一个意思,声明规则需要参考函数式编程中的函数声明。

使用的过程中如果用到函数式编程就变成函数,如果是 OP,仍然是方法方法和函数的定义包括运行机制,细节都是一样的

2、对于构造器的理解

1)使用时间:当在 Scala 里面创建一个对象时需要在创建时直接给它指定一些属性,这时就会用到造器

2)使用注意事项:在用的时候,要注意跟 JAVA 不一样的地方就是它有主构造器和辅助构造器。主构造器是在内名后面声明的。辅助构造器它是用 ZS 关键字来进行区分。

3阻隔造器的方法:它会把内体里面的方法和变量定义,都执行一遍,这个是它一个特色。

 

二、属性高级

属性高级部分就是 VAL 和 VAR 的一个区别。

Class dog(age:int){

}

Class dog2( val age:int){

}

Class dog3(var age:int){

}

这三者的区别在于:

1. 第一个 age 就是一个局部变量,用完就结束,其实就是参数

2. 第二个 val age 说明会在 dog 内生成一个只读属性

3. 第三个 var age 说明会生成一个可读写的属性

 

三、Scala 对象构建流程分析

1. 加载类的信息(属性信息,方法信息)

2. 在内存中(堆)开辟空间


3. 使用父类的构造器(主和辅助)进行初始


4. 使用主构造器对属性进行初始化【age∶90,naem nul】

5. 使用辅助构造器对属性进行初始化 【 age∶20.naem 小情 】

6. 将开辟的对象的地址赋给 p 这个引用


其中第三点最为重要:当去构建一个对象的时候呢,其实它里面隐藏了一个父类构造器和组。父类会首先去调用父类的构造器。

 

四、包

包里面的内容特别多。包scala 里面功能强大。它主要体现在几下几点:

1、在一个文件里可以同时创建多个包,且在这个包里面直接可以给每一个包创建自己的内容。比如说类,class,object 等。也就是说,一个文件可以把很多东西全部搞定

2、引出了一个新的一个技术包对象。包对象最主要的作用是弥补。因为包不能去定义或者声明变量和方法,这时需要包对象来做弥补。

补充面试题:为什么给包写了包对象,包就可以直接去引用包对象的应用及方法?

回答:这时需要用包对象的底层实现机制来回答。当创建一个包对象后,会生成两个类,一个 package 和一个package$(即使当给一个包写了一个包对象,给另外一个包又写了一个包对象,这两个包对象他们在底层生的这个类名一定都是名字。)具体使用方法,其实底层还是引用static。

Scala 里面实现镜像单例核心就是依靠:public static final MODULE

 

五、包的可见性问题

案例:

package com. atguigu. chapter07 .homework

object Exercise05 {

def main(args: Array[String]): Unit = {

println("xx")

}

}

class Monster{

var age: Int=1

private var name :String=“”

protected var sal :Double = 0.01

}

此时运行,得到如下结果:

image.png

此时发现,在 scala 内把可见类型做了简化。在 scala 当中,只有两个逻辑:是否能被外界访问。如果可以被外部访问,就全部提供 public 方法,如果不能被访问,就全部私有化。

言而总之:在 scala 当中,只有两种属性,、:公用 public,私有 private。

 

六、面对对象编程方法-抽象

这部分只需要知道:面向对象抽象是一种研究问题的方法

相关文章
|
8月前
|
存储 关系型数据库 分布式数据库
|
8月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:高可用-无感切换篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,单位成本仅0.8元人民币。PolarDB通过VotingDisk实现秒级故障切换,RPO=0,提供高可用性。PolarDB还推出国产轻量版,兼具高性能与低成本,满足多样化需求。
|
监控 关系型数据库 分布式数据库
【PolarDB开源】PolarDB故障恢复机制:快速恢复与数据一致性保障
【5月更文挑战第22天】阿里云PolarDB的故障恢复机制保证了云数据库的高可用性和一致性。通过ROW快照备份和增量日志,实现秒级备份和恢复,确保数据安全。日志分析快速定位故障,启用备用实例实现快速恢复。分布式事务和强一致性读等技术保障数据一致性。这套全面的解决方案使PolarDB在云原生数据库中表现出色。
846 10
|
关系型数据库 MySQL Serverless
PolarDB MySQL Serverless:灵活弹性场景深度评测
本文深入评测了阿里云PolarDB MySQL Serverless的灵活弹性场景。作为阿里云专业运维工程师,笔者从多个角度对产品进行了全面分析: 产品特性:介绍了PolarDB MySQL Serverless的核心优势,包括动态弹性、高可用性和按量付费模式。 操作体验:详细描述了集群创建过程和控制台监控功能,突出了其简化运维的特点。 弹性能力:通过三个测试场景验证了产品在不同负载下的自动扩缩容能力,展示了其快速响应和性能稳定性。 API与文档:评估了API的易用性和文档的完整性,并提出了改进建议。 优劣分析:总结了产品的主要优势,如极致弹性和成本效益,同时指出了一些潜在的改进空间。 整体
|
存储 关系型数据库 分布式数据库
云原生关系型数据库Polar DB MySQL版(二)
云原生关系型数据库Polar DB MySQL版(二)
539 0
|
存储 SQL 容灾
PolarDB-X 存储引擎核心技术 | Paxos多副本
PolarDB-X作为PolarDB分布式版,是阿里巴巴自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。PolarDB-X在架构上可以简单分为CN节点和DN节点。计算节点CN负责SQL的解析和执行,存储节点DN负责数据的分布式事务和高可用存储。本文主要对存储引擎核心中高可用部分详细技术解读。
|
存储 关系型数据库 分布式数据库
【PolarDB开源】PolarDB高可用架构解析:确保业务连续性的关键设计
【5月更文挑战第22天】阿里云PolarDB是一款高可用、高性能的云原生数据库,采用分布式共享存储架构实现计算与存储分离。通过主从复制保证数据实时同步,当主节点故障时,从节点能快速接管。此外,PolarDB提供自动故障转移和数据备份恢复功能,确保业务连续性和数据安全性。一个简单的Python SDK使用示例展示了查询数据的过程。总之,PolarDB通过多种机制保障了企业在异常情况下的服务稳定和数据完整性。
486 5
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之读写分离是否有延时时间
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
存储 SQL 关系型数据库
MySQL 5.7和 MySQL8.0 InnoDB auto_increment 初始化的区别
在MySQL 5.7及之前,自动递增计数器只存于内存,重启后需通过查询确定初始值。从MySQL 8.0开始,计数器变化时写入重做日志,检查点时保存至数据字典,确保重启后能基于持久化的最大值初始化,避免查询,增强连续性和一致性。[[MySQL参考手册, 3099页]](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html)
|
关系型数据库 Serverless 分布式数据库
评测|PolarDB MySQL 版 Serverless
评测|PolarDB MySQL 版 Serverless PolarDB Serverless构建了一个全新的数据库形态,这种情况下,CPU和内存资源因其池化其使用率将会大幅度提升,云原生数据的成本将会远低于自建和RDS等一体化数据库,云原生技术的价值将会得到充分的体现。Serverless数据库能够使得数据库集群资源随客户业务负载动态弹性扩缩,将客户从复杂的业务资源评估和运维工作中解放出来。下面我尝试从几个维度对PolarDB的Serverless能力进行产品测评。
59506 7
评测|PolarDB MySQL 版 Serverless