主构造器和辅助构造器的细节|学习笔记

简介: 快速学习主构造器和辅助构造器的细节。

开发者学堂课程【Scala 核心编程-基础:主构造器和辅助构造器的细节】学习笔记,与课程紧密联系,让用户快速学习知识。

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


主构造器和辅助构造器的细节

 

内容简介

一、对之前所讲的进行版述

 

一、对之前所讲的进行版述

先把之前所讲的内容进行版述

首先讲了对构造器的介绍,其次讲了构造器的基本语法,然后讲了构造器的快速入门案例,之前在讲快速入门案例时,并没有详解,只是大概了解了以下,案例会放在笔记中;

再次讲了构造器的五个注意事项和细节,有以下内容:

1Scala 构造器作用是完成对新对象的初始化,构造器没有返回值

2、主构造器的声明直接放置于类名之后[反编译]

3、主构造器会执行类定义中的所有语句,代码中除了函数,其他都会被执行;

4、如果主构造器无参数,小括号可省略,构建对象时调用的构造方法的小括号也可以省略。如:

class AA{

}

val a = new AA

val b = new AA()

5、辅助构造器名称为 this(这个和 Java 是不一样的),多个辅助构造器通过不同参数列表进行区分,在底层就是构造器重载。里面有继承的逻辑,主要是对父类的构造逻辑。

接下来对剩下两个细节进行讲解。

6如果想让主构造器变成私有的,可以在()之前加上.private,在形参列表前加 Private 便可以了,这样用户只能通过辅助构造器来构造对象了【反编译】

代码设置:class Person2 private( ){}

7、辅助构造器的声明不能和主构造器的声明一致,会发生错误(即构造器名重复)。因为完全一样,代表着写了两个完全一样的方法,这样肯定是跑不起来的,虽然主构造器是主构造器,但反编译之后,地位跟辅助编译器是完全一样的。

举例:

在代码 class Person2 private( )中的括号里添加 str:string,写成 class Person2 private(str:string )代码,代码中的 this 部分便会被标红,这样写本就有了主构造器,然后添加的部分跟字符串没有不同,要想 this 部分不被报错,可以在 this 后面加上字符串,但是建议不要有这种做法,这样很容易导致构造器重名。

到这里,构造器的细节便结束了。

相关文章
|
16天前
|
Java
【专栏】Java反射机制,该机制允许程序在运行时获取类信息、动态创建对象、调用方法和访问属性
【4月更文挑战第27天】本文探讨了Java反射机制,该机制允许程序在运行时获取类信息、动态创建对象、调用方法和访问属性。反射通过Class、Constructor、Method和Field类实现。文中列举了反射的应用场景,如动态创建对象、调用方法、访问属性和处理注解,并提供了相关实例代码演示。
|
25天前
|
前端开发 JavaScript
怎样使用接口引用数据
怎样使用接口引用数据
|
4月前
|
监控 安全 Java
Java反射:深入了解动态类操作
Java反射:深入了解动态类操作
71 0
|
11月前
|
安全 Java
创建对象的相关知识补充
创建对象的相关知识补充
49 0
|
缓存 IDE API
C#反射与特性(五):主类型成员操作
C#反射与特性(五):主类型成员操作
340 0
C#反射与特性(五):主类型成员操作
|
Java
Java面向对象(1)--对象的创建使用类的实例化
Java面向对象(1)--对象的创建使用类的实例化
69 1
|
Java 编译器 Scala
主构造器和辅助构造器|学习笔记
快速学习主构造器和辅助构造器。
137 0
|
设计模式
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
|
Python
Python编程:类的实例动态增加属性和方法
Python编程:类的实例动态增加属性和方法
104 0
|
Java API
一网打尽“类”的初始化实例化知识点
之前说了类加载的过程,但是有的读者表示还是有些面试题还是答不来,所以今天就来总结下类加载、对象实例化方面的知识点/面试题,帮助大家加深印象。
119 0
一网打尽“类”的初始化实例化知识点