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 = …
\
\