Mae Ruby yn iaith raglennu sy'n cael ei chydnabod am ei symlrwydd a'i harddwch. Un o'r elfennau pwysicaf o Ruby yw'r cysyniad o 'glasau'. Mae clasau yn ffordd o drefnu cod, gan ganiatáu i raglenwyr greu strwythurau cymhleth mewn ffordd sy'n hawdd eu deall a'u cynnal. Yn yr erthygl hon, byddwn yn archwilio clasau Ruby, gan drafod eu nodweddion, eu defnydd, a rhai enghreifftiau cod i'w gwneud yn haws i'w deall.
Mae clasau yn fodelau ar gyfer creu gwrthrychau (objects) yn Ruby. Mae pob clas yn cynnwys nodweddion (attributes) a gweithredoedd (methods) sy'n diffinio sut y gall gwrthrychau o'r clas hwnnw ymddwyn. Mae'r cysyniad hwn o ddirprwy a threfniadaeth yn caniatáu i raglenwyr greu cod sy'n hawdd ei gynnal a'i ehangu.
Mae strwythur sylfaenol clas yn Ruby yn edrych fel hyn:
class EnwClasu
def initialize(nodwedd1, nodwedd2)
@nodwedd1 = nodwedd1
@nodwedd2 = nodwedd2
end
def gweithred1
puts "Mae'r nodwedd1 yn: #{@nodwedd1}"
end
def gweithred2
puts "Mae'r nodwedd2 yn: #{@nodwedd2}"
end
end
Yn y cod uchod, rydym wedi creu clas o'r enw EnwClasu. Mae'r dull initialize yn cael ei ddefnyddio i sefydlu nodweddion y gwrthrych pan gaiff ei greu. Mae @nodwedd1 a @nodwedd2 yn nodweddion a gynhelir yn y gwrthrych.
Unwaith y byddwn wedi diffinio clas, gallwn greu gwrthrychau ohono. Mae hyn yn digwydd trwy ddefnyddio'r enw clas fel dull:
gwrthrych1 = EnwClasu.new("Nodwedd A", "Nodwedd B")
gwrthrych1.gweithred1
gwrthrych1.gweithred2
Mae'r cod uchod yn creu gwrthrych o'r enw gwrthrych1 o'r clas EnwClasu a'i roi nodweddion. Mae'r ddwy weithred yn cael eu galw i ddangos y nodweddion.
Mae Ruby yn cefnogi hanes a thdirprwy, sy'n caniatáu i glasuau etifeddu nodweddion a gweithredoedd o glasuau eraill. Mae hyn yn gwneud y broses o greu cod yn fwy effeithlon. Dyma enghraifft o sut i ddefnyddio etifeddu:
class ClasA
def gweithredA
puts "Mae hyn yn dod o ClasA"
end
end
class ClasB < ClasA
def gweithredB
puts "Mae hyn yn dod o ClasB"
end
end
gwrthrych2 = ClasB.new
gwrthrych2.gweithredA
gwrthrych2.gweithredB
Yn y cod hwn, mae ClasB yn etifeddu o ClasA. Mae hyn yn caniatáu i ClasB ddefnyddio'r dull gweithredA o ClasA yn ogystal â'i ddulliau ei hun.
Mae clasau yn Ruby yn cynnwys nodweddion a gweithredoedd. Mae nodweddion yn cael eu cynrychioli gan newidynnau, tra bod gweithredoedd yn cael eu cynrychioli gan ddulliau. Dyma enghraifft sy'n dangos sut i ddefnyddio nodweddion a gweithredoedd:
class Car
def initialize(model, brand)
@model = model
@brand = brand
end
def car_info
puts "Model: #{@model}, Brand: #{@brand}"
end
end
car1 = Car.new("Model S", "Tesla")
car1.car_info
Yn y cod hwn, rydym wedi creu clas o'r enw Car sy'n cynnwys nodweddion model a brand. Mae'r dull car_info yn dychwelyd gwybodaeth am y car.
Mae Ruby hefyd yn caniatáu i ni ddefnyddio gweithrediadau a thrydydd parti i ehangu ein clasau. Gallwn ddefnyddio gemau a llyfrgelloedd i ychwanegu nodweddion ychwanegol. Dyma enghraifft o ddefnyddio gem:
require 'json'
class JsonHandler
def initialize(data)
@data = data
end
def to_json
JSON.generate(@data)
end
end
data = { name: "John", age: 30 }
json_handler = JsonHandler.new(data)
puts json_handler.to_json
Yn y cod hwn, rydym wedi defnyddio'r gem json i greu clas sy'n gallu trosi data i fformat JSON. Mae hyn yn dangos sut y gallwn ehangu ein clasau gyda thrydydd parti.
Mae Ruby yn caniatáu i ni greu gweithrediadau statig, sy'n gweithredu ar y clas ei hun yn hytrach na gwrthrych penodol. Mae hyn yn ddefnyddiol ar gyfer gweithrediadau sy'n berthnasol i'r clas cyfan. Dyma enghraifft:
class MathOperations
def self.add(a, b)
a + b
end
end
puts MathOperations.add(5, 10)
Yn y cod hwn, rydym wedi creu dull statig o'r enw add sy'n adio dwy rhif. Mae'r dull hwn yn cael ei alw ar y clas ei hun, heb fod angen creu gwrthrych.
Mae clasau yn Ruby yn cynnig ffordd effeithiol o drefnu a rheoli cod. Mae'r cysyniadau o etifeddu, nodweddion, a gweithredoedd yn gwneud Ruby yn iaith raglennu grymus a hyblyg. Trwy ddeall clasau, gall rhaglenwyr greu cymwysiadau mwy cymhleth a chynnal eu cod yn haws.
Mae'r erthygl hon wedi rhoi cipolwg ar rai o'r nodweddion sylfaenol o glasuau Ruby. Mae llawer mwy i'w ddysgu, ac rydym yn annog darllenwyr i archwilio a phrofi eu sgiliau yn Ruby. Mae'r gymuned Ruby yn llawn o adnoddau a chefnogaeth, felly peidiwch ag oedi i ymuno â hi!
© 2024 RailsInsights. All rights reserved.