- •Лабораторная работа 3 «Методы класса. Работа с массивами и строками в Java»
- •Понятия функции и метода
- •Объявление метода
- •Вызов метода
- •Работа с массивом
- •Задание 3
- •Работа со строками Создание строк
- •Задание 5
- •Задание 4
- •Заголовок метода main()
- •Дополнительный материал. Работа с датой и временем
- •Задание 6 (дополнительное*)
Вызов метода
Чтобы вызвать метод из другого метода того же класса, необходимо указать его имя, а затем в скобках список фактических параметров (если метод не требует параметров, скобки все равно ставятся).
Например, мы можем обратиться к описанному нами методу squareSum(), передав ему в качестве параметров два целых числа 10 и 20 следующим образом:
System.out.println(squearSum(10,20)+1);
В консоль будет выведено число 501.
Обратите внимание, вызов метода используется как операция, которую можно комбинировать с другими операциями (в данном случае, суммой) в выражении.
Чтобы вызвать метод другого класса, необходимо иметь объект этого класса*. Имя метода указывается через точку после имени объекта.
Например, в классе String (строка) имеется метод length(), возвращающий длину строки. Обратиться к этому методу можно только через объект класса String (что вполне логично, метод вызывается для той строки, длину которой мы хотим узнать).
String S = "Привет"; // Создание объекта класса String, подробнее см. ниже
int x = S.length(); // Вызов метода length() для объекта S.В результате x = 6
Подробнее о вызове методов других классов будет рассказано позже.
В дальнейшем, рассказывая о каких-либо методах, мы будем называть их не только именем, но и для наглядности указывать в скобках параметры метода, например сharAt(int i). В результате становится легко объяснить назначение метода: «Метод charAt(int i) возвращает символ строки с индексом i». Тип возвращаемого значения мы будем указывать только при необходимости.
Пример 1 использования методов. Поиск минимального элемента и сортировка массива:
// класс для обработки общего массива разными методами
public class arraysamoilova {
// выделяем память под массив - это данные (свойства) класса arraysamoilova
public short[] myarray = new short[10];//10 элементов
// методы класса arraysamoilova
public static void main(String[] args) {
//создаем экземпляр класса - arr
arraysamoilova arr = new arraysamoilova();
// обращаемся к методам класса arraysamoilova
arr.iniarray();
arr.printarr();
System.out.print("\nМинимальный элемент: "+ arr.minX());
arr.sort();
System.out.print("\n Рассортировали ");
arr.printarr();
}
//метод инициализации массива
public void iniarray(){
for (int i=0;i<10;i++){
myarray[i]=(short)Math.round(50*Math.random());
}}
//метод поиска минимума в массиве
public short minX(){
short x=0;
x=myarray[0];
for(int i=1;i<10;i++){
if(x>myarray[i]){
x=myarray[i];
}}return x;
}
//метод сортировки массива
public void sort(){
short temp;
for(int i=0;i<9;i++){
for(int j=9;j>i;j--){
if(myarray[j-1]>myarray[j]){
temp=myarray[j];
myarray[j]=myarray[j-1];
myarray[j-1]=temp;
}}}}
//метод вывода массива
public void printarr(){
System.out.print("\nМассив: ");
for(int i=0;i<=9;i++){
System.out.print(myarray[i]+", ");
}}
}
В данной программе кроме главного метода main используются четыре метода — iniarray(), minX(), sort() и printarr(), использующие объявленный массив, для которого выделяется память на десять элементов. Происходит инициализация (заполнение) массива случайными числами с помощью метода Math.random(). Явным преобразованием (short) приводим полученные значения типа double к значениям типа short. После того, как массив инициализирован, можно производить над ними различные действия. Метод minX() ищет минимальный элемент в полученном массиве. Второй метод производит сортировку полученного массива методом пузырька. Затем выводятся значения его элементов. В методе main() создается экземпляр класса и вызываются все его методы. Поскольку метод minX() возвращает значение строкового типа, его можно использовать в качестве аргумента конструкции System.out.print().
Задание 1
Создайте в пакете данной лабораторной работы класс и отладьте приведенный выше пример. Добавьте в этот класс два новых метода:
умножение всех элементов массива на 3;
подсчет числа четных элементов.
Задание 2
Напишите метод toUSD(int rur, double course), переводящий рубли в доллары по заданному курсу. Вызовите его дважды в методе main() c любыми параметрами, результат выведите в консоль.
Массивы
Определения
Массив — это совокупность переменных одного типа, имеющих общее имя. Каждая такая переменная называется элементом массива. С каждым элементом связано целое число — индекс, который используется (вместе с именем массива) для обращения к нему.
Создание массива
Создание массива происходит в два этапа.
1. Объявление массива. На этом этапе создается переменная типа ссылка на массив, с помощью которой мы сможем потом к массиву обращаться. Для этого указывается тип элементов массива, затем квадратные скобки (они показывают, что мы имеем дело с массивом, а не с обычным типом данных) и идентификатор — имя массива. Идентификаторов может быть несколько (как и в случае с переменными простых типов).
Примеры:
int[] a; // Создается ссылка на массив типа int
double[] b, c; // Создаются две ссылки на массивы типа double
2. Создание массива. Создать массив — значит выделить в памяти место, достаточное для хранения всех его элементов. Для этого надо указать длину массива — количество элементов в нем. Кроме того, переменная-ссылка, объявленая на предыдущем этапе, теперь будет «указывать» не в пустоту (в Java эта «пустота» называется null), а на конкретный массив, с элементами которого можно работать.
Массив создается операцией new, которая выделяет участок памяти и возвращает указатель на этот участок. После ключевого слова new должен быть указан тип данных массива и его длина в квадратных скобках:
a = new int[5]; // В памяти выделяется место под массив из пяти целочисленных элементов, переменная a будет указывать на этот массив
b = new double[4]; // В памяти выделяется место под массив из четырех действительных элементов, на него указывает переменная b
При этом элементам массива присваиваются значения по умолчанию. Можно сразу проинициализировать массив нужными значениями, если перечислить их через запятую в фигурных скобках (длина массива при этом не указывается):
c = new double[]{2.3, 1.02, 8}; // В памяти выделяется место под массив из трех действительных элементов, на него указывает переменная с, элементы массива сразу получают нужные значения.
Примеры инициализации строковых массивов:
String[] goods = new String[] {"Колбаса", "Сосиски", "Баранки", "Молоко", "Торт", "Яблоки", "Шоколад"}; // В памяти выделяется место под массив из семи строковых элементов, на него указывает переменная goods, элементы массива сразу получают нужные значения.
String[] gamers = {"Павел","Михаил","Евгений","Ирина", "Ольга","Виктор", "Игорь","Дарья","Иван"};// В памяти выделяется место под массив из девяти строковых элементов, на него указывает переменная gamers, элементы массива сразу получают нужные значения.
