两个人做人爱视频免费,97久久精品人人搡人妻人人玩,欧洲精品码一区二区三区,999zyz玖玖资源站永久

我要投稿 投訴建議

有難度的Ruby專(zhuān)業(yè)面試試題

時(shí)間:2022-08-04 15:11:21 面試試題 我要投稿
  • 相關(guān)推薦

有難度的Ruby專(zhuān)業(yè)面試試題

  一、Ruby如何定義一個(gè)類(lèi)

有難度的Ruby專(zhuān)業(yè)面試試題

  類(lèi)是對(duì)具有同樣屬性和同樣行為的對(duì)象的抽象,Ruby中類(lèi)的聲明使用class關(guān)鍵字。定義類(lèi)的語(yǔ)法如下,

  class ClassName

  def method_name(variables)

  #some code

  end

  end

  類(lèi)的定義要在class…end之間,在上面的格式中,ClassName是類(lèi)名,類(lèi)名必須以大寫(xiě)字母開(kāi)始,也就是說(shuō)類(lèi)名要是個(gè)常量。

  看下面的例子:

  class Person

  def initialize(name, gender, age)

  @name = name

  @gender = gender

  @age = age

  end

  end

  若某個(gè)類(lèi)已經(jīng)被定義過(guò),此時(shí)又用相同的類(lèi)名進(jìn)行類(lèi)定義的話,就意味著對(duì)原有的類(lèi)的定義進(jìn)行追加。

  class Test

  def meth1

  puts “This is meth1″

  end

  end

  class Test

  def meth2

  puts “This is meth2″

  end

  end

  在Test類(lèi)中,原有meth1方法,我們又追加了meth2方法,這時(shí)候,對(duì)于Test類(lèi)的對(duì)象,meth1和meth2同樣可用。

  二、如何安裝ruby on rails

  在安裝rails之前,要先安裝rubygems。rubygems是ruby的在線包管理工具,可以從rubyforge下載rubygems:

  http://rubyforge.org/projects/rubygems/

  下載好源代碼包,解壓縮,安裝:

  tar xzvf rubygems-0.9.0.tgz

  cd rubygems-0.9.0/

  ruby setup.rb

  然后就可以安裝rails了,在確認(rèn)服務(wù)器已經(jīng)連接互聯(lián)網(wǎng)的情況下執(zhí)行:

  gem install rails –y

  即通過(guò)gem從rubyforge網(wǎng)站下載rails所有依賴(lài)包安裝。

  安裝好rails以后,可以執(zhí)行:

  rails –v

  確認(rèn)一下rails的版本。

  三、如何將一個(gè)描述日期或日期/時(shí)間的字符串轉(zhuǎn)換為一個(gè)Date對(duì)象

  問(wèn)題:如何將一個(gè)描述日期或日期/ 時(shí)間的字符串轉(zhuǎn)換為一個(gè)Date對(duì)象,其中,時(shí)間前面的字符串格式可能并不知道。

  參考答案:

  將日期字符串傳遞給Date.parse或DateTime.parse:

  require ‘date’

  Date.parse(’2/9/2007′).to_s

  # => "2007-02-09"

  DateTime.parse(’02-09-2007 12:30:44 AM’).to_s

  # => "2007-09-02T00:30:44Z"

  DateTime.parse(’02-09-2007 12:30:44 PM EST’).to_s

  # => "2007-09-02T12:30:44-0500"

  Date.parse(‘Wednesday, January 10, 2001′).to_s

  # => "2001-01-10"

  四、Ruby中的保護(hù)方法和私有方法與一般面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的一樣嗎

  Ruby中的保護(hù)方法和私有方法與一般面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的概念有所區(qū)別,保護(hù)方法的意思是方法只能方法只能被定義這個(gè)方法的類(lèi)自己的對(duì)象和子類(lèi)的對(duì)象訪問(wèn),私有方法只能被對(duì)象自己訪問(wèn)。

  class Test

  def method1 #默認(rèn)為公有方法

  …

  end

  protected #保護(hù)方法

  def method2

  …

  end

  private #私有方法

  def method3

  end

  public

  def test_protected(arg) #arg是Test類(lèi)的對(duì)象

  arg.method2 #正確,可以訪問(wèn)同類(lèi)其他對(duì)象的保護(hù)方法

  end

  def test_private(arg) #arg是Test類(lèi)的對(duì)象

  arg.method3 #錯(cuò)誤,不能訪問(wèn)同類(lèi)其他對(duì)象的私有方法

  end

  end

  obj1 = Test.new

  obj2 = Test.new

  obj1.test_protected(obj2)

  obj1.test_private(obj2)

  可以看到,和C++/Java相比,Ruby提供了更好的封裝性。

主站蜘蛛池模板: 子洲县| 江陵县| 黔东| 澄城县| 谷城县| 盘山县| 潮州市| 林芝县| 福泉市| 霸州市| 左云县| 长海县| 涟源市| 枣阳市| 仪陇县| 汶川县| 土默特左旗| 蓬溪县| 靖宇县| 古浪县| 湖北省| 南乐县| 巴塘县| 嘉祥县| 偃师市| 简阳市| 徐州市| 鄂伦春自治旗| 东兰县| 周宁县| 十堰市| 长葛市| 罗甸县| 临沭县| 高安市| 崇义县| 修武县| 马关县| 甘德县| 铜梁县| 屏山县|