Cheet Sheet für Java-erfahrene Leute, um Ruby (Rails) zu lernen

* Zum Aktualisieren von Zeit zu Zeit </ font>

Zielgruppe

· ICH ・ Erfahrung in Java und C #

Hintergrund ~ Rails Tutorial Die Informationsmenge ist zu groß Problem ~

・ Die Informationsmenge ist enorm. Wenn Sie der Meinung sind, dass die Informationsmenge zu groß ist und Sie sie in der Reihenfolge von oben (während Sie geschäftlich tätig sind) ausführen, wird sie nicht enden. ・ Obwohl es bereits einen ähnlichen Artikel gibt, habe ich beschlossen, in meinen eigenen Worten ein "wörterbuchähnliches" zu erstellen: "Dies ist in Java".

Unten ist das Wörterbuch

・ * Genau genommen ist es vielleicht nicht gleich, aber es gibt ein leichtes Gefühl, dass es mit dem Gefühl gepostet wird, dass es das ist, wenn Sie es erzwingen. ・ ※ Ich möchte, dass Sie darauf hinweisen, wenn es etwas gibt, bei dem "das Verständnis falsch ist", weil Sie lernen.

  • Da das Volumen zu diesem Zeitpunkt klein ist, ist auch das für Ruby einzigartige Konzept enthalten.

  • initialize -Initialize-Methode (die erste Methode, die beim Erstellen einer Instanz aufgerufen wird) ・ ** Konstruktor in Java ** ・ Siehe ** test.rb ** </ font>

  • attr_accessor ・ Accessor-Methode ・ ** Lombok in Java (Frühling) (derjenige, der in der Bibliothek zum Definieren von Getter / Setter in der Klasse enthalten ist) **

  • ** Zum Definieren von Instanzvariablen ** ・ Siehe ** test.rb ** </ font>

  • self ・ ~~ T Wird auf verschiedene Arten verwendet ~~ ・ Was Selbst wird, hängt davon ab, wo Selbst verwendet wird -Verwendet bei der Angabe von Variablen und Methoden innerhalb der Klasse (** Klassenvariablen verwenden @@ später beschrieben **)

  • Geben Sie das von attr_accessor angegebene Feld an -Es ist auch möglich, den Aufrufer der Methode anzuzeigen (description Methode in ** test.rb ** ・ ** Dies ** in Java ・ Siehe ** test.rb ** </ font>

test.rb



class Car
  #Objektvariablen (Werte)
  # type(Auto Typ),weight(Gewicht),user(Nutzer)
  attr_accessor :type,:weight,:user

  #Spezielle Methode zur Initialisierung
  def initialize
    self.type = 'SUV'
    self.weight = 2500
  end

  #Objektmethode (Verarbeitung)
  def description(user)
    puts "Hallo#{user},Dieser Autotyp ist#{type},Gewicht ist#{power}ist."
  end
end

#Erstellen Sie eine Instanz und weisen Sie sie einer Variablen zu
Car_A = Car.new

Car_A.description('ich')

p Car_A

- @ (At mark)

・ Die an die Instanzvariable angehängte ・ Stimmen Sie der Java-Instanzvariablen zu * 1)

    1. ... Eine Feldvariable, die einer Instanz zugeordnet ist. Dies ist eine Variable jeder von "new" generierten Instanz. ・ ** Siehe test2.rb ** </ font> * Sie können so schreiben

test2.rb



class Car
  #Objektvariablen (Werte)
  # type(Auto Typ),weight(Gewicht),user(Nutzer)
  attr_accessor :type,:weight,:user

  #Spezielle Methode zur Initialisierung
  def initialize
    @type = 'SUV'
    @weight = 2500
  end

  #Objektmethode (Verarbeitung)
  def description(user)
    puts "Hallo#{user},Dieser Autotyp ist#{@type},Gewicht ist#{@power}ist."
  end
end

#Erstellen Sie eine Instanz und weisen Sie sie einer Variablen zu
Car_A = Car.new

Car_A.description('ich')

p Car_A

- @@ (zwei an Markierungen)

・ Die an die Klassenvariable angehängte -Kann in Klassen und Instanzen verwendet werden ・ Werte werden geteilt ・ Siehe ** test3.rb ** </ font>

test3.rb



class Test
  @@class_var = 0

  def foo
    @@class_var += 1
    p @@class_var
  end

  def self.hoge
    @@class_var += 1
    p @@class_var
  end
end

test = Test.new

#Werte werden in derselben Instanz geteilt
test.foo # => 1
test.foo # => 2

#Werte werden gemeinsam genutzt, auch wenn die Instanzen unterschiedlich sind
test2 = Foo.new
test2.foo # => 3

#Es kann über Klassenmethoden zugegriffen werden, und die Werte werden gemeinsam genutzt.
Test.hoge # => 4

  • require

・ Ich wollte Import schreiben ... in Java, aber in Wirklichkeit scheint erfordern einen höheren Freiheitsgrad zu haben (siehe den Link unten). ・ [Ruby] Ruby erfordert unterscheidet sich von Java

- Modul

・ Ich konnte dies in Java nicht finden. .. ..

  • ** Unterschied zur Klasse **
  • Instanz kann nicht erstellt werden.
  • Kann nicht vererbt werden.

-** Verwendung ** --Namespace (Sicherstellen der Eindeutigkeit von Methoden ... Um das Duplizieren von Methodennamen beim Importieren von Bibliotheken usw. zu verhindern) --Mix-in (Verwendung durch Einschließen aller Methoden in ein Modul)

Recommended Posts