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 privatenyckelordet före en metoddeklaration, kan metoden endast anropas från samma klass som den deklareras i. Nyckelordet publictillå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. publicmodifierare

En metod (eller variabel eller klass) markerad med modifieraren publickan nås från var som helst i programmet . Detta är den högsta graden av öppenhet – det finns inga begränsningar.

2. privatemodifierare

En metod (eller variabel eller klass) märkt med modifieraren privatekan 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. protectedmodifierare

Om en metod är markerad med protectedmodifieraren 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 publicmodifieraren 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. staticnyckelord

Nyckelordet staticgö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 mainstatiska.

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. throwsnyckelord

Det finns ett annat sökord som du förmodligen har sett i en metoddeklaration – nyckelordet throws. Till skillnad från åtkomstmodifierare och staticnyckelordet 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. mainmetod

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
Allmänt format för en metoddeklaration

Var access modifiers ersätts av public, protected, private, eller ingenting alls;

om metoden är statisk staticvisas nyckelordet (det saknas för icke-statiska metoder)

Typeär typen av returvärde ( voidom 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
Deklarerar mainmetoden

Tillgång till main()metoden är möjlig från vilken klass som helst, vilket indikeras av publicnyckelordet.

Metoden är statisk, så den kan uttryckligen kallas som Solution.main().

Metoden mainger inget resultat. Returtypen är void(ingen typ).

Metoden maintar argument(!): en array av strängar. Och parameternamnet argsantyder "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.