Scala面向对象练习题34道
2021/4/12 18:25:40
本文主要是介绍Scala面向对象练习题34道,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、创建一个名字为Test01的Object,在Test01中
定义一个student1类
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
2、创建一个名字为Test02的Object,在Test02中
定义一个student2类
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
定义成员方法hello(s:String),方法中打印出s
3、创建一个名字为Test03的Object,在Test03中
定义一个student3类
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
通过主构造器参数列表定义姓名和年龄字段为张无忌和25,并在主构造器方法中打印出“student3主构造器初始化”
4、创建一个名字为Test04的Object,在Test04中
定义一个student4类
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
通过主构造器参数列表定义姓名和年龄字段为默认值,并在主构造器方法中打印出“student4主构造器初始化”
通过辅助构造器把姓名和年龄更新成赵敏和20,主方法调用辅助构造输出姓名和年龄
5、创建一个名字为Test05的Object,在Test05中
定义一个student5类
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
通过主构造器参数列表定义姓名和年龄字段为默认值,并在主构造器方法中打印出“student5主构造器初始化”
构建两个辅助构造方法,第一个辅助构造方法的参数为name和age为默认值,输出打印“student5调用第一个辅助构造方法”
第二个辅助构造方法的参数为address赋值为北京,输出打印“student5调用第二个辅助构造方法”+address
6、创建一个名字为Test06的Object,在Test06中
声明一个 String 类型的name赋值为“大数据”
定义一个hello方法无参数,输出为“你好”+name
在此文件中创建一个student6单例,调用Test06的hello方法
7、创建一个名字为Test07的类,在Test07中
声明一个string类型的name私有变量,赋值为小明
定义一个私无参方法,名字为eat,输出为:name+“是吃货!”
在此文件中创建一个半生对象Test07,在半生对象中调用Test07类中的eat方法
8、创建一个名字为Test08的类,在Test08中
声明一个string类型的name变量,赋值为"继承Test08"
再此文件中创建一个cat类,继承Test08类,定义一个无参方法hello,输出name
9、创建一个名字为Test09的类,在Test09中
声明一个可变string类型的name变量,赋值为“单例继承Test08”
在此文件中创建一个dog单例继承Test08
在此文件中创建Main08单例,使用dog调用name
10、创建一个名字为Test10的Object
在此文件中创建一个animal类
在animal类中声明一个可变字符串类型的name变量,赋值为动物
在animal类中定义一个无参成员方法eat,输出为this.name+“吃水果”
在此文件中创建一个cat类
在cat类中重写name变量,赋值为猫
在cat类中重写方法eat,输出为this.name+“吃鱼”
在此文件中创建主方法,创建cat对象,调用eat方法
11、创建一个demo11的单例,在demo11中创建一个样例类名字为student11,成员变量为name:String, age:Int
创建主方法实例化student,并传参数(“xiaoming”,20),打印输出student1对象到控制台
12、创建一个demo12的单例,在demo12中创建一个样例类名字为student12,成员变量为name:String, age:Int
创建主方法实例化student12,并传参数(“xiaoming”,20),修改student2对象的age=25,打印输出student2对象到控制台
13、创建一个demo13的单例,在demo13中创建一个样例类名字为student13,成员变量为name:String, age:Int
创建主方法,使用apply方法实例化student3,并传参数(“xiaoming”,18),使用toString输出对象到控制台
14、创建一个demo14的单例,在demo14中创建一个样例类名字为student14,成员变量为name:String, age:Int
创建主方法,并创建a和b两个样例对象,参数都是(“xiaoming”,18),分别使用==和equals两种方式判断a和b对象是否相等
15、创建一个demo15的单例,在demo15中创建一个样例类名字为student15,成员变量为name:String, age:Int
创建主方法,创建三个样例对象a(“xiaoming”,18),b(“xiaoming”,19),c(“xiaoming”,20),分别输出a,b,c的哈希值到控制台
16、创建一个demo16的单例,在demo16中创建一个样例类名字为student16,成员变量为name:String, age:Int
创建主方法, 创建一个实例对象a(“xiaoming”,18),使用copy方法创建另一个对象b(“xiaoli”,20),并输出对象b到控制台
17、创建一个demo17的单例,在demo17中定义一个性别Sex特质,定义两个样例对象并继承了Sex特质,分别为Male 和Female
创建一个样例类名字为student17,成员变量为name:String, sex:Sex,创建主方法, 创建一个实例对象a(“xiaoming”,Male),打印输出对象a
18、创建一个demo18的单例,在demo18中创建一个样例类名字为student8,成员变量为name:String, age:Int
创建主方法,并创建a,b,c三个对象,参数分别为(“zhangsan”,10)(“lisi”,20)(“wangwu”,30),把这三个对象添加到List列表中
循环遍历列表,使用match case进行匹配,匹配到的对象如果是student8(“zhangsan”,10),打印输出“zhangsan”,
匹配到的对象如果是student8(“lisi”, 20),打印输出“lisi”,匹配到的对象如果是其他的,打印输出“没有匹配上”
19、创建一个demo19的单例,在demo19中请使用 StdIn.readLine()方法,在控制台输入数据,使用match case进行匹配,
输入1,输出为孙悟空
输入2,输出为猪八戒
输入3,输出为沙和尚
输入0,输出为唐僧
输入其他的,输出为未匹配
20、创建一个demo20的单例,在demo20中使用模式匹配数组
Array(10,x,y,z) ,输出为以10开头,后续的三个元素不固定
Array(6) 输出为 只匹配一个6元素的元素
Array(scala, …) 输出为可以任意数量,但是以0开头的数组
其他的,输出为没有匹配上
21、创建一个demo21的单例,在demo21中使用模式匹配列表
定义一个列表为List(1,2,3),分别匹配输出为只有1的列表,1开头的列表,只有两个元素${x}, ${y}的列表,未匹配到
22、创建一个demo22的单例,在demo22中
22.1、定义一个值为5的Option实例a
val a : Option[Int] = Some(5)
22.2、定义一个无值的Option实例b
val b : Option[Int] = None
23、创建一个demo23的单例,在demo23中
23.1、定义一个两个数相除的方法,使用Option类型来封装结果
23.2、然后使用模式匹配来打印结果
23.3、o不是除零,打印结果
23.4、o除零打印异常错误
24、创建一个demo24的单例,在demo24中使用findAllMatchIn进行匹配
定义一个正则表达式,来匹配邮箱是否合法
定义一个合法邮箱测试:666888@163.com
定义一个不合法的邮箱测试:666888@.com
25、创建一个demo25的单例,在demo25中使用try…catch来捕获除零异常
定义一个变量为 a= 100/0,使用try catch进行捕获异常,并打印输出异常信息
26、创建一个demo26的单例,在demo26中
定义一个List((“xiaoming1”,“男”,18),(“xiaohua1”,“女”,20),(“xiaomeng”,“男”,18),
(“xiaoli1”,“女”,19),(“xiaoming2”,“男”,22),(“xiaoli2”,“女”,17),(“xiaoming4”,“男”,28))
26.1、把每个人的年龄改成之前的3倍
26.2、把每个人的年龄改成之前的2倍,之后再这个基础上进行减一
26.3、年龄小于20的过滤掉
26.4、性别是女的过滤掉
26.5、计算一下所有人的总年龄
26.7、请按照年龄从小到大排序
26.8、请按照年龄从大到小排序
26.9、把每个人的姓名性别年龄合成一个输出
26.10、把年龄为奇数和偶数的人分开
27、创建一个demo27的单例,在demo27中
创建List(“hello world”, “alibaba hello”, “hello hello hello”)
请把每个元素按照空格进行切分,并打印输出
28、创建一个demo28的单例,在demo28中
创建一个List中含有(1,2,3,4,5,6,7,8,9,10)
将list0中的每一个元素乘以10后生成一个新的集合
将list0中的偶数取出来生成一个新的集合list1
将list0中的奇数取出来生成一个新的集合list2
reduce 计算list1所有数的和
reduce 计算list2所有数数组的乘积
将list1的数据降序排列
将list2中的数据进行翻转
创建一个list中包含多个list多个list压平, 也就是抽取出来
29、创建一个demo29的单例,在demo29中
var A0 = Array(1, 4, 10, 3, 6)
var A1 = Array(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5)
var A2 = Array(“zhangsanlisiwnagwu”, “hadoophivehbase”, “biejinghanghainanjing”)
将A1中的数据进行升序排序
遍历A0中的数据,将返回的结果每个都2
找出A1中除余3等于1的数返回
将A2中的数据拆分之后重新返回一个新的Array
将A1中的数字累加计算结果
30、创建一个demo30的单例,在demo30中
var arr0=array(11,5,7,2,1,2,3,4,5,6)
var arr1=array(“1,2,3,4”,“6,7,8,9”,“1,2,3,4”)
1.现有一个数组arr0,请将每个元素乘以10,只保留大于40的数并打印。
2.求出arr0中每个元素10倍的乘积
3.将arr1中每个字符串用","切分,组成一个新的集合,并且求出数组的长度
4.将arr0进行奇数偶数分区,基数分区进行正序排序,偶数部分倒序排序
31、创建一个demo31的单例,在demo31中
var A1 = Array(6, 7, 8, 9, 10, 1, 2, 3, 4, 5)
var A2 = Array(“11,22,33”, “44,55,66”, “77,88,99”)
1.遍历输出A1,并将每个数2且输出
2.A1升序
3.A1降序
4.A1奇数偶数分开
5.将A2中每个字符串用",“切分,组成一个新的集合,并且求出数组的长度
6.将A2中每个字符串用”,"切分,组成一个新的集合,并且将每个数除11把大于5的数输出
32、创建一个demo32的单例,在demo32中
创建一个val lst0 = List(1,7,9,8,0,3,5,4,6,2)
将lst0倒序排序
将lst0中的偶数取出来生成一个新的集合lst1
将lst1反转
求lst1的和
var A1 = Array(“1,2,3”, “4,5,6”, “7,8,9”)
将A1中字符串用“,”切分,生成新的集合,并将奇数偶数分开打印
33、创建一个demo33的单例,在demo33中
1.创建一个名为list的List(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5)列表
2.使用map方法和foreache方法list遍历
3.将集合内数据10产生一个新的列表L2
4.将L2中的所有偶数取出来产生一个新的列表L3
5.计算L3数据的总和
6.将L3倒序排序
7.将L3反转
8.创建新list1数据为 List(Array(11,22,33), Array(44,55,66))
9.使用flatten将list列表合并成一个新的列表
10.将list奇数偶数分开打印
34、创建一个demo34的单例,在demo34中
var a0 = Array(1, 2, 3, 4, 5)
var a1 = Array(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5)
1.现有一个数组a0,请将每个元素10,只保留小于10的数并打印。
2.求出a0中每个元素10倍的乘积并降序输出
3.求a1中大于10的数据的总和
4.将a0进行奇数偶数分区,基数分区进行正序排序,偶数部分倒序排序
这篇关于Scala面向对象练习题34道的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享