Методы Ява


  Share  
|


Методы используются в качестве строительных блоков Вашей программы, которые выполняют задачи, которые могут быть снова и снова, и, используя тот же код, чтобы выполнить задачу каждый раз. Основная, но основных частей метода в декларации, ее название, ее возвращение типа, параметр подписи, и сегмент кода фигурные скобки. Следующие строки кода являются примером метода декларации.

  статической силы doSomething () (/ / добавить код здесь) 

Этот метод называется doSomething и возврат типа вакуум, который просто показывает, что этот метод не возвращает значение. Мы стали свидетелями того, как ключевые слова, уже не имеющим юридической силы, который является возвращение типа метода главных. Если метод doSomething были добавлены к вашей основной программы классе, а затем в основной метод класса Вы бы назвал метод doSomething, введя следующий код:

  doSomething (); 

Примечание Этот метод doSomething должен быть статичными на данный момент, потому что основной метод, с которым мы себя метод doSomething будет называться, также статическая. Метод doSomething не нужно быть статичными, если мы создали экземпляр класса, к которому doSomething будет принадлежать.

Если вы хотите, чтобы метод, который возвращает значение, необходимо указать тип возвращения метода, и тогда вы должны использовать ключевое слово вернуться в методе блок кода, который необходимо указать возвращаемое значение.

  статический getFiveDoubled int () (вернуться 10;) 

На следующий метод просто будет вернуть стоимость от 10 до там, где она открывается с. В следующей строке кода можно было бы добавить, например, в вашей основной способ присвоить это значение переменной:

  int myNumber = getFiveDoubled (); 

Эта строка кода будет присвоить значение от 10 до переменной myNumber.

Примечание Просто потому, что метод getFiveDoubled теперь вернуться типа, это не означает, что она не может быть сама по себе.

  getFiveDoubled (); 

Этот метод по сути ничего не делать, но у вас может быть метод, который выполняет необходимые задачи, а затем возвращает значение, которое вы хотите игнорировать.

А метод, который имеет возврат стоимости (не аннулируются), должны иметь возвращение выступлении на все возможные точки выхода из этого метода. Компилятор будет забрать, если путь без возвращения стоимости возможно. С другой стороны, если у вас есть метод, с возвращением типа недействительными, а затем хотите, чтобы выйти из этого метода рано, вы можете использовать ключевые слова, вернуться на свою собственную. Возьмем, к примеру, следующий код:

  государственных недействительным doSomething () (если (leaveEarly == верно) возвращение / / еще продолжают с остальной код) 

Это аналогично тому, как распад заявление используется для выхода из некоторых блоки кода, такие, как переключиться случаях и петель, как мы видели ранее. Например, мы только что видели очень простой пример, но с использованием ключевого слова вернуться в данном случае может быть очень полезна для немедленно покинули его из сложной код группы в том или ином методе.

Параметр Проходной

Предыдущий метод, getFiveDoubled, довольно бессмысленно и очень неудобно, поскольку он будет возвращать только одно значение, 10. Тем не менее, мы могли бы создать метод, который будет принимать в любом количестве, вдвое, а затем вернуться в два раза стоимость. Это может быть достигнуто с помощью параметра кончиной. Параметры передачи позволяет передавать ценности метода, что этот метод может манипулировать. На следующий метод содержит один параметр, который в два раза, и новое значение возвращается.

  int doubleNumber (int номер), (число *= 2; вернуться номер;) 

Как вы можете видеть, параметр является переменной называется число типа int и определяется между скобки, следующие за именем этого метода. Для вызова этого метода, можно, например, использовать следующий код:

  / / двухместный от 2 равен 4 int myNumber = doubleNumber (2) / / затем удвоить нынешнее число 4 равно 8 myNumber = doubleNumber (myNumber) / / затем четыре раза ее нынешнего числа, на равную 32 myNumber = doubleNumber (doubleNumber (myNumber )); 

Это последняя строка кода вызова метода doubleNumber дважды, во-первых, возвращающихся на значение, которое имеет двойное значение myNumber, которая, в свою очередь, а затем передается в качестве параметра для второй призыв к doubleNumber том, что в конечном итоге возвращает окончательное значение 32, присвоение ему с переменной myNumber.

Чтобы повторить то, о чем мы говорили ранее, если стоимость, что вы передаете в качестве параметра имеет примитивный тип данных переменной, переменная сама по себе не передается в метод. Новая переменная в том, что стоимость создается в методе, а затем использоваться. Это означает, что изменения, внесенные в этот стоимости внутри называется метод не скажется на стоимости первоначальной переменной.

Вы также можете иметь более одного параметра, с помощью запятой отделить последовательных параметров. Ниже простой пример, SpidersEyes.java, содержит метод умножения, который содержит два параметра, которые оба типа int, и возвращает значение из двух параметров перемножения. Вот код:

  общественного класса SpidersEyes (государственной статической int размножаются (int valueA, внутр valueB) (вернуться valueA * valueB;) государственной статической силы основных (Строка аргументов []) (int numberOfSpiders = 10; int eyesPerSpider = 8; int totalEyes = размножаются (numberOfSpiders, eyesPerSpider); System.out.println ( "Глаза Всего =" + totalEyes);)) 

Есть две вещи, к сведению из этого примера. Во-первых, мы использовали ключевое слово для статического метода размножаются. Это происходит потому, что нет экземпляр класса SpidersEyes настоящее время созданы, так что для того, чтобы основной, который является статическим, чтобы иметь возможность получить доступ к метод умножения, он должен быть также статическая. Вторая вещь заметить, что основной метод также принимает параметр, который является массивом строк.

Метод подписях

Вполне возможно, на двух методов, которые имеют одинаковые названия. Вместе с тем, они должны иметь разные подписей, поскольку в противном случае, если вы хотите назвать одним из методов, компилятор не имеет возможности дифференцировать друг от друга, как ссылки на метод основан на компилятор признания подписи. После методы с тем же именем, но с разными подписями известен как перегрузка метода.

Название метода и параметров подписи, что метод определения метода подписи. Возвращение типа метод не влияет на его подписание. Поэтому вы не можете иметь два метода с таким же именем, с двумя разными возвращения ценностей, в то же параметр подписи.

В предыдущем примере, SpidersEyes.java, мы провели метод называется размножайтесь, которая заняла два параметра значения типа int, возвращая значение параметра значения умножаются вместе. Если мы также включали метод, который сделал то же самое, но используются значения типа двойной вместо этого мы могли бы создать еще один метод с тем же именем, но с другой параметр подписи.

  государственного статического int размножаются (int один, внутр б) (возвращают * б;) государственного статический двойной размножаются (один двухместный, двухместный б) (возвращают * б;) 

Параметр подписи определяется на основании данных типов параметров, и, следовательно, количество параметров также. Допустим, что мы теперь добавлены следующие методы вместе с предыдущими двумя способами:

  государственного статического долго размножаются (int один, внутр б) (вернуться (длинная) (а * б);) 

Эта программа уже не будет составлять потому, что этот метод и оригинальный метод многократно использовать один и тот же подписи. Они имеют те же названия, а также тот же параметр подписи двух параметров, как тип внутр. Наиболее очевидное решение заключается в том, чтобы изменить параметр подписания последнего метода принять два параметра типа долго.

  государственного статического долго размножаются (долго, долго б) (возвращают * б;) 

Это будет теперь работать, потому что параметр подписи разные. Если вы не можете изменить параметр подписи на разумной основе, не смущает, просто дать методов разными названиями (например, multiplyInt, multiplyDouble, multiplyLong и т.д.).

в этой статье идет речь добавлены Габриэла С. Перес

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions