avoin/avoin23

# avoin

Huom! TÄMÄ ON AVOIMEN YLIOPISTON SIVU.

Et voi suorittaa kurssia, ellet ole ilmoittautunut täällä.

Ohjelmointi 1, avoin 2023, luento 16


# L16

16. luento: ti 24.10.2023 klo 14:15-16:00: Oliot


# vb1

Muu sisältö: listat, silmukat, muuttujien näkyvyys, hiiren kuuntelu (Jypeli)

Näkyykö muillakin luentovideolla pelkkää mustaa?

24 Oct 23

Mullakin näkyy vain musta ruutu :(

VL: kokeilen kohta laittaa varanauhoituksen tyonne kunhan valmistuu...

VL: Nyt on varanauhoitus käytössä.

24 Oct 23 (edited 24 Oct 23)
# git

Luentoesimerkkien haku versionhallinnasta

  • siirry hakemistoon johon haluat esimerkit

  • ekalla kertaa (tai jos olet ennen su 19.10 hakenut niin tuhoa vanha)

    git clone https://gitlab.jyu.fi/tie/ohj1/avoin23/esimerkit.git .

    jatkossa samassa hakemistossa

    git pull
  • kopsi tuo hakemisto tai ainakin sinua kiinnostava alihakemisto toiseen paikkaan

  • periaatteessa tuonne syntyneen solutionin voi avata sellaisenaankin, mutta jos siihen tekee muutoksia, niin seuraavalla pull-komennolla tulee helposti konflikti

Tiedotusasiaa

Muuttujien näkyvyys

# nakyvyys

Luokat ja perintä

# kielista

Esimerkkejä kielistä

Luokkapohjainen:

  • Java
  • C#
  • C++ (tosin rakenteista ohjelmointia voi tehdä ilmankin luokkia)
  • Kotlin (paljon myös funktionaalisen kielen piirteitä)
  • Swift
  • Delphi (Pascalin käytetyin "oliolaajennus")
  • Python (???)
  • TypeScript (tosin voi kirjoittaa myös suoraan JavaScriptiäkin ja silloin menee tuonne proton puolelle)

Oliosuuntautunut:

  • Smalltalk

Prototyyppipohjainen:

  • JavaScript

Funktonaaliset:

  • Haskell
  • F#

Minimaalinen Vector-luokka

  • Demojen harjoittelu, d7 klikkaa auki Näytä koko koodi ja katso Vector -luokan miniversiota

      public class Vector
      {
          private double x, y;
          public Vector(double x, double y) { this.x = x; this.y = y; }
          override public string ToString() { return $"({x,5:0.00},{y,5:0.00})"; }
          public static double Distance(Vector p1, Vector p2) {
              double dx = (p1.x - p2.x), dy = (p1.y - p2.y); return Math.Sqrt(dx * dx + dy * dy);
          }
      }
  • Demo 7: Pisteet.cs ja tuolta Vector ja RandomGen-luokat

Elaimet

  • Elaimet.cs - pohjaksi Kissa ja Koira-luokka
# Elaimet
# kissattarkka
# kissatnorm

Kysymyksiä

# ElaimetPerimalla

Eläimet Jypeliin

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.