1. Åtkomstmodifierare
Före varje metod kan programmerare ange så kallade åtkomstmodifierare. Dessa inkluderar följande nyckelord: public
, protected
, private
.
Dessa åtkomstmodifierare låter dig begränsa andra klassers åtkomst till en metod.
Om du till exempel skriver private
nyckelordet före en metoddeklaration, kan metoden endast anropas från samma klass som den deklareras i. Nyckelordet public
tillåter åtkomst till den markerade metoden från vilken metod som helst i vilken klass som helst.
Det finns totalt 3 sådana modifierare, men det finns 4 typer av åtkomst till en metod. Detta beror på att frånvaron av en åtkomstmodifierare också betyder något.
Tillgång från... | ||||
---|---|---|---|---|
Modifierare | Vilken klass som helst | Barnklass | Dess paket | Dess klass |
public |
Ja | Ja | Ja | Ja |
protected |
Nej | Ja | Ja | Ja |
ingen modifierare | Nej | Nej | Ja | Ja |
private |
Nej | Nej | Nej | Ja |
1. public
modifierare
En metod (eller variabel eller klass) markerad med modifieraren public
kan nås från var som helst i programmet . Detta är den högsta graden av öppenhet – det finns inga begränsningar.
2. private
modifierare
En metod (eller variabel eller klass) märkt med modifieraren private
kan endast nås från samma klass där den deklareras . För alla andra klasser är den markerade metoden (eller variabeln) osynlig. Det är som om det inte finns. Detta är den högsta begränsningsnivån - bara sin egen klass.
3. Ingen modifierare (standardmodifierare)
Om en metod (eller variabel) inte är markerad med någon modifierare, anses den ha "standardmodifieraren". Variabler eller metoder med den modifieraren (dvs med ingen alls) är synliga för alla klasser i paketet där de är deklarerade . Och bara till dem. Denna modifierare kallas också ibland package-private
, vilket antyder att åtkomst till variabler och metoder är öppen för hela paketet där deras klass finns.
4. protected
modifierare
Om en metod är markerad med protected
modifieraren kan den nås från samma klass, samma paket och avkomlingar (klasser som ärver klassen där metoden deklareras). Vi kommer att analysera detta ämne mer i detalj i Java Core-uppdraget.
Du kan använda public
modifieraren på alla dina metoder (liksom alla dina klasser och klassvariabler) tills du når slutet av Java Syntax-uppdraget. Du kommer att behöva de andra modifierarna när vi aktivt börjar lära oss OOP.
Varför behövs åtkomstmodifierare?
De blir nödvändiga för stora projekt skrivna av tiotals och hundratals programmerare samtidigt.
Ibland finns det situationer när en programmerare vill dela upp en alltför stor metod i delar och flytta en del av koden till hjälpmetoder. Men samtidigt vill han eller hon inte att andra programmerare ska anropa dessa hjälpmetoder, eftersom motsvarande kod kanske inte fungerar korrekt.
Så de kom på dessa åtkomstmodifierare. Om du markerar en hjälpmetod med ordet privat kan ingen annan kod än din klass se din hjälpmetod.
2. static
nyckelord
Nyckelordet static
gör en metod statisk. Vi ska titta på vad det betyder senare. För nu, kom bara ihåg ett par fakta om statiska metoder.
Fakta 1. En statisk metod är inte kopplad till något objekt utan tillhör den klass i vilken den deklareras. För att anropa en statisk metod måste du skriva:
ClassName.MethodName()
Exempel på statiska metoder:
Klassnamn | Statisk metodnamn | |
---|---|---|
Thread.sleep() |
Thread |
sleep() |
Math.abs() |
Math |
abs() |
Arrays.sort() |
Arrays |
sort() |
Klassnamnet före namnet på en statisk metod kan utelämnas om du anropar den statiska metoden från dess klass . Det är därför du inte behöver skriva före namnen på var och en av de statiska metoder som anropas.Solution
Fakta 2. En statisk metod kan inte komma åt de icke-statiska metoderna i sin egen klass. En statisk metod kan bara komma åt statiska metoder. Som ett resultat deklarerar vi alla metoder som vi vill anropa från metoden main
statiska.
Varför? Du kommer att kunna svara på denna fråga själv när du börjar lära dig OOP och förstå hur statiska metoder fungerar.
3. throws
nyckelord
Det finns ett annat sökord som du förmodligen har sett i en metoddeklaration – nyckelordet throws
. Till skillnad från åtkomstmodifierare och static
nyckelordet placeras detta nyckelord efter metodparametrarna:
public static Type name(parameters) throws Exception
{
method body
}
Vi kommer att överväga dess exakta innebörd lite senare när vi studerar undantag.
Men för att beröra det ytligt kan vi säga att en metod markerad med nyckelordet throws kan ge fel (exceptions), vilket betyder instanser av klassen ( Exception
och klasser som ärver den). Om flera olika typer av fel kan uppstå i en klass, måste du lista var och en av dem separerade med kommatecken.
4. main
metod
Raden där en metod deklareras, som innehåller alla modifierare, kommer att påverka hur denna metod anropas från andra klasser och metoder. Det påverkar vilken typ av resultat metoden kommer att returnera och indikerar vilka fel som är möjliga när den körs.
En sådan rad kallas en metoddeklaration och har följande allmänna format:
access modifier static Type name(parameters) throws exceptions
Var access modifiers
ersätts av public
, protected
, private
, eller ingenting alls;
om metoden är statisk static
visas nyckelordet (det saknas för icke-statiska metoder)
Type
är typen av returvärde ( void
om det inte finns något resultat)
Nu förstår du förmodligen vad alla nyckelord betyder i metoddeklarationen main
:
public static void main(String[] args) throws Exception
main
metoden
Tillgång till main()
metoden är möjlig från vilken klass som helst, vilket indikeras av public
nyckelordet.
Metoden är statisk, så den kan uttryckligen kallas som Solution.main()
.
Metoden main
ger inget resultat. Returtypen är void
(ingen typ).
Metoden main
tar argument(!): en array av strängar. Och parameternamnet args
antyder "argument" för våra sinnen. När programmet startar kan du skicka argument till det - en rad strängar. De kommer att finnas i args
arrayen i main()
metoden.
Ohanterade fel som Exception
(eller dess avkomlingar) kan uppstå i main()
metoden.
GO TO FULL VERSION