- •Часть 1
- •Часть 1
- •Введение
- •Лабораторная работа № 1 разработка схем алгоритмов
- •Краткая теория Этапы решения задач на эвм
- •Определение алгоритма и способы его описания
- •Правила оформления схем алгоритмов
- •Типы алгоритмов
- •Задания
- •Построение схем алгоритмов с помощью текстового редактора word
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 работа в среде netbeans. Создание простейших программ с линейным алгоритмом
- •Краткая теория Установка ide NetBeans
- •Общие правила создания приложений
- •Работа с проектом NetBeans
- •Пример создания простейшего приложения
- •Общие правила построения класса
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Приведение типов
- •Организация ввода данных
- •Организация вывода данных
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 3 разработка простейших приложений на базе разветвляющихся алгоритмов
- •Краткая теория Средства переименования в среде NetBeans
- •Отладка кода в среде NetBeans
- •Условный оператор if-else
- •Условный оператор switch
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 разработка программ с циклами со счетчиком
- •Краткая теория Циклы со счетчиком
- •Особенности алгоритмов и программ с накапливанием
- •Методы класса Math
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 работа с итерационными циклами. Одномерные массивы
- •Краткая теория Итерационные циклы
- •Цикл while
- •Цикл do-while
- •Одномерные массивы
- •Подсчет суммы, количества и среднего значения в одномерных массивах
- •Нахождение минимума и максимума
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 алгоритмы сортировки и разбиения одномерных массивов
- •Краткая теория Сортировка одномерных массивов
- •Разбиение одномерных массивов
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 обработка двумерных массивов
- •Краткая теория Понятие многомерных массивов. Ввод и вывод матриц
- •Типовые алгоритмы обработки матриц
- •Алгоритмы обработки матриц в целом
- •Алгоритмы обработки матриц по строкам и столбцам
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8 диагонали матрицы, умножение матриц
- •Краткая теория Обработка главной и побочной диагоналей матриц
- •Работа с диагоналями матриц выше и ниже главной/побочной
- •Умножение матриц
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9 обработка строк класса string
- •Краткая теория Создание объектов класса String
- •Методы класса String
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10 алгоритмы и программы обработки фрагментов строк класса string
- •Краткая теория Сравнение символов строк класса String
- •Типовые задачи обработки массивов строк (слов из текста)
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11 разработка алгоритмов и программ с использованием классов StringBuffer/StringBuilder
- •Краткая теория Создание и обработка объектов классов stringbuffer и stringbuilder
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12 разработка собственных методов
- •Краткая теория Общие правила создания методов класса
- •Описание методов класса
- •Вызов методов класса
- •Передача параметров
- •Содержание
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Программирование на Java
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
Описание методов класса
Метод может иметь модификаторы доступа, возвращать значение и получать параметры.
В общем виде описание метода выглядит следующим образом:
<модификаторы><тип_возвр_знач>имя(<тип> арг1, <тип> арг2, …)
{
<тело метода>
}
где <тип_вовр_знач >– это тип возвращаемого методом значения. Если метод ничего не возвращает, то указывается слово void.
<тип> арг1, <тип> арг2, … – аргументы, предаваемые в метод с указанием типа. Список может быть пустой, и, соответственно, в скобках ничего не будет указываться.
Для текущих лабораторных работ будут использоваться следующие модификаторы:
– модификатор доступа public, обозначающий, что данный метод будет доступен везде, где доступен класс, в котором он определен. Причем модификатор public можно не указывать, так как он является модификатором по умолчанию;
– модификатор метода класса static – объявляет метод статическим, что позволяет вызывать его без создания экземпляра класса. Метод, не имеющий модификатора static, называется методом экземпляра и может быть вызван только для созданного экземпляра класса.
Вызов методов класса
Далее на примере показано как производится вызов методов, возвращающих и не возвращающих значение. Также можно сравнить вызов методов экземпляра класса и статических методов.
Пример 12.1
c
lass
Primer{
public void method1 (){
…
} // метод void ничего не возвращает
public int method2 (){…
int x1=…;
return x1;// возвращаемое значение
}
s
tatic
void
method3(){
…
}// ничего не возвращает
статические
методы
static int method4(){…
int x2=…;
return x2; // возвращаемое значение
}
public static void main(String[] args) {
// вызов методов экземпляра класса – создается новый объект
Primer obj = new Primer ();
obj.method1(); // вызов без возвращаемого значения
int y= obj.method2(); // возвращает значение в переменную y
// вызов статических методов
method3(); // или используется имя класса Primer.method3();
// возвращает значение в переменную z
int z=method4(); // или z=Primer.method4();
}
}
Передача параметров
В программировании часто используются параметризированные методы, т.е. на входе им передаются какие-то параметры в качестве аргументов.
В языке Java все параметры передаются по значению. Из этого следует, что значение параметра после выхода из процедуры не изменяется. Внутри метода можно произвольно изменять параметр, но это никак не повлияет на переменную, которая была указана в качестве параметра вызова. Дело в том, что при передаче параметра выделяется необходимая область памяти, куда копируется значение параметра и внутри метода работа идет с копией. Она будет уничтожена при выходе из метода.
При передаче параметра ссылочного типа его значением является ссылка на объект и, соответственно, ее изменить нельзя, но можно изменить объект, на который она указывает.
Пример 12.2. Передача параметров для примитивных типов.
public class Methods_int {
static void parameters(int x){
x+=10;
}
public static void main(String[] args) {
int y=1;
System.out.println("До вызова метода y="+y);
parameters(y);
System.out.println("После вызова метода y="+y);
}
Результатом выполнения данного кода будет:
До вызова метода y=1
После вызова метода y=1
Пример 12.3. Передача параметров для ссылочного типа – массива.
public class MethodsRef_Array {
static void parameters(int x[]){
x[0]=10;
}
public static void main(String[] args) {
int y[]={1};
System.out.println("Lо вызова метода y="+y[0]);
parameters(y); // ссылка-значение не изменяется, изменяется строка,
// находящаяся по этой ссылке
System.out.println("После вызова метода y="+y[0]);
}
Результатом выполнения данного кода будет:
До вызова метода y=1
После вызова метода y=10
Пример 12.4. Передача параметров для ссылочного типа – StringBuffer (тип String использовать нельзя, так как строки не изменяются).
public class MethodsRef_Stroki {
static void parameters(StringBuffer str){
str=str.append("!!!");
}
public static void main(String[] args) {
String s="Изучаем программирование";
StringBuffer sb=new StringBuffer(s);
System.out.println("До вызова метода строка = "+sb);
parameters(sb); // значение ссылки не изменяется, изменяется
// массив, находящийся по этой ссылке
System.out.println("После вызова метода строка ="+sb);
}
Результатом выполнения данного кода будет:
До вызова метода строка = Изучаем программирование
После вызова метода строка = Изучаем программирование!!!
