что расположено в круглых скобках в следующем коде public void print string s int count

knigi spiral serdce risunok stopa 54719 1280x720 Игры для детей

Добавление статических переменных и реализация статических методов

Столкнулся с проблемой. 1)Добавьте две статические переменные для хранения общей стоимости и общего количества всех товаров во всех корзинах. 2)Реализуйте статические методы, которые будут увеличивать значения этих переменных при добавлении в корзину новых товаров. Переменные basketCount и totalCost добавил, количество корзин в консоль выводит. А вот с общей стоимостью товаров проблема. Пробовал static поставить для totalPrice, после этого в консоль выводится общая стоимость, но с каждой корзиной она увеличивается, и для каждой корзины выдает стоимость больше, чем есть товаров в ней(то есть totalPrice(1-й корзины) + totalPrice(2-й корзины и т.д.). А мне необходимо, чтобы общую стоимость товаров для каждой корзины не менялось, и выводило общую стоимость всех товаров во всех корзинах. Рад любой помощи.

И тестовый класс Main:

1 ответ 1

Очень плохие названия переменных. В английском языке не хватает слов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками java static или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.21.40537

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Создание класса в java

Создавать класс мы будем в программе Ecllipse, но также можно работать в любой другой IDE или в блокноте. В качестве примера мы будем создавать класс, который описывает характеристики и поведение кота.

lesson5 classcat

В итоге, у нас создался новый класс (рис 5.2).

lesson5 classcat2

Структура класса в java

Класс в java оформляется с помощью следующей конструкции:

Рассмотрим ее составляющие:

public – модификатор доступа к классу, в данном случае он нам говорит, что этот класс будет доступен не только данному классу, но и другим. В java существуют и другие модификаторы, но об этого поговорим позднее.

class – ключевое слово, говорящее о том, что это класс.

Cat – имя класса. Имена классов принято писать с заглавной буквы.

< >– фигурные скобки, между которыми разместится тело нашего класса.

В предыдущем уроке мы упоминали, что классы в java состоят из атрибутов и методов, присвоим некоторые и нашему коту.

Атрибуты класса Сat

Атрибутами кота могут быть: имя, вес, окраска. Атрибуты это переменные, которые объявляются следующим образом:

private здесь опять же указывает на права доступа. К переменной, в данном случае, можно обращаться только из ее класса, чтобы классы извне не могли ее изменить (вспомним инкапсуляцию из урока 4).

int, String – это типы данных. В данном случае вес будет задан при помощи целого числа – int, a имя и цвет при помощи символьной строки String.

После объявления каждого атрибута должна ставиться точка с запятой ;

При помощи // в коде программы оформляются комментарии, которые являются правилом хорошего тона.

Методы класса Сat

Пусть наш кот умеет есть, спать и разговаривать. Опишем это поведение с помощью методов.

public void eat() – сигнатура метода, его определение. В данном случае она нам говорит о том, что:

eat – имя метода. Имена методов, в отличие от имен классов, принято писать с маленькой буквы. На конце каждого метода после имени всегда идут круглые скобки ( ), пустые или содержащие параметры (об этом позднее).

После сигнатуры метода идут фигурные скобки < >. В них содержится тело метода. Тело нашего метода содержит просто вывод сообщения о том, что кот кушает — "Eating. \n". За вывод текстового сообщения отвечает метод System.out.print("Eating. \n").

\n — символ перевода строки, чтобы при выводе наших сообщений все они не писались в одну строку.

Аналогично предыдущему методу опишем спящего кота:

И немного иначе опишем метод – кот говорит:

В отличие от предыдущих методов этот метод возвращает значение и имеет входные параметры. Давайте подробнее рассмотрим сигнатуру метода public String speak(String words):

public — метод speak() доступен для других классов;

String — тип значения, которое возвращает метод. В предыдущих случаях ключевое слово void указывало на то, что метод ничего не возвращает. В данном случае String указывает на то, что метод возвращает значение типа строка.

Что же это значит? В процессе своей работы метод выполняет определенные действия над данными. Иногда необходимо, чтобы результат этих действий был передан для дальнейшей обработки другим классам, в этом случае метод передает (возвращает) этот результат. Эти возвращаемые данные относятся к какому-либо типу. В нашем примере это тип символьной строки, String.

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

speak — имя метода.

(String words) — входные параметры. Входные параметры — это какие-либо данные, которые передаются из других классов и, которые метод должен обработать. Наш метод получает в качестве входных данных строку в виде переменной words, к этой строке дописывает «. mauu. » и возвращает то, что получилось.

В итоге класс Cat выглядит следующим образом:

Обращение к классу в Java

Далее рассмотрим обращение к классу Cat. И то, как его использовать в работе.

lesson5 classcat3

public static void main(String[] args) – сигнатура метода main(). Программа состоит из нескольких классов, но только один из классов может содержать метод main(). Mетод main(), это так называемая точка входа в программу. Без этого метода мы не сможем стартовать программу. Теперь, вместо приветствия миру, этот метод будет содержать код для работы с классом Cat.

Пишем в тело метода main() (между его фигурными скобками) следующие строки:

Разберем подробнее, что это значит.

Прежде чем вызывать созданные нами методы в классе Cat и заставить нашего кота есть, спать и говорить, сперва нужно создать экземпляр класса (инстанцию).

Данная строчка нам говорит о том, что в памяти создан экземпляр объекта Cat, а переменная ourcat типа Cat (такого же, как и наш объект) указывает на то место в памяти, где был этот объект создан.

Переменную ourcat теперь можно использовать для вызова методов класса Cat, например:

При вызове этих методов в программе Eclipse удобно пользоваться комбинацией клавиш

Ctrl + пробел, после введения имени переменной и точки (рис 5.4). Программа подскажет, какие можно использовать методы для данной переменной.

lesson5 eclipse

Если метод возвращает какое-либо значение, например, как наш метод speak() возвращает значение типа String, то его можно вызывать следующим образом:

Вспомним, что при описании нашего метода он содержал параметры speak(String words). Теперь, при вызове в качестве параметра выступила фраза "Play with me", метод speak() ее обработал и вернул "Play with me. mauu. ". Именно это значение он присвоил переменной say.

Мы это можем проверить, выведя say на печать при помощи команды:

Итак, наш класс HelloWorld теперь выглядит следующим образом:

Теперь сохраним (Ctrl+Shift+S или saveall) и запустим (play) нашу программу. При запуске Eclipse может предложить выбрать Java Applet или Java Application. Нужно выбрать Java Application (рис 5.5).

lesson5 javaapplication

В качестве результата внизу в консоли мы получаем следующие строки.

lesson5 result

На этом закончим данный урок, итак, в этом уроке мы:

Для закрепления материала предлагаю самостоятельно создать класс Dog, где описать характеристики и поведение собаки, а потом вызвать этот класс из HelloWorld. Свои вопросы можете оставлять в комментариях.

Комментариев к записи: 115

Добрый день, Мария. Объяснения просто супер четко и понятно, но вопросы все — таки возникли. При создании нового класса создаются файлы, как я понял несколько — один формата JAVA, второй формата CLASS. Верно или я что — то путаю? Если, к примеру существует файл формата CLASS, но без файла с форматом JAVA, существует ли возможность прочесть его код? Можете более подробно описать структуру создаваемых файлов, может быть в отдельной главе.
Спасибо за статью и заранее спасибо за ответ.

Здравствуйте, не могу запустить вашу программу на Netbeans. Программа выдает такой результат:
Error: Could not find or load main class project1.Project1
Java Result: 1

public class HelloWorld <

public static void main(String[] args) <
cat ourcat= new cat();
ourcat.eat();
ourcat.sleep();
String say = ourcat.speak(«Play with me»);
System.out.println(say);

// TODO Auto-generated method stub

>
Посмотрите в первой строчке слово сat получается написать только с маленькой буквы, если написать Сat c большой выскакивает ошибка :Multiple markers at this line как её можно исправить?

А вы когда создавали класс Cat вы его с какой буквы назвали?

Вот поэтому с большой и не получается. В Java имена классов, методов, переменных чуствительны к регистру. Сat и cat это разные имена, и если вы создали класс и назвали cat, то класса Cat не существует. А еще есть соглашение по оформлению кода в Java (Java Code Conventions), согласно которому классы нужно называть только с большой буквы, а переменные и методы с маленькой. Поэтому переименовывайте

Добрый день, подскажите пожалуйста, как работает переменная phase в описанном вами примере в методе //кот разговаривает. Не понятно куда phase возвращается и как задействовано. У меня программа выдает ошибку в этом месте.

Переменная в моем примере называется phrase, может вы ее в разных местах по-разному назвали, из-за этого ошибка? Было бы хорошо, если бы вы указали какая имено ошибка, ато они разные бывают, а я не экстрасенс)
Работает так: в методе main вы вызываете метод speak, как это описано в примере.
String say = ourcat.speak(«Play with me»);
Фраза «Play with me» передается методу speak в переменную words. Затем в методе speak объявляется новая строковая пременная phrase. Этой переменной присваивается значение переменной words («Play with me» ) и плюс строка «…mauu…» Итого в переменной phrase имеем строку «Play with me…mauu…». Эту строку мы возвращаем, тоесть передаем туда, где был вызван метод speak в методе main.
Вызван он был так
String say = ourcat.speak(«Play with me»)
Результатом работы ourcat.speak(«Play with me») является строка «Play with me…mauu…», следовательно переменная String say теперь содержит строку «Play with me…mauu…»

Извините, забыл дописать описание ошибки

Reports unnecessary local variables, which add nothing to the comprehensibility of a method. Variables caught include local variables which are immediately returned, local variables that are immediately assigned to another variable and then not used, and local variables which always have the same value as another local variable or parameter.

Так у вас это ошибка или предупреждение? Ошбика это Error, если в коде есть ошибки, то его нельзя скомпилировать. Предупреждение это Warning, подчеркивается желтым и с ним можно жить и компилироваться. В данном случае джава считает, что переменная используется избыточно, и можно обойтись и без нее. Обойтись можно, но данный пример был приведен для наглядности передачи параметров в метод и возвращения значения.

понятно, я разобрался. Спасибо за ваше терпение.

Здравствуйте.
Не могу понять, где ошибка.
[img]http://u.pikucha.ru/idgcn/2014-06-24+21-26-08+%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82+%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0.png?referrer=http%3A%2F%2Fpikucha.ru%2F[/img]
C уважением, Ирина.

Добрый день, Ирина, у вас скобок не хватает после new Cat: ourcat= new Cat();

Спасибо огромное! Это все моя невнимательность. Вы, кажется, где-то поясняли про эти скобки. но я еще не совсем уяснила, где конкретно их требуется ставить.

Источник

Поделиться с друзьями
admin
Сказочный портал
Adblock
detector