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%中奖率 微信开发学习路线高级篇上线 ...
随机推荐
- win10自动更新后SQLServer无法启动的问题排查
今天中午windows提示更新系统补丁并重启后发现,本地的SQL Server服务器没有正常启动,手工启动sqlserver也失败了,报错:找不到ERRORLOG文件及相应目录. 很是奇怪.强制创建该 ...
- IDEA 代码生成插件 CodeMaker
Java 开发过程中经常会遇到编写重复代码的事情,例如说:编写领域类和持久类的时候,大部分时候它们的变量名称,类型是一样的,在编写领域类的时候常常要重复写类似的代码.类似的问题太多……这里介绍一个 I ...
- 【java】多态
多态:某一类事物的多种存在形态 如:动物中的猫和狗猫对象对象的类型是猫类型,即 cat c1= new cat()但同时猫也是动物中的一种,也可以把猫成为动物,即 animal c1= new cat ...
- AsyncTask 的 get post 封装
1.get方法的封装AsyncTask public class DBUTil2 { public static interface Succee{ void onSuccee(String resu ...
- upstream timed out (10060: A connection attempt failed because the connected party did not properly respond
openresty 错误日志报错内容: // :: [error] #: * upstream timed : A connection attempt failed because the conn ...
- 创建maven工程的时候卡死的解决办法
在idea的maven,runner,properties里面添加 archetypeCatalog=internal
- Jquery 扩展方法实现原理
JSONP原理 首先:JSON和JSONP是不一样的概念. JSON是一种数据交换格式,而JSONP是非正式传输协议. 该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回 ...
- Windows自定义运行命令
1 打开注册表regedit 2 找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 3 新增项,自己运 ...
- 如何检查tensorflow环境是否能正常调用GPU
检查keras/tensorflow是否正常调用GPU代码 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os. ...
- [UE4]显示落地箭头
一.Set Hidden in Game:隐藏对象 Propagate to Children:是否修改容器子对象的可见性. 二.添加2个Static Mesh,分别命名为:StaitcMeshArr ...