1 Востаннє редагувалося reywwe95 (24.05.2014 18:38:11)

Тема: Методи

Не так  давно почав вивчати  java в мене  така пробелема в  методі  я  порахував суму елементів масиву як її передати  в  клас і вивести в класі суму елементів масиву ??

import java.util.Arrays;
import java.util.Scanner; // импортируем класс
class one {
    
        public static void main(String[] args) {    
         int [] a=new int[4];
         int b;
         Scanner in = new Scanner(System.in);
         for(int i=0;i<4;i++)
             a[i]=in.nextInt();
         ////
         for(int i = 0; i <4 ; i++) 
              System.out.print(a[i] + "  ");
            }
        
        public static int mas ( int []  a,int sum){
         for(int i=0;i<4;i++)
         
                         sum=sum+a[i]; 
     
                     return sum;
                            }
    }

2

Re: Методи

Є два варіанти.
Перший (оптимальніший). Створіть в main об’єкт класу one і зверніться до його методу mas.
Другий. Оголосіть метод mas статичним.

3 Востаннє редагувалося koala (24.05.2014 19:13:17)

Re: Методи

1. Клас у вас тільки один, тому ви не можете нічого "передавати в клас", у вас і так все в класі відбувається.
2. Щоб викликати один метод класу з іншого, треба просто написати його ім'я і в дужках список параметрів:

System.out.print( mas ( a, 0 ) );

тут mas ( a, 0 ) - виклик методу mas.
3. Немає жодного сенсу передавати окремим параметром початкове значення суми, оскільки воно має бути (очевидно) 0, і можна в методі sum створити таку локальну змінну.
4. Щоб отримати розмір масиву, доцільно користатися змінною масиву length:

for( int i = 0; i < array.length; i++ )

тоді при зміні розміру масиву метод працюватиме без додаткових правок.
5. Щоб вирівнювання працювало як слід, ставте всі рядки, які виконуються послідовно, і однотипні проголошення на одному рівні, підлеглі рядки (після {, for, if...) - зі зсувом в 2 або 4 пробіли, а праву фігурну дужку - на тому самому рівні, що й початок рядка з відповідною лівою дужкою:

        for(int i = 0; i < 4; i++) {
            System.out.print( a[i] + "  " );
        }

інакше це не вирівнювання, а розкидування виходить.
6. Пан quez просто дав дослівну відповідь стосовно п.1.

Подякували: quez1

4

Re: Методи

Тю, то він уже оголошений статичним! Куди я дивився, питається?

5

Re: Методи

   System.out.print( mas ( a, 0 ) );

Перший параметр  мені  зрозумілий  ,але чому другий 0 ??

6

Re: Методи

reywwe95 написав:
   System.out.print( mas ( a, 0 ) );

Перший параметр  мені  зрозумілий  ,але чому другий 0 ??

Сума до того, як ви починаєте додавати елементи масиву.

Подякували: koala1