Ohjelmointi 1, kesä 2024, luento16

Olin tällä sivulla luennon aikana Agorassa

Please to interact with this component.

.
Olin tällä sivulla luennon aikana Zoomissa

Please to interact with this component.

.
Olin tällä sivulla videon katsomisen aikana

Please to interact with this component.

.
Katson sivua etukäteen

Please to interact with this component.

.

# runner
# 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

    git clone https://gitlab.jyu.fi/tie/ohj1/2024kesa/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#

HangryDog

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.