ВИДЕОУРОК №43. Как вызвать метод из другого метода
На первом уроке вы узнаете, как скачать и установить комплект разработчика приложений (JDK) версии 1.8.0_131.
Читать дальше.
Проверка работы JDK + написание первой программы в командной строке
На этом уроке мы поработаем с командной строкой и напишем первую программу.
Читать дальше.
Как скачать и установить среду разработки Intellij IDEA на Windows 10
На протяжение урока мы разберемся, как с самого начала скачать и установить среду разработки Intellij IDEA v2017.1.2
Читать дальше.
Настройка среды разработки IDEA
На этом уроке мы с Вами рассмотрим и выполним базовые настройки среды разработки Intellij IDEA
Читать дальше.
Написание первой программы в IDEA + обзор полезных сочетаний клавиш
В текущем видео-уроке мы напишем первую нашу программу, которая будет выполнять базовые вещи. А также рассмотрим основные сочетания клавиш, которые гораздо упростят Вам жизнь.
Читать дальше.
Как правильно именовать переменные
В данном уроке мы разберём: Что же такое переменная? Из чего переменная состоит? Какие соглашения по именованию переменных существуют?
Читать дальше.
Примитивные типы данных и их значения по умолчанию
В ходе видео-урока мы с Вами рассмотрим простые типы данных, к примеру, их в Java 8 штук. Также узнаем, какие же значения в локальных переменных по умолчанию содержаться
Читать дальше.
Как создаются и используются константы, правило именования
На протяжение урока мы разберём, что же такое константа и как в Java константы создаются, какие правила использование констант и когда их стоит применять.
Читать дальше.
Использование различных систем счисления + таблица Unicode
В этом уроке Вы познакомитесь с различными система счисления используя язык программирования Java, как же записать значение 2-ой, 8-ой, 10-ой и 16-ой системы счисления в простые типы данные. Использую таблицу Юникодов мы отобразим некоторые символы.
Читать дальше.
Как использовать классы обёртки и их методы
Большинство людей применяют простые типы данных не предполагая, что существуют ещё классы обёртки. В данном видео мы разберём: что же такое класс-обёртка? Когда лучше его применять? И какие же методы они содержат?
Читать дальше.
Как работает преобразование типов
Из этого видео-урока Вы узнаете, что такое явное и неявное преобразование, почему явное преобразование может быть опасным, рассмотрим множество примеров для лучшего понимания как работает преобразование для базовых типов данных.
Читать дальше.
Как работают арифметические операторы (детальное рассмотрение тонкостей)
В этом видео показана работа арифметических операторов: сложение (+), вычитание (-), умножение (*), деление(/), деление по модулю (%). Что касается простых арифметических операторов, то тут всё понятно. А вот как же работать с делением по модулю в разных ситуациях? Детально всё разберем, т.к. данные вопросы могут возникнуть при Java сертификации.
Читать дальше.
Полное погружение в инкременты и декременты с примерами
В этом видео-уроке мы полностью погрузимся в работу инкрементов и декрементов, разберём в чем же их отличия. А также рассмотрим примеры постфиксного и префиксного инкремента и декремента, на которых Вы узнаете всё!
Читать дальше.
Как работают операции сравнения
В видео-уроке будет рассмотрена работа операции сравнения, в чем разница между “==” и методом equals(). Когда и что лучше применять для примитивных типов данных, строк, классов-обёрток?
Читать дальше.
Как работает переполнения данных
В этом видео рассмотрено ситуацию переполнения базовых типов данных. Показано пример переполнения во время явного преобразования, что же происходит с числом после этапа преобразования, разберём как просто посчитать число.
Читать дальше.
Как работает конкатенация (детальное рассмотрение тонкостей)
В текущем видео-уроке мы разберём, что такое конкатенация, разные варианты сцепления строк и разбор актуальных вопросов в тестах.
Читать дальше.
Как сделать локальную область видимости
На этом уроке рассмотри, какие же области видимости в Джаве существуют, а также разберём более детально, какими способами можно создать локальную область видимости.
Читать дальше.
Рассмотрение основных методов класса Math, знакомство с документацией
В текущем уроке познакомимся с классом Math и разберём его самые основные методы
Читать дальше.
Как ввести с клавиатуры значения при помощи класса Scanner
На текущем уроке познакомимся с классом Scanner, который позволить нам вводить с клавиатуры значения. Рассмотрим основные методы этого класса.
Читать дальше.
Как ввести с клавиатуры значения при помощи класса BufferedReader
На текущем уроке познакомимся с классом BufferedReader, который позволить нам вводить с клавиатуры значения. Рассмотрим основные методы этого класса.
Читать дальше.
Как преобразовать строку в число при помощи Scanner/BufferedReader
В данном уроке мы научимся преобразовывать строки в числа используя классы Scanner, BufferedReader
Читать дальше.
Как использовать условные конструкции if, if else, if else if
На протяжение этого урока мы будем разбирать условную конструкцию if, if else, if else if.
Читать дальше.
Как использовать тернарную условную операцию (? : )
В данном уроке познакомимся с тернарным оператором и разберём как его применять
Читать дальше.
Как использовать оператор многозначного выбора switch-case
На этом уроке мы разберём как использовать переключатель switch…case
Читать дальше.
Как использовать отладчик
На этом уроке мы познакомимся с отладчиком и научимся выполнять базовые операции при помощи него.
Читать дальше.
Как работают логические операции
На этом уроке мы рассмотрим основные логические операции, которые значительно упрощают жизнь программисту.
Читать дальше.
Как работают побитовые операции
В текущем уроке мы научимся использовать побитовые операции, а также рассмотрим, как осуществляется перевод в двоичную-десятичную систему счисления.
Читать дальше.
Как работают логические сдвиги числа
На протяжение всего урока будем знакомится с побитовыми сдвигами чисел влево (<<), вправо (>>), а также с сдвигом вправо без учёта знака (>>>)
Читать дальше.
Как использовать короткозамкнутые вычисления
На этом уроке мы разберём чем полезны короткозамкнутые вычисления и как их использовать
Читать дальше.
Как работает цикл с предусловием while
В текущем видео-уроке разберём как использовать цикл с предусловием while
Читать дальше.
Как работает цикл с постусловием do-while
В данном видео-уроке мы рассмотрим цикл с постусловием do…while на маленьком примере, который будет позволять считать сумму чисел, вводимых пользователем с клавиатуры
Читать дальше.
Как работает цикл со счетчиком for
На текущем уроке мы рассмотрим цикл со счетчиком for, а также разберём, чем цикл for отличается от других циклов
Читать дальше.
Как работает оператор досрочного выхода из цикла break
На текущем уроке мы рассмотрим оператор досрочного выхода из цикла – break
Читать дальше.
Как работает оператор пропуска итерации continue
В ходе данного урока познакомимся с ключевым словом – continue, которое позволяет пропускать итерации
Читать дальше.
Как нарисовать прямоугольник при помощи вложенных циклов
В текущем видео-уроке мы научимся рисовать в консоле прямоугольник при помощи вложенных циклов for
Читать дальше.
Как нарисовать квадрат при помощи вложенных циклов
В текущем видео-уроке мы научимся рисовать квадрат при помощи вложенных циклов for
Читать дальше.
Как нарисовать треугольник при помощи вложенных циклов
На текущем уроке будет рисовать треугольник при помощи вложенных циклов for
Читать дальше.
Как использовать бесконечные циклы
На протяжении урока мы будем говорить про различные бесконечные циклы и их реализацию
Читать дальше.
Как работать с метками в Java
На текущем уроке мы разберём что такое метка и как её применять в Java
Читать дальше.
Как создать метод
В данном видео-уроке мы разберём что такое метод, из каких фрагментов создание метода происходит
Читать дальше.
Как правильно именовать и вызывать методы, рассмотрение методов с возвращаемым значением и без возвращаемого
На протяжении урока мы будем говорить про методы, научимся создавать методы с возвращаемым значением и без возвращаемого значения
Читать дальше.
Как использовать перегрузку методов
На текущем уроке мы разберём, что же такое перегрузка методов и как применять её на примерах
Читать дальше.
Как вызвать метод из другого метода
В данном видео научимся создавать методы, а также осуществлять вызов метода из другого метода
Читать дальше.
Как создать простую рекурсию
В текущем видео-уроке мы разберём, что такое рекурсия и как можно создать простую рекурсию
Читать дальше.
Как создать сложную рекурсию
На протяжении урока мы будем говорить про рекурсию, а именно про сложную рекурсию
Читать дальше.
Как создать одномерный массив
В ходе данного урока мы познакомимся с массивами и рассмотрим разные варианты создания одномерных массивов
Читать дальше.
Как создать многомерный массив
В текущем уроке научимся создавать многомерные массивы
Читать дальше.
Как создать зубчатый массив
В данном видео познакомимся с понятие “зубчатых” массивов, а также создадим собственный
Читать дальше.
Как передать массив в метод в качестве параметра
Мы многократно встречали ситуацию, когда метод принимал массив в качестве параметров в методе main. В этом видео разберём, как же в метод main передать аргументы и будем создавать собственные методы
Читать дальше.
Как найти минимальный, максимальные элемент массива
Практически каждый в своей жизни сталкивался с задачей найти минимальный/максимальный элемент в массиве, в этом уроке мы это и будем реализовывать
Читать дальше.
Как реализовать сортировку по возрастанию/убыванию на примере сортировки пузырьком
В текущем уроке мы научимся сортировать массив по возрастанию либо же по убыванию используя сортировку пузырьком, а также возможностями класса Arrays
Читать дальше.
Как реализовать перебор элементов массива на примере циклов for, for-each
В этом уроке мы рассмотрим 3 разных способа вывода значений с массива
Читать дальше.
Как выводить в консоль значения разными цветами
В данном видео-уроке мы разберём одну интересную особенность – вывод в консоль значений разного цвета
Читать дальше.
Следующий курс:
Видео курс Java Базовый для начинающих — онлайн обучение ITVDN
ПОКАЗАТЬ ВСЕ
Поделитесь этим видео в соц сетях
Доступ к полному курсу с учебными материалами и тестированием на 30 дней за 9,99 USD
Студенты также смотрят
Java Professional
Java Углубленный
Java Базовый
Java Стартовый
SOLID принципы в Java
Unit тестирование в Java с JUnit
Основы Java EE
Покупай подписку с доступом ко всем курсам и сервисам
Библиотека современных IT знаний в удобном формате
Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.
- Все видеокурсы на 3 месяца
- Тестирование по 10 курсам
- Проверка 5 домашних заданий
- Консультация с тренером 30 мин
- Все видеокурсы на 1 год
- Тестирование по 24 курсам
- Проверка 20 домашних заданий
- Консультация с тренером 120 мин
- Все видеокурсы на 6 месяцев
- Тестирование по 16 курсам
- Проверка 10 домашних заданий
- Консультация с тренером 60 мин
Использование классов внутри других классов
Бывает такое, что мы хотели бы использовать методы одного класса внутри другого, но не хотели бы наследовать от этого класса.
Почему мы не хотим наследовать?
Во-первых, используемый класс может являться вспомогательным и по логике нашего кода может не подходить на роль родителя.
Во-вторых, мы можем захотеть использовать несколько классов внутри другого класса, а с наследованием это не получится, ведь в PHP у класса может быть только один родитель.
Давайте посмотрим на практическом примере. Пусть у нас дан следующий класс Arr , в объект которого мы можем добавлять числа с помощью метода add :
Давайте теперь добавим в наш класс метод, который будет находить сумму квадратов элементов и прибавлять к ней сумму кубов элементов.
Пусть у нас уже существует класс SumHelper , имеющий методы для нахождения сумм элементов массивов:
Логично будет не реализовывать нужные нам методы еще раз в классе Arr , а воспользоваться методами класса SumHelper внутри класса Arr .
Для этого в классе Arr внутри конструктора создадим объект класса SumHelper и запишем его в свойство sumHelper :
Теперь внутри Arr доступно свойство $this->sumHelper , в котором хранится объект класса SumHelper с его публичными методами и свойствами (если бы публичные свойства были, сейчас их там нет, только публичные методы).
Создадим теперь в классе Arr метод getSum23 , который будет находить сумму квадратов элементов и прибавлять к ней сумму кубов элементов, используя методы класса SumHelper :
sumHelper = new SumHelper; > // Находим сумму квадратов и кубов элементов массива: public function getSum23() < // Для краткости запишем $this->nums в переменную: $nums = $this->nums; // Найдем описанную сумму: return $this->sumHelper->getSum2($nums) + $this->sumHelper->getSum3($nums); > public function add($number) < $this->nums[] = $number; > > ?>?php>
Давайте воспользуемся созданным классом Arr :
add(1); // добавляем в массив число 1 $arr->add(2); // добавляем в массив число 2 $arr->add(3); // добавляем в массив число 3 // Находим сумму квадратов и кубов: echo $arr->getSum23(); ?>?php>
Самостоятельно повторите описанные мною классы Arr и SumHelper .
Создайте класс AvgHelper с методом getAvg , который параметром будет принимать массив и возвращать среднее арифметическое этого массива (сумма элементов делить на количество).
Добавьте в класс AvgHelper еще и метод getMeanSquare , который параметром будет принимать массив и возвращать среднее квадратичное этого массива (квадратный корень, извлеченный из суммы квадратов элементов, деленной на количество).
Добавьте в класс Arr метод getAvgMeanSum , который будет находить сумму среднего арифметического и среднего квадратичного из массива $this->nums .
Как вызвать метод другого класса java
Одним из ключевых аспектов объектно-ориентированного программирования является наследование. С помощью наследования можно расширить функционал уже имеющихся классов за счет добавления нового функционала или изменения старого. Например, имеется следующий класс Person, описывающий отдельного человека:
class Person < String name; public String getName()< return name; >public Person(String name) < this.name=name; >public void display() < System.out.println("Name: " + name); >>
И, возможно, впоследствии мы захотим добавить еще один класс, который описывает сотрудника предприятия — класс Employee. Так как этот класс реализует тот же функционал, что и класс Person, поскольку сотрудник — это также и человек, то было бы рационально сделать класс Employee производным (наследником, подклассом) от класса Person, который, в свою очередь, называется базовым классом, родителем или суперклассом:
class Employee extends Person < public Employee(String name)< super(name); // если базовый класс определяет конструктор // то производный класс должен его вызвать >>
Чтобы объявить один класс наследником от другого, надо использовать после имени класса-наследника ключевое слово extends , после которого идет имя базового класса. Для класса Employee базовым является Person, и поэтому класс Employee наследует все те же поля и методы, которые есть в классе Person.
Если в базовом классе определены конструкторы, то в конструкторе производного классы необходимо вызвать один из конструкторов базового класса с помощью ключевого слова super . Например, класс Person имеет конструктор, который принимает один параметр. Поэтому в классе Employee в конструкторе нужно вызвать конструктор класса Person. То есть вызов super(name) будет представлять вызов конструктора класса Person.
При вызове конструктора после слова super в скобках идет перечисление передаваемых аргументов. При этом вызов конструктора базового класса должен идти в самом начале в конструкторе производного класса. Таким образом, установка имени сотрудника делегируется конструктору базового класса.
Причем даже если производный класс никакой другой работы не производит в конструкторе, как в примере выше, все равно необходимо вызвать конструктор базового класса.
public class Program < public static void main(String[] args) < Person tom = new Person("Tom"); tom.display(); Employee sam = new Employee("Sam"); sam.display(); >> class Person < String name; public String getName()< return name; >public Person(String name) < this.name=name; >public void display() < System.out.println("Name: " + name); >> class Employee extends Person < public Employee(String name)< super(name); // если базовый класс определяет конструктор // то производный класс должен его вызвать >>
Производный класс имеет доступ ко всем методам и полям базового класса (даже если базовый класс находится в другом пакете) кроме тех, которые определены с модификатором private . При этом производный класс также может добавлять свои поля и методы:
public class Program < public static void main(String[] args) < Employee sam = new Employee("Sam", "Microsoft"); sam.display(); // Sam sam.work(); // Sam works in Microsoft >> class Person < String name; public String getName()< return name; >public Person(String name) < this.name=name; >public void display() < System.out.println("Name: " + name); >> class Employee extends Person < String company; public Employee(String name, String company) < super(name); this.company=company; >public void work() < System.out.printf("%s works in %s \n", getName(), company); >>
В данном случае класс Employee добавляет поле company, которое хранит место работы сотрудника, а также метод work.
Переопределение методов
Производный класс может определять свои методы, а может переопределять методы, которые унаследованы от базового класса. Например, переопределим в классе Employee метод display:
public class Program < public static void main(String[] args) < Employee sam = new Employee("Sam", "Microsoft"); sam.display(); // Sam // Works in Microsoft >> class Person < String name; public String getName()< return name; >public Person(String name) < this.name=name; >public void display() < System.out.println("Name: " + name); >> class Employee extends Person < String company; public Employee(String name, String company) < super(name); this.company=company; >@Override public void display() < System.out.printf("Name: %s \n", getName()); System.out.printf("Works in %s \n", company); >>
Перед переопределяемым методом указывается аннотация @Override . Данная аннотация в принципе необязательна.
При переопределении метода он должен иметь уровень доступа не меньше, чем уровень доступа в базовом класса. Например, если в базовом классе метод имеет модификатор public, то и в производном классе метод должен иметь модификатор public.
Однако в данном случае мы видим, что часть метода display в Employee повторяет действия из метода display базового класса. Поэтому мы можем сократить класс Employee:
class Employee extends Person < String company; public Employee(String name, String company) < super(name); this.company=company; >@Override public void display() < super.display(); System.out.printf("Works in %s \n", company); >>
С помощью ключевого слова super мы также можем обратиться к реализации методов базового класса.
Запрет наследования
Хотя наследование очень интересный и эффективный механизм, но в некоторых ситуациях его применение может быть нежелательным. И в этом случае можно запретить наследование с помощью ключевого слова final . Например:
public final class Person
Если бы класс Person был бы определен таким образом, то следующий код был бы ошибочным и не сработал, так как мы тем самым запретили наследование:
class Employee extends Person
Кроме запрета наследования можно также запретить переопределение отдельных методов. Например, в примере выше переопределен метод display() , запретим его переопределение:
public class Person < //. public final void display()< System.out.println("Имя: " + name); >>
В этом случае класс Employee не сможет переопределить метод display.
Динамическая диспетчеризация методов
Наследование и возможность переопределения методов открывают нам большие возможности. Прежде всего мы можем передать переменной суперкласса ссылку на объект подкласса:
Person sam = new Employee("Sam", "Oracle");
Так как Employee наследуется от Person, то объект Employee является в то же время и объектом Person. Грубо говоря, любой работник предприятия одновременно является человеком.
Однако несмотря на то, что переменная представляет объект Person, виртуальная машина видит, что в реальности она указывает на объект Employee. Поэтому при вызове методов у этого объекта будет вызываться та версия метода, которая определена в классе Employee, а не в Person. Например:
public class Program < public static void main(String[] args) < Person tom = new Person("Tom"); tom.display(); Person sam = new Employee("Sam", "Oracle"); sam.display(); >> class Person < String name; public String getName() < return name; >public Person(String name) < this.name=name; >public void display() < System.out.printf("Person %s \n", name); >> class Employee extends Person < String company; public Employee(String name, String company) < super(name); this.company = company; >@Override public void display() < System.out.printf("Employee %s works in %s \n", super.getName(), company); >>
Консольный вывод данной программы:
Person Tom Employee Sam works in Oracle
При вызове переопределенного метода виртуальная машина динамически находит и вызывает именно ту версию метода, которая определена в подклассе. Данный процесс еще называется dynamic method lookup или динамический поиск метода или динамическая диспетчеризация методов.
Как вызвать метод другого класса java
Профиль
Группа: Участник
Сообщений: 12
Регистрация: 13.8.2012
Репутация: нет
Всего: нет
есть class A extends C < void f()<. >> А и С в одном пакете без модификаторов, есть class B < void g()<. >> в другом пакете без модификатора. как вызвать метод g() внутри метода f(). возможно любое решения кроме установления другого модификатора доступа.
еще вопрос (класс А такой же как и в первом вопросе): class B extend A < void h()<. >> они теперь в одном пакете — как в f() вызвать h(). можно делать все что хочешь.
везде пытался отыскать ответ — но найти не могу, подскажите.
данный вопрос был на собеседовании.
Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010
Репутация: нет
Всего: 5
Прикольно, режим доступа private (который также используется поумолчанию, если никакой модификатор не указан) для того и был придуман, чтобы не позволять обращаться к таким данным извне, а его почему-то пытаются обойти, за такое по идее нужно бить палкой по рукам.
А так, через рефлексию вроде можно, гугл в помощь.
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006
Репутация: нет
Всего: 1
По умолчанию protected же?
Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005
Репутация: 3
Всего: 48
| Цитата(Karadul @ 28.8.2012, 16:23 ) |
| По умолчанию protected же? |
Нет, правильнее будет назвать package-private, protected несколько шире
datatalks.ru — анализ данных, статистика, машинное обучение
Профиль
Группа: Участник
Сообщений: 12
Регистрация: 13.8.2012
Репутация: нет
Всего: нет
По умолчанию внутри пакета, без доступа наследникам.
Вообщем спасибо, что откликнулись буду дальше искать.
Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск
Репутация: 3
Всего: 28
Честно, не совсем понял, зачем класс А должен быть наследником С, ну да ладно. Вот каким может быть ответ на первую часть Вашего вопроса:
| Код |
| package a; |
| Код |
| package b; |
| Код |
| package a; |
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
import b.B;
class A extends C void f() B bb = new B();
try Method privatG = B.class.getDeclaredMethod(«g»);
privatG.setAccessible(true);
privatG.invoke(bb);
> catch (IllegalAccessException | InvocationTargetException | IllegalArgumentException |
NoSuchMethodException e) System.out.println(e.getMessage());
>
>
В действительности всё совсем не так, как на самом деле
Профиль
Группа: Участник
Сообщений: 12
Регистрация: 13.8.2012
Репутация: нет
Всего: нет
спасибо за ответ. я не знаю будет ли работать класс А если убрать public модификатор у класса В, так как вся проблема и касалась того, как обойти модификатор доступа.
Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск
Репутация: 3
Всего: 28
| Цитата(Escorial @ 3.9.2012, 13:59 ) |
| я не знаю будет ли работать класс А если убрать public модификатор у класса В, |
мда, не будет. Строчку с названием и сигнатурой метода в этом случае получить можно так:
| Код |
| class A extends C void f() try Method privatG = Class.forName(«b.B»).getDeclaredMethod(«g»); privatG.setAccessible(true); System.out.println(privatG.toGenericString()); > catch (Exception e) e.printStackTrace(); > > |
А как этот метод вызвать. Сдаюсь!
Вот, пришла в голову мысль: а в ТЗ ничего не было сказано про модификатор доступа конструктора класса В? Если сделать в В public-конструктор, вызвать его метод g можно так:
| Код |
| package b; |
| Код |
| package a; |
import java.lang.reflect.Method;
import java.lang.reflect.Constructor;
class A extends C void f() try Constructor constrB = Class.forName(«b.B»).getConstructor();
constrB.setAccessible(true);
Method privatG = Class.forName(«b.B»).getDeclaredMethod(«g»);
privatG.setAccessible(true);
privatG.invoke(constrB.newInstance());
> catch (Exception e) e.printStackTrace();
>
>
Это сообщение отредактировал(а) Pawl — 3.9.2012, 22:01
В действительности всё совсем не так, как на самом деле
Профиль
Группа: Участник
Сообщений: 12
Регистрация: 13.8.2012
Репутация: нет
Всего: нет
возможно вы правы. просто тогда находит мысль — зачем все это делать — не легче тогда сделать класс публичный?)) — вообщем я насчет этих вопросов себе создал мысль — что люди просто хотят поднять статус собеседования — задавая каверзные вопросы — решения которых смысла не имеет)
Спасибо за ответ и помощь — буду для себя знать что можно с помощью интерфесов Conctructor и Method получить напрямую доступ к конструктору и методу н есоздавая обьект класса. — если я правильно понял то что вы предлдожили.
Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск
Репутация: 3
Всего: 28
| Цитата(Escorial @ 7.9.2012, 12:49 ) |
| Спасибо за ответ и помощь — буду для себя знать что можно с помощью интерфесов Conctructor и Method получить напрямую доступ к конструктору и методу н есоздавая обьект класса. |
Не за что На самом деле, объект класса для вызова его метода все-же создается. Обратите внимание на строку:
| Код |
| constrB.newInstance(); |
| Цитата |
| Uses the constructor represented by this Constructor object to create and initialize a new instance of the constructor’s declaring class |
В java нельзя вызвать метод класса, не создавая объект этого класса, если, конечно, этот метод не static.
Это сообщение отредактировал(а) Pawl — 8.9.2012, 10:40
В действительности всё совсем не так, как на самом деле
Профиль
Группа: Участник
Сообщений: 12
Регистрация: 13.8.2012
Репутация: нет
Всего: нет
Спасибо за уточнение:)
- Прежде, чем задать вопрос, прочтите это!
- Книги по Java собираются здесь.
- Документация и ресурсы по Java находятся здесь.
- Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс «транслит«, если у Вас нет русских шрифтов.
- Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка «Пометить как решённый» находится над первым постом.
- Действия модераторов можно обсудить здесь.
- FAQ раздела лежит здесь.
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
[ Время генерации скрипта: 0.1562 ] [ Использовано запросов: 21 ] [ GZIP включён ]
