【Scala中的package】

Scala中的package

package com.zishi.scala.a03.pack/*** 使用打包技术来解决不同包下Cat类*/
object Demo {import com.zishi._val cat = new abc.Cat()val cat2 = new deg.Cat()
}package com.zishi.abc {class Cat {}
}package com.zishi.deg {class Cat {}
}/*** 包也可以像嵌套类那样嵌套使用(包中有包),* 这个在前面的第三种打包方式已经讲过了,* 在使用第三种方式时的好处是:程序员可以在同一个文件中,将类(class / object)、trait 创建在不同的包中,这样就非常灵活了。*/package com.zishi2 {// 在 com.zishi2包下面的类class User {}// 类对象就是在Monster$, 也在com.zishi2包下面object Monster {}package order {// 在 com.zishi2.order包下面的类class User {}}}/*** 3)作用域原则:可以直接向上访问。即: Scala中子包中直接访问父包中的内容,* 大括号体现作用域。(提示:Java中子包使用父包的类,需要import)。* 在子包和父包 类重名时,默认采用就近原则,如果希望指定使用某个类,则带上包名即可。*/
package com.amcre {//这个类就是在com.amcre包下class User {}//这个类对象就是在Monster$ , 也在com.amcre包下object Monster {}class Dog {}package scala {//这个类就是在com.amcre.scala包下class User {}//这个Test 类对象object Test {def main(args: Array[String]): Unit = {//子类可以直接访问父类的内容var dog = new Dog()println("dog=" + dog)//在子包和父包 类重名时,默认采用就近原则.var u = new User()println("u=" + u)//在子包和父包 类重名时,如果希望指定使用某个类,则带上包路径var u2 = new com.amcre.User()println("u2=" + u2)}}}}/*** 父包要访问子包的内容时,需要import对应的类等*/
package com.zishi {//引入在com.atguigu 包中希望使用到子包的类Tiger,因此需要引入.//这个类就是在com.atguigu包下class User {}package scala {//Tiger 在 com.atguigu.scala 包中class Tiger {}}import com.zishi.scala.Tigerobject Test2 {def main(args: Array[String]): Unit = {//如果要在父包使用到子包的类,需要importval tiger = new Tiger()println("tiger=" + tiger)}}
}/*** 5)可以在同一个.scala文件中,声明多个并列的package(建议嵌套的pakage不要超过3层)*/
package d {}package a {package b {package c {class Person {}}}}/*** 6)包名可以相对也可以绝对,比如,访问BeanProperty的绝对路径是:_root_.scala.beans.BeanProperty ,* 在一般情况下:我们使用相对路径来引入包,只有当包名冲突时,使用绝对路径来处理。*/
package com.abc.aaa {class Manager(var name: String) {//第一种形式//@BeanProperty var age: Int = _//第二种形式, 和第一种一样,都是相对路径引入//@scala.beans.BeanProperty var age: Int = _//第三种形式, 是绝对路径引入,可以解决包名冲突@_root_.scala.beans.BeanProperty var age: Int = _}object TestBean {def main(args: Array[String]): Unit = {val m = new Manager("jack")println("m=" + m)}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA基础06-面向对象,构造器,递归以及对象创建时内存分析(内含代码与练习)

面向对象的概念以及特征 概念 实质上将 "数据" 与 "行为" 的过程, 以类的形式封装起来, 一切以对象为中心语言。 面向对象的程序设计过程中有两个重要概念:类(class)和对象(也称为实例)。 其中…

【Css】table数据为空,以“-“形式展现

解决:class类名 它表示的是在一个名为class类名的元素内部,当该元素为空时,会在该元素的:before伪元素上应用一些样式。 这种写法通常用于在元素内容为空时,添加一些占位符或者提示文字

代码随想录算法训练营第五十五天 | 392. 判断子序列、115. 不同的子序列

代码随想录算法训练营第五十五天 | 392. 判断子序列、115. 不同的子序列 392. 判断子序列题目解法 115. 不同的子序列题目解法 感悟 392. 判断子序列 题目 解法 题解链接 自己的想法实现 class Solution { public:bool isSubsequence(string s, string t) {if(s.size() >…

20240328-1-Prophet面试题

Prophet面试题 1. 简要介绍Prophet 常见的时间序列分解方法: 将时间序列分成季节项 S t S_t St​,趋势项 T t T_t Tt​,剩余项 R t R_t Rt​,即对所有的 t ≥ 0 t≥0 t≥0 y t S t T t R t y_{t}S_{t}T_{t}R_{t} yt​St​Tt…

人员聚集监测识别摄像机

随着科技的不断发展,人员聚集监测识别摄像机已经成为了现代社会安全管理的重要工具。这种摄像机能够对人员聚集的情况进行实时监测和识别,帮助相关部门及时发现和处理潜在的安全风险。 人员聚集监测识别摄像机可以通过高清晰度的摄像头和先进的人脸识别技…

windows的jar包开机自启动【搬代码】

感觉最方便的就是放到启动项目里操作步骤 winR 输入:shell:startup回车或点击确定 3.将自己jar包右键创建快捷方式 4.然后放进去 5.重启电脑,浏览器输入网址,就可以看到重启成功了 另外一个就是放入.exe文件的快捷方式 首先,…

原版Win7 本地离线安装.netframework 4.8

.NET Framework 4.8.Net Framework 4.8 所需补丁编号:KB2813430(不受信任证书的自动更新程序).Net Framework 4.8 所需跟证书: MicRooCerAut2011_2011_03_22.crt下载地址: Microsoft Update Catalog https://www.ca…

OpenGL 多重采样抗锯齿(MSAA,Multisample Anti-Aliasing)

多重采样抗锯齿(MSAA,Multisample Anti-Aliasing)是一种用于减少图形渲染中锯齿(aliasing)效应的技术。 锯齿是怎样产生的? 锯齿效应是由于在屏幕上渲染的图形对象边缘处像素颜色变化突然而导致的,它使得图形看起来不够平滑,影响了视觉质量。 如图示,我们渲染一个三…

tinyfsm的实现

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言tinyfsm的实现概念使用 tinyfsm 的一般步骤C实现tinyfsmC实现tinyfsm示例一:C++实现tinyfsm示例二:C++实现tinyfsm前言 认知有限,望大家多多包涵…

vue模版字符串解析成vue模版对象

模版字符串 this.code <template><div style"width:100% ; height: 100% ;">{{resultData[0].name}}</div> </template> <script> export default {data() {return {resultData: [{ name: 图幅, value: 20 },]}},mounted(){},method…

音乐文件逆向破解

背景 网易云等在线音乐文件的加密源码都按照一定的规则加密&#xff0c;通过对音乐文件的源码分析转化&#xff0c;有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…

【Node】Node.Js--fs文件系统模块

文件包含文件形式和目录形式 1. 获取文件信息状态 fs.stat() 异步方法 fs.stat(path,callback)&#xff0c;path表示文件路径&#xff1b; callback是指回调函数&#xff0c;有两个参数&#xff1a;(err,stats)&#xff0c;其中stats是fs.stat的实例&#xff1b;fs.statsync(…

运费计算(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int distance, c;float weight, price, discount, fee;//提示用户&#xff1b;printf("请输入路程&#xff0c;单价…

1.JAVASE练习题(递归篇)

1.递归求解汉诺塔问题 public static void move(char pos1,char pos2) {System.out.print(pos1"->"pos2" "); }public static void hanoi(int n,char pos1,char pos2,char pos3) {if(n 1) {move(pos1,pos3);return;}hanoi(n-1,pos1,pos3,pos2);move(p…

gitlab(docker)安装及使用

GitLab GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务。 下载(docker) 查询docker镜像gitlab-ce gitlab-ce是它的社区版 [rootlocalhost ~]# docker search gitlab-ce NAME …

Redis入门到通关之Set实现点赞功能

文章目录 set 数据类型介绍不排序实现排序实现 set 数据类型介绍 Redis中的set类型是一组无序的字符串值。 set通过其独特的数据结构和丰富的命令提供了在存储和处理集合元素方面的一些非常有用的功能。下面列出了主要的set类型命令&#xff1a; SADD key member1 [member2]&a…

树莓集团参加中国国际消费品博览会,聚焦数字文创产业发展与未来!

2024年4月13日上午&#xff0c;第四届中国国际消费品博览会&#xff08;以下简称“消博会”&#xff09;在海南海口隆重开幕。树莓科技&#xff08;成都&#xff09;集团有限公司董事长王凯、副总裁吴晓平受邀出席本次盛会。 消博会是亚太地区规模最大的消费精品展&#xff0c;…

C语言经典例题(3)

1.奇偶统计 题目描述: 任意输入一个正整数N&#xff0c;统计1~N之间奇数的个数和偶数的个数&#xff0c;并输出。 输入描述: 一行&#xff0c;一个正整数N。&#xff08;1≤N≤100,000&#xff09; 输出描述: 一行&#xff0c;1~N之间奇数的个数和偶数的个数&#xff0c;用空…

DS1390/DS1391和低电压三线DS1392/DS1393实时时钟(RTCs)的数据手册

这份文件是关于Maxim Integrated Products公司生产的低电压串行外设接口&#xff08;SPI™&#xff09;DS1390/DS1391和低电压三线DS1392/DS1393实时时钟&#xff08;RTCs&#xff09;的数据手册。这些设备提供秒、分钟、小时、日期、月份和年份的时间信息&#xff0c;并能自动…

每日汇评:中东局势升级,黄金重拾 2350 美元,还有可能上涨吗?

周六晚伊朗袭击以色列后&#xff0c;金价因避险而上涨&#xff1b; 美元未能从地缘政治动荡和美国国债收益率上升中受益&#xff1b; 在美国零售销售数据公布之前&#xff0c;金价与 4 小时 RSI指标一起上行&#xff1b; 周一早些时候&#xff0c;金价正在巩固其反弹至 2350 美…