JavaRush /Java Blog /Random-TL /Mga pamamaraan sa Java
articles
Antas

Mga pamamaraan sa Java

Nai-publish sa grupo
Mga Paraan sa Java - 1Sa Java, ang isang application ay binubuo ng mga klase. Ang mga klase, sa turn, ay binubuo ng mga variable. Responsable sila sa pag-imbak ng data at mga pamamaraan na responsable para sa pag-uugali ng klase: sa madaling salita, ang lohika na maibibigay nito (halimbawa, pagproseso ng ilang data, pagtawag sa iba pang mga pamamaraan, atbp.). Maaari nating pag-usapan ang tungkol sa mga naturang bahagi bilang mga variable sa loob ng mahabang panahon, ngunit hindi iyon ang dahilan kung bakit natipon natin ngayon. Mas mahusay na pag-usapan natin ang isang bahagi ng klase bilang isang pamamaraan. Mga Paraan sa Java - 2Ang isang pamamaraan ay isang pinangalanang bloke ng code na ipinahayag sa loob ng isang klase. Naglalaman ito ng isang tiyak na kumpletong pagkakasunud-sunod ng mga aksyon (mga tagubilin) ​​na naglalayong malutas ang isang hiwalay na problema, na maaaring magamit muli. Sa madaling salita, ang isang pamamaraan ay isang function: isang bagay na magagawa ng iyong klase. Ang iba pang mga wika ay mayroon ding mga function. Sa Java lamang sila ay mga miyembro ng mga klase at, ayon sa terminolohiya ng OOP, ay tinatawag na mga pamamaraan. Ngunit bago tayo magpatuloy, tingnan natin ang isang maliit na halimbawa:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Walang kumplikado dito: isang Java method na ang gawain ay bumuo ng greeting string na may pangalang ipinapasa namin dito. Tulad ng halimbawa - Hello world! My name is Bobby Unawain natin ang pagbuo ng isang pamamaraan nang maayos sa pamamagitan ng pagtingin sa bawat keyword sa deklarasyon ng pamamaraan (mula kaliwa hanggang kanan). Ang aming unang keyword ay public, at ito ay nagpapahiwatig ng isang access modifier:

I-access ang mga modifier

Ipinapahiwatig nila ang pinahihintulutang saklaw ng visibility para sa mga miyembro ng klase, iyon ay, ang paghihigpit sa mga lugar kung saan ang isang variable o pamamaraan ay pinapayagang gamitin. Mga Paraan sa Java - 3Ang mga sumusunod na access modifier ay ginagamit sa Java:
  • publiko : publiko. Ang mga pamamaraan o field na may ganitong modifier ay pampubliko, nakikita ng ibang mga klase (o sa halip, ang kanilang mga pamamaraan at field) mula sa kasalukuyang pakete at mula sa mga panlabas na pakete. Ito ang pinakamalawak na antas ng pag-access na kilala;

  • protected : ang mga pamamaraan o variable na may ganitong modifier ay maaaring ma-access mula saanman sa kasalukuyang klase o package, o sa mga klase na nagmamana ng isang ito, pati na rin sa mga pamamaraan o field, kahit na nasa ibang mga package ang mga ito

    protected String constructHelloSentence(String name) {...}
  • Default na modifier. Kung walang modifier ang field o method ng klase, ilalapat ang default na modifier. Sa kasong ito, ang mga field o pamamaraan ay makikita ng lahat ng klase sa kasalukuyang package (tulad ng protected , ngunit walang visibility kapag nagmamana).

    String constructHelloSentence(String name) {...}
  • pribado : ang kabaligtaran ng pampublikong modifier . Ang isang paraan o variable na may tulad na modifier ay magagamit lamang sa klase kung saan ito idineklara.

    private String constructHelloSentence(String name) {...}
Susunod na mayroon kami Stringsa lagda ng pamamaraan (ang unang linya ng pamamaraan na naglalarawan sa mga katangian nito).

Ibalik ang halaga

Ang return value ay ang data (ilang resulta ng method execution) na pumapalit sa lugar nito pagkatapos ng tawag. Ang bawat pamamaraan ay may return value. O hindi?

Mga Paraan ng Return Value

Ang halagang ito ay maaaring maging anumang uri ng data: isang variable ng isang simpleng uri o isang uri ng sanggunian. Sa halimbawang ito, ipinapahiwatig namin na ang pamamaraan ay dapat magbalik ng isang bagay na may uri String, na, gaya ng naaalala namin, ay isang klase na naglalarawan ng isang string. Ang pangalawang punto dito ay ang salita return. Ito ay may direktang kaugnayan sa return value: ang value pagkatapos nito ay ipapadala pabalik sa lugar kung saan tinawag ang method, at ang mismong method ay magsasara return. Karaniwang lumilitaw ang salitang ito sa huling linya ng pamamaraan (maliban sa mga pamamaraan na may iba't ibang sangay tulad ng if, else...). Kung isusulat mo ang code sa susunod na linya pagkatapos ng return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
pagkatapos ay makakakuha tayo ng mga sumpa mula sa tagatala, na hindi masyadong maganda (ang tagatala ay hindi magrerekomenda ng walang kapararakan). Kailangan mo ring tandaan na ang uri ng data pagkatapos сay dapat tumugma sa ipinahayag sa lagda ng pamamaraan. returnMagbasa pa tungkol dito .

walang bisa

Ano ang ginagamit nito voidsa Java? Hindi lahat ng pamamaraan ay may return value. Ang ilan ay maaaring wala o hindi kailangang ibalik ang anuman. Ano ang gagawin pagkatapos? Pagkatapos ay sa paraan ng lagda isulat namin void. Ano ang magiging hitsura ng aming pamamaraan nang walang halaga ng pagbabalik?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Marahil ay napansin mo na kasama ng return value, ang salitang returnSo it is ay nawala, dahil ang aming pamamaraan ay hindi dapat magbalik ng anuman. Gayunpaman, maaari itong ilagay dito, ngunit walang anumang kahulugan, lamang return; sa huling linya. Ito ay karaniwang walang silbi, kaya voidito ay opsyonal sa mga pamamaraan na may. Gayunpaman, maaari itong magamit nang kapaki-pakinabang sa voidmga pamamaraan, tulad ng mga sanga o mga loop, kung saan nais mong lumabas kaagad sa pamamaraan. Susunod sa deklarasyon ng pamamaraan na mayroon kami constructHelloSentence.

Mga pangalan ng pamamaraan

constructHelloSentence - ang pangalan ng pamamaraan, isang natatanging tampok kung saan maaari nating makilala ang isa o ibang paraan. At, nang naaayon, tumawag sa isa o ibang paraan. Mga Paraan sa Java - 4Ang mga pangalan ng pamamaraan ay dapat magsimula sa isang maliit na titik, ngunit gumamit din ng camel case (CamelCase, camel case): i.e. Ang bawat susunod na salita sa pangalan ay katabi ng nauna at nakasulat sa malaking titik. Dapat ilarawan ng mga pangalan ng pamamaraan ang pamamaraan (ang pinakamagandang komento ay tamang pagpapangalan). Upang gawin ito, gumamit ng mga pandiwa o kumbinasyon na may mga pandiwa: getCat, delete, createCar, at iba pa. Sa loob ng isang klase, ang mga pangalan ng pamamaraan ay dapat na natatangi (hindi binibilang ang overloading ng pamamaraan, na pag-uusapan natin sa ibang pagkakataon). Tingnan pa natin ang pamamaraan na ating sinusuri at tingnan ang ( String name)

Mga parameter ng pamamaraan

Ang mga pamamaraan ay maaaring (o maaaring hindi) may ilang data na magmumula sa labas, lalo na sa lugar kung saan tinawag ang pamamaraan. Sa aming kaso, nakikita namin na ang isang uri ng bagay Stringna may pangalan ay dumating nameat sa ibang pagkakataon ay ginagamit namin ang variable na ito sa aming pamamaraan. Maaari kang gumamit ng walang limitasyong bilang ng mga parameter sa isang paraan, ngunit hindi inirerekomenda ang higit sa 7. Kapag hindi natin alam ang eksaktong bilang ng mga elemento, ngunit ang lahat ng mga elementong ito ay kailangan para sa parehong layunin at magiging pareho ang uri (halimbawa, String), isang ellipsis ang ginagamit:
public void constructHelloSentence(String...name) {
 ...
}
Ang apela sa bawat elemento ay magiging ganito: name[0] May naaalala ba ito sa iyo? Tama iyon, array! Walang magbabago kung isusulat natin:
protected void constructHelloSentence(String[] name) {
 ...
}
Ang pag-access sa mga elemento ay magkakaroon din ng anyo: name[1] At isa pang bagay. Ang mga argumento ng pamamaraan ay maaaring pangwakas :
public String constructHelloSentence(final String name) {
  ...
}
Nangangahulugan ito na ang reference ng pangalan ay nakatali sa isang partikular na bagay Stringat hindi maaaring ma-override. finalMababasa mo ang tungkol sa pagtatrabaho sa mga reference na variable at ang kanilang pakikipag-ugnayan sa mga nakareserbang salita sa materyal na " Mga Uri ng Data ng Sanggunian sa Java ".

Mga Paraan ng Pagtawag

Kaya, inayos namin ang paglikha ng mga pamamaraan, ngayon ay pag-usapan natin ang paggamit ng mga ito. Paano tumawag ng isang pamamaraan sa Java? Mga Paraan sa Java - 5Ang bawat pamamaraan sa Java ay nasa isang klase. Upang maunawaan kung paano gumagana ang mga paraan ng pagtawag sa Java, kumuha tayo ng isang klase:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Dahil ang aming pamamaraan ay hindi static (ito ay isang hiwalay na paksa para sa talakayan na lampas sa saklaw ng artikulo ngayon), upang matawag ito kailangan mo munang lumikha ng isang bagay at pagkatapos ay tawagan ang pamamaraan dito:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
Sa mga argumento ng aming pamamaraan, ipinasa namin ang string (pangalan) na gusto naming makita sa resultang string na ipinapakita sa screen:

Hello world! My name is Den
Nararapat ding alalahanin na ang mga pamamaraan ay maaaring magamit muli nang maraming beses hangga't kailangan natin - walang mga paghihigpit.

ito

Madalas mong makikita ang keyword sa code this, tulad ng sa mga setter:
public void setValue(Long value) {
   this.value = value;
}
At ano ang ibig sabihin nito? thissa Java, ito ay isang sanggunian sa kasalukuyang bagay ng klase na ito. Halimbawa, kung gumawa kami ng object:
StringConstructor stringConstructor = new StringConstructor();
pagkatapos ay thissa loob ng bagay stringConstructoray magkakaroon ng isang link sa parehong bagay. thisay ginagamit kapwa upang sumangguni sa isang bagay na variable (tulad ng sa setter sa itaas) at upang tumawag ng ilang pamamaraan. Maaari naming muling isulat ang aming klase nang kaunti:
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
Sa pamamagitan ng thistinatawag namin ang paraan ng bagay na ito upang kunin ang kinakailangang string. Ngunit gayon pa man, bilang isang patakaran, halos hindi ito ginagamit para sa mga pamamaraan, dahil kahit na wala ito ay may isang sanggunian sa isang pamamaraan ng isang naibigay na bagay; ito ay pangunahing ginagamit para sa isang variable ng bagay.

Paraan ng overloading

Sabihin nating kailangan namin ng isang pamamaraan na gumaganap ng mahalagang parehong lohika, ngunit sa isang Hello world! sa halip worlday gusto naming ipasok ang aming sariling salita (string). Ngunit mayroon na tayong pamamaraan constructHelloSentence. Kaya, kailangan ba nating makabuo ng isang bagong pangalan para sa isang pamamaraan na mahalagang gumaganap ng parehong pag-andar? Gaano man ito: sa sandaling ito, nakakatulong sa atin ang overloading. Mga Paraan sa Java - 7Ang overloading ng pamamaraan ay ang paggamit ng parehong pangalan ng pamamaraan nang higit sa isang beses kapag idineklara ito sa isang klase. Mula sa pananaw ng syntax ng wika, hindi maaaring magkaroon ng dalawang magkatulad na pangalan sa ilang lokal na espasyo. Ngunit posible ring magdeklara ng mga pamamaraan na may parehong mga pangalan ngunit magkaibang mga argumento. Sa madaling salita, ang isang klase ay naglalaman ng mga overload kapag mayroong dalawa o higit pang mga pamamaraan na may parehong mga pangalan ngunit magkaibang data ng pag-input:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Dito makikita natin na ang mga pamamaraan ay hindi kailangang maglaman ng parehong access modifier (pati na rin ang uri ng pagbabalik). Kung ang isang overloaded na pamamaraan ay tinawag, pagkatapos ay mula sa ilang mga ipinahayag na pamamaraan ang compiler ay awtomatikong tinutukoy ang kinakailangan batay sa mga parameter na tinukoy sa panahon ng tawag.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION