Day01 -Class类别 精选面试题
30天修炼完成Ruby精选面试题!
我决定从学习Ruby on Rails开始着手!鼓励自己在短期间内专心学习与产出知识,为转职奠定良好的基础。
A.首先:找寻方向,决定主题
我想很多人的状况都跟我一样:想学新的东西、甚至是想转进入新的行业,但又不知道该如何入门。
我以自身的情境为例,假设我从什么都不懂的情况下出发,如何在一年后,成为能够面试成功的Ruby Junior Developer?
后来我受到启发,我决定从「最常被问到的面试题目」着手,我把学习新知识,和自己的旅行经验做连接,如同在地球上探索未知的地方一样,把题目当作地图上的地标一般的扩展知识。
如果我能成功做到的话,相信能鼓励更多台湾朋友勇于挑战自己,勇于尝试,接触更多有趣好玩的信息领域!
B.其次:分配技术写作的时间
身为马拉松跑者,我相信铁人赛就好像跑马拉松一样,比赛的身体、心理调适,是从几个月前就开始,做好充足的准备,才能大幅降低断赛的机率。
1.把写文章的生活规律化
这是我从第一个Coach(生涯教练)身上学到的,要把时间Block下来,专心做好手头上的事。我每天早上九点到下午三点到一个会令自己专心的地方技术文章写作。(还要记得规律运动、还有适时地让眼睛离开电脑休息一下喔!)
2.熟悉IT邦的技术文章发布流程
我在8月到9月这段时间,先练习文章发布,包含使用Markdown语法、草稿与Tag、截图功能上传的功能熟悉。
如同去健身房锻炼肌肉一样,一开始感到不习惯与不舒适(第一个不调节的是:我发的文章会出现轮播在站点首页,也太害羞了吧!如果文章乱写或写错的话会很羞耻的)之类的心理调适。
我也开始看Ruby on Rails项目的在线教学课程,并练习修改一些项目功能,练习调节有bug时的焦虑不耐烦(现在已经接受这是工程师的日常了~拨头发~~)以及练习自己找解答、找不出来也要练习提问与求助。
C.做好准备功夫,然后按照计划,坚持下去(vmwork)!
工欲善其事,必先利其器。任何有自己的电脑的地方就是办公桌,而在自己的网站的地方就是实验场。
1.架好环境
有一个自己的Github帐号,自己的blog和一个可以实作动态功能的网站,就像信息时代的个人名片一样,都是一个优秀工程师基本的工具。有可以自己实作测试代码的地方是很重要的,活学活用,才能了解自己到底有没有弄懂热腾腾学到的新观念与工具!
2.立马开始,坚持到底。
用行动证明一切:)我们来解题吧!
Ruby经典面试题目#01
什么是类别?What is a Class?
类别(Class)能够建立物件实体(Object instance),接收数据(data),并利用方法(method)和数据互动。
以上概念对于程序新手来说,应该会很模糊。我们要了解类别(Class),就必须知道Ruby是一款面向对象程序语言(Object-Oriented Programming,OOP)。
而Ruby的世界里,几乎所有东西都是物件(Object)。包含数值(Numeric,整数与浮点数),布尔值(True or False),字串(String),符号(Symbol,代表固定值),数组(Array),哈希(Hash),范围(Range)到模块(Module)与类别(class)。
每个物件(Object)就像一台小型的机器一样,可以「接收数据」、「处理数据」,并「传递数据」给其他的物件。
面向对象程序语言利用「可重复性」的概念来使软件功能更易于维护。例如,类别(class)具有继承(inheritance)的能力,让子类别直接继承父类别的特性。
举个class的例子试试看,并用.superclass查询父类别,了解继承关系:
class World #建立类别名称「世界」
end
class Country < World #建立「国家」继承了「世界」类别
end
tw = Country.new #建立一个新国家:番薯岛
p tw.class # tw的类别
p tw.class.superclass # tw的的类别(Country)的父类别
p tw.class.superclass.superclass # tw的的类别(Country)的父类别(World)的父类别
在当我们把以上的代码在irb跑出来,会出现:
Country #tw的类别:显示为Country
World #Country的父类别:显示为World
Object #World的父类别:显示为Object
虽然上面的代码好像拗口令,但如果以盖大楼为例就会很直观了:
tw是一楼,Country是二楼,World是三楼,Object是顶楼。
层层上推之后,到了顶楼tw.class.superclass.superclass,输出了Object,
证明从tw,到Country到World都是物件(Object)呢!
这就是Ruby的世界观:)
就算到了顶楼层Object,我们还可以继续下楼梯,用.class往回推实验下去,了解Contry的类别:
p tw.class.superclass.class #World的类别
p tw.class.superclass.class.superclass #World的类别(Class)的父类别
p“-----break-----”
p tw.class.superclass.class.superclass.class #Module的类别
p tw.class.superclass.class.superclass.superclass #Module的父类别
代码显示出来的结果如下:
Class # world的类别是Class
Module # Class的父类别是Module
“-----break-----”
Class # Module的类别是Class
Object # Module的父类别。是。物。件!万物皆物件!众生平等~~
从「模块是类别的父类别」这里,我们还可以发现,类别(Class)与模块(Module)有深厚的关系。那明天的文章就写这个吧~灵感都想好了!嘻嘻。
回到「什么是类别?」
类别(Class)能够建立物件实体(Object instance),接收数据(data),并利用方法(method)和数据互动。
那我们就来用类别、物件、实体变数,和方法,写一个开赛宣言吧!
class TingIsIronman
def initialize
@message =“I'm going to write 30 IT articles in 30 days.”#定义实体变数(instance variable)@message
end
def method
puts @message.gsub(“write”,“create”)#定义方法:`.gsub`,可以取代字串
end
end
object = TingIsIronman.new #建立物件实体(Object instance)
object.method #利用方法和数据互动(xcsjbj)
#=> I'm going to create 30 IT articles in 30 days.
第一天的练习就到这里:)希望能继续解题下去!
Day01 -Class类别 精选面试题的更多相关文章
- Java精选面试题之Spring Boot 三十三问
Spring Boot Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一: Spring Boot.Spring MVC 和 ...
- 2019年Java并发精选面试题,哪些你还不会?(含答案和思维导图)
Java 并发编程 1.并发编程三要素? 2.实现可见性的方法有哪些? 3.多线程的价值? 4.创建线程的有哪些方式? 5.创建线程的三种方式的对比? 6.线程的状态流转图 7.Java 线程具有五中 ...
- Java精选笔试题
合抱之木,生于毫末:九层之台,起于垒土:千里之行:始于足下.赶快测测你的Java基础知识掌握的如何? 1,下列说法正确的是() A.一个文件里可以同时存在两个public修饰的类 B.构造函数可以被重 ...
- Java集合必会14问(精选面试题整理)
前言:把这段时间复习的关于集合类的东西整理出来,特别是HashMap相关的一些东西,之前都没有很注意1.7 ->> 1.8的变化问题,但后来发现这其实变化挺大的,而且很多整理的面试资料都没 ...
- java-部分精选面试题
JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法去内,然后在堆区创建一个java.lang.Clas ...
- Javascript前端面试题
在网上看到了一些Javascript的面试题就整理了下来,后续看到再继续补充. 面试题按类型来分,主要涉及到"技术"与"非技术"两大类,技术类别下涉及到的子类别 ...
- 京东Java面试题(二)
1.set集合从原理上如何保证不重复 1)在往set中添加元素时,如果指定元素不存在,则添加成功.也就是说,如果set中不存在(e==null ? e1==null : e.queals(e1))的元 ...
- jQuery简单面试题
干货 | jQuery经典面试题及答案精选 面试题来啦! 毫无疑问,JavaScript是一门如此有用,但总是被低估的一门语言. 在 jQuery 粉墨登场之前,我们曾经会写出冗长的JavaScrip ...
- HashMap与HashTable面试宝典
u012233832的专栏 初生牛犊 目录视图 摘要视图 订阅 写博客,送money.送书.送C币啦 7-8月博乐推荐文章 砸BUG 得大奖 100%中奖率 微信开发学习路线高级篇上线 ...
随机推荐
- Spring Boot - AOP(面向切面)-切入点表达式
切入点指示符用来指示切入点表达式目的,在 Spring AOP 中目前只有执行方法这一个连接点,Spring AOP 支持的 AspectJ 切入点指示符,切入点表达式可以使用 &&. ...
- Windows + Flask + Apache + wsgi踏坑总结
据前人踏坑经历,拷贝如下: 1. Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,要么都是32位的,要么都是64位的,不能混用. 2. Apache和mod_wsg ...
- 关于memset的错误使用
我们在使用memset进行初始化的时候,经常会使用这种方式,memset(a,0,sizeof(a)),这让我们误以为将其初始化其他值也可以,实际是错误的. void print_arr(unsign ...
- JS语法基础
js声明 <!--在head标签中使用script标签进行js代码域声明--> <script type="text/javascript" language=& ...
- MD5加密出现 无法启动:此实现不是Windows平台FIPS验证的加密算法的一部分
出现问题: 出现这个问题的原因是订票助手.NET使用了MD5算法,而系统的组策略安全设置导致无法使用此算法.要修正此问题,请按照如下操作(两种方法任选其一). 注:(来源于 http://ask.f ...
- chrony 时间同步服务器
这篇文章也不错: https://www.zfl9.com/chrony.html 简介 chrony是网络时间协议(NTP)的多用途实现.它可以使系统时钟与NTP服务器.参考时钟(例如GPS接收器) ...
- mybatis关于ORM的使用以及设计(二)[DaoInterface 转换 Mapper代理对象]
第一节中,分析了Mybatis的ORM框架的初始化,这篇来分析SQL执行过程中,对象->SQL是如何转换的 其中包含两种映射思想 ①DAO接口->Mapper实例 ②执行DAO的方法时,参 ...
- tensorflow学习001——MNIST
1.MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片 数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test). 这样的 ...
- Verilog语言
for循环应用 1.复位寄存器组 例如有32个寄存器,需要异步复位 always@(posedge clk or negedge rst_n) begin if (rst_n == 1'b0) beg ...
- 封装poi导出篇
前言 先写的导入,以为导出会很简单,没想到导出的东西也不少,基于常用的几种样式和校验写了一个简单的导出,包括时间,数字,文字长度,下拉框,提示框校验,基础样式包括字体,字体颜色,背景颜色等功能,可以使 ...