Java ordbok

Java ordbok

 

JDK =  Java development kit, innehåller verktyg för att programmera Java.

JVM =  Java Virtual Machine, komponent som exekverar program.

JRE =  Java Runtime Environment, ett lager mjukvara som körs över operativsystemet. Innehåller class- bibliotek och andra resurser som java program behöver för att köras.

\ Dessa tre tekniska paket utgör kärnan för java programmering.

_____________________________________________

\ \ IDE = Integrated Development Environment 

En editor för att koda program. Gör samma sak som kommandotolken men med hjälp av GUI så att det ska bli enklare för oss programmerare.

API = Application programming interface 

API:n tillåter att olika program "pratar" med varandra. EXEMPEL: API:n är kyparen som tar kundens beställning i en restaurang och kommunicerar din beställning till köket.

GUI = Graphical User Interface

Utvecklas under 1970-talet så att man slapp skriva in kommandon för att ge datorn instruktioner. Istället kan man nu kommunicera via ikoner osv. Moderna GUI:er är till exempel touchskärmar.

IL (CIL) = Intermediate language (Common intermediate language)

Kallas även bytecode, den är ofta plattformsoberoende. Koden kan köras av vilken dator som helst så länge den har en passande runtime engine (till exempel en JRE) installerad.

\ Källkod = Den kod vi skriver

Kompilator = Översätter källkoden till bytecode. Bytecode är plattformsoberoende.

Iterationer = Loopar, till exempel.

Selektioner = Ord för olika val.

Sekvens = Något i en viss ordning

Scanner = Sätt för användaren att skriva in input.

Classpath = Markerar var paket strukturerna börjar.

Package protected = Syns för de andra klasserna i ett paket.

Sentinel = ett icke- möjligt värde att uppnå.

\ S    =  Single Responsibility Principle (SRP)

O   =   Open / Closed Principle

L    =   Liskov Substitution Principle

I     =   Interface Segregation Principle

D   =   Dependency Inversion Principle

\ ( Anders vill bara att vi fokuserar på S i SOLID )

\ Ternary Operator

\ variable = Expression1 ? Expression2: Expression3

\ \  

\ \ Kommandotolken/git-bash

cd = Change Directory

\ Eclipse

Ctrl + 1 = importera klass i java

Ctrl + F + Shift = formatera kod

Ctrl + A = Markera all kod i dokumentet

\ \ Aritmetiska Operatorer

\ +     =    Addition

-      =    Subtraktion

*      =    Multiplication

/      =     Division

%    =     Modulus

++   =     Öka med ett         (increment)

- -    =     Minska med ett   (decrement)

\ Jämförelse Operatorer

\ ==     likamed (fungerar bara på objekt)

!=      Inte lika med

>       Större än

<       Mindre än

\ Logiska Operatorer

(logiska operatorer bestämmer logiken mellan värden och variabler)

\ &&    Returnerar True om båda "statements" är True

||    Returnerar True om ett av två "statements" är True

!        Returnerar True om resultatet inte är lika sant.

\ \ \ \ \ \ \ \ \ \ \ \ \ \ Kodexempel:

\ Scanners:

\ Ny scanner:

Scanner namnPåScannern = new Scanner(System.in);

\ Scanna användarens input:

 String namnPåStringen = namnPåScannern.nextLine();

 int namnPåInten = namnPåScannern.nextInt();

 double namnPåDoublen = namnPåScannern.nextDouble();

 char namnPåCharen = namnPåScannern.nextChar();

\ _____________________________________________

\ Arrayer:

\  String[] bilar = {"Volvo","Ford","BMW","Kia"};

//För att skriva ut en position i arrayen:

System.out.println(namn[0]);

//Då blir utskriften Volvo osv

\ _____________________________________________

\ Loopar:

\ For:

for (int i=1; i<5; i ++){

System.out.println("Hello world");

}

//For loopens funktion kan skrivas så här:

//for (initialvärde; villkor; förändring)

\ Nästlad for loop:

for (int i=1; i<5; i ++)

{

   for (int j=1; j<5; j ++)

   {

      System.out.println("Hello world");

   }

}

\ \ \ \ \ \ Foreach:

For (datatyp namnPåVariabeln : bilar)

{

System.out.println(namnPåVariabeln);

}

\ Do while:

Do

{

//kod som ska utföras

}while(villkor)

\ While:

while(villkor)

{

//Kod som ska utföras

}

\ If/else:

If (Villkor)

{

//Gör detta

}

else if

{

//Gör detta istället

}

Else

{

//Gör detta

}

\ _____________________________________________

\ Felhantering:

Try/catch:

\ Try {

String [] bilar {"volvo","Ford","BMW","KIA"};

System.out.println(bilar[10]);

} catch (Exception e) {

System.out.println("Felaktig inmatning, skriv ett tal mellan 0-2");

}

\ \ _____________________________________________

\ Filhantering:

File reader:

File writer:

\ Enklare att läsa om det här

https://www.w3schools.com/java/java_files_read.asp

\ \ Objektorienterad programmering (OOP)

\ AIPE, objektorienteringens fyra grundpelare

\ A = Abstraction 

Abstraction innebär att vi bara vill visa användaren det som är relevant för objektet.

I  = Inheritance

Inheritance är möjligheten att återanvända kod

P = Polymorphism

Betyder att något kan ta många former. I java innebär detta att objekt kan ta många olika former. Till exempel kan det ha olika parametrar som ingångsvärden.

E = Encapsulation

Verktyg som programmeraren kan ta till för att förhindra att olika metoder och klasser krockar, överskrids eller förstörs när programmet körs.

\ Object Oriented Programming - The Four Pillars of OOP

\ ___________________________________________________

\ Enum = Enumerated Number

Overloading = När en metod i en klass har samma namn som en annan. Då sker en overload av metoden. Flera metoder kan ha samma namn men de bör ha olika parametrar.

Overriding = Om man deklarerar en nuvarande metod igen

Extends = Anropar metoder i andra klasser

Subclass = Klassen som ärver av supern

Superclass = Klassen som anropas av extends

Low coupling = Koden är inte starkt beroende av sina olika delar

High cohesion = Bara det naturliga innehållet finns med.

Constructor = En typ av metod som initialiserar (konstruerar) objekt.

Instansvariabel/Tillståndsvariabel = Variabler som deklareras inuti en klass men inte i en metod. En instansvariabel beskriver en enskild egenskap, läs mer sida 7.

Parameter = Passa vidare data till metod, används som variabler i metoden.

Argument = Samma sak som parameter

Static = Åtkomst till metoden kan ske med eller utan objekt.

Public = Åtkomst till metoden kan bara ske via objekt

Fields = Ett annat ord för attributerna i en klass

Attribute = Ett ord för variabler etc i en klass.

\ \ \ \ \ \ OOP = Objektorienterad programmering

OOD = Objektorienterad design

\ Learn Object Oriented Programming in 10 minutes (Java) 

\ \ \ \ Klasser

\ Klasser kan användas på två olika sätt:

\

  • Som en behållare för att kapsla in ett antal metoder och konstanter..
  • För att konstruera nya mer eller mindre komplicerade Typer.

\ När vi pratar OOP är det den sistnämnda varianten av klass vi använder.

\ class Person {

  String förnamn;

  String efternamn;

  int födelsedatum;

  boolean singel;

}

\ Klassen ovan är ett exempel på en klass som används för att skapa objekt.

Den har ingen Main som talar om när programmer ska köras och den innehåller heller inga metoder. Bara information av olika datatyper. Detta är på grund av att denna klass är en byggsten i ett program. Klasser av denna typ ingår i I:et i AIPE (inheritance).

Med hjälp av dem kan vi bygga objekt med samma blandning av information och återanvända dem.

\ Klassen person innehåller fyra olika deklarationer av variabler. Som vi kan se så är variablerna inte deklarerade inom en metod. De ligger direkt i klassen. Variabler som är deklarerade på detta sätt, som det inte står static innan kallas instansvariabler eller tillståndsvariabler. Dessa beskriver enskilda egenskaper, men kan inte deklareras med nyckelordet var. Du kan däremot deklarera flera variabler av samma datatyp i samma rad kod, precis som "vanliga" variabler.

\ class Person {

  String förnamn, efternamn;

  int födelsedatum;

  boolean singel;

}

\ \ Exempel Observation:

\ class Observation {

int nr;                   //Stationsnummer

int tim, min;             //tid för observationen

double temp;              //Temperatur

double vindhast;          //mäts i m/s

int vindrikt;             //mäts i grader

}

\ \ Objekt

\ Objekt är det som skapas med hjälp av det "blueprint" vi skriver våra klasser.

Vi kan jämföra skapandet av objekt med skapandet av arrayer. Först deklarerar vi arrayen, detta blir en referensvariabel som sedan pekar på det utrymme vi skapar för arrayen i steg 2. På samma sätt skapar vi ett objekt.

\ Observation obs; //steg 1: Deklarera en referensvariabel.

Här har vi deklarerat en variabel med namnet obs. Variabelns datatyp är Observation, variabeln obs är en referens, som kan användas för att peka på objekt av typen Observation.

Eftersom att variabeln obs inte initierats i deklarationen, får den automatiskt värdet null, som betyder att den inte pekar på något för tillfället.  

\ obs = new observation();

Vi skapar sedan objektet på ungefär samma sätt som arrayer, vi använder new!

Då skapas utrymme för ett objekt av klassen Observation, referensvariabeln obs sätts att peka på det skapade utrymmet.

\ \ Modifierare

\ Public är en så kallad Access Modifier (Åtkomstmodifierare). Den reglerar åtkomsten mellan klasser, attributer, metoder och konstruktorer.

\ Access modifiers

\ För klasser:

Public =  Klassen är tillgänglig för alla andra klasser.

Default =  Klassen är bara tillgänglig för andra klasser i samma paket.

\ För attributer, metoder och konstruktorer:

Public =  Koden är tillgänglig för alla andra klasser.

Private =  Koden är bara tillgänglig i den deklarerade klassens scope

Default =  Koden är bara tillgänglig i samma paket som den deklarerats

Protected =  Koden är bara tillgänglig i samma paket den deklarerats samt dess subklasser.

\ \ \ \ Non- Access modifiers

\ För klasser:

Final =  Klassen kan inte ärva (inheritance) något från andra klasser.

Abstract =  Klassen kan inte användas för att skapa objekt.

\ För attributer och metoder:

Final =  Attributer och metoder kan inte bli "overridden" / "modified"

Static =  Attributerna och metoderna tillhör klasserna snarare än objekten.

Abstract = Kan endast användas av en abstrakt klass, samt på av metoder.

Metoderna behöver inte ha en "kropp"

Transient =  Attributer och metoderna skippas när vi serialiserar objektet vilket de tillhör

Synchronised = Metoden är bara tillgänglig en tråd åt gången

Volatile = …

\  

\