Это пятый день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления
Сложный уровень:средний
программа
программа один
Предскажите вывод следующей программы Java:
public class Base{
private int data;
public Base(){
data = 5;
}
public int getData(){
return this.data;
}
}
class Derived extends Base{
private int data;
public Derived(){
data = 6;
}
private int getData(){
return data;
}
public static void main(String[] args){
Derived myData = new Derived();
System.out.println(myData.getData());
}
}
a) 6
b) 5
в) ошибка времени компиляции
г) ошибки во время выполнения
Нажмите здесь, чтобы перейти к ответу
программа вторая
public class Test{
private int data = 5;
public int getData() {
return this.data;
}
public int getData(int value) {
return (data+1);
}
public int getData(int... value) {
return (data+2);
}
public static void main(String[] args) {
Test temp = new Test();
System.out.println(temp.getData(7, 8, 12));
}
}
а) ошибки времени компиляции или времени выполнения
b) 8
c) 10
d) 7
Нажмите здесь, чтобы перейти к ответу
Процедура третья
public class Base{
private int multiplier(int data){
return data*5;
}
}
class Derived extends Base{
private static int data;
public Derived(){
data = 25;
}
public static void main(String[] args){
Base temp = new Derived();
System.out.println(temp.multiplier(data));
}
}
a) 125
b) 25
в) ошибка выполнения
г) ошибка времени компиляции
Нажмите здесь, чтобы перейти к ответу
Вопрос четвертый
Какое из следующих утверждений о блоках finally неверно?
а) Для каждого блока try может быть только 1 блок finally.
б) если программа завершается вызовом System.exit(), блок finally не будет выполнен;
c) Если исключение не обрабатывается в операторе catch, JVM выполнит блок finally перед завершением программы.
г) Блок finally содержит важный сегмент кода, поэтому код в блоке finally выполняет код при наличии/отсутствии блока try в java.
Нажмите здесь, чтобы перейти к ответу
Процедура пятая
import java.io.IOException;
import java.util.EmptyStackException;
public class newclass{
public static void main(String[] args){
try{
System.out.printf("%d", 1);
throw(new Exception());
}
catch(IOException e){
System.out.printf("%d", 2);
}
catch(EmptyStackException e){
System.out.printf("%d", 3);
}
catch(Exception e){
System.out.printf("%d", 4);
}
finally{
System.out.printf("%d", 5);
}
}
}
a) 12345
b) 15
c) 135
d) 145
Нажмите здесь, чтобы перейти к ответу
программа шесть
public class javaclass{
static{
System.out.printf("%d", 1);
}
static{
System.out.printf("%d", 2);
}
static{
System.out.printf("%d", 3);
}
private static int myMethod(){
return 4;
}
private int function(){
return 5;
}
public static void main(String[] args){
System.out.printf("%d", (new javaclass()).function() + myMethod());
}
}
a) 123
b) 45
c) 12345
d) 1239
Нажмите здесь, чтобы перейти к ответу
Вторая половина статьи - вывод и анализ программы
вывод и разбор
вывод программы
Отвечать:
(c)
иллюстрировать:
При переопределении метода суперкласса объявление метода в подклассе не может быть более строгим, чем метод, объявленный в суперклассе.
Программа два выхода
Отвечать:
(d)
иллюстрировать:
Когда вы не знаете количество входных параметров, но знаете тип параметра (в данном случае int), (int... values) передается методу в качестве параметра. Когда в основном методе создается новый объект, переменная data инициализируется значением 5. Вызов метода getData() со свойствами (7, 8, 12) вызывает третий метод getData(), который увеличивает значение переменной данных на 2 и возвращает 7.
Программа три выхода
Отвечать:
(d)
иллюстрировать:
Поскольку множитель метода помечен как закрытый, он не наследуется и, следовательно, не виден потомкам.
Запрограммируйте четыре ответа
отвечать :
(d)
иллюстрировать:
Утверждение (d) неверно, потому что блок finally может существовать только в том случае, если блок try или catch завершается успешно. Использование блока finally без блока try приводит к ошибке времени компиляции.
Программа пять ответов
отвечать :
(d)
проиллюстрировать:
Порядок, в котором пишутся операторы catch, следующий: от более конкретного к более общему. В приведенном выше коде создается новое исключение типа Exception. Сначала код переходит к первому блоку catch, чтобы найти обработчик исключений. Но поскольку IOException не того же типа, он перемещается вниз ко второму блоку catch и, наконец, к третьему, где перехватывается исключение и печатается 4. Следовательно, ответ равен 145, потому что порядок выполнения блоков такой: try->catch->finally.
Программа Шесть Ответов
отвечать :
(d)
проиллюстрировать:
Статические блоки в Java выполняются еще до того, как компилятор вызовет main. В основном методе создайте новый объект javaclass, вызовите его метод function() для возврата 5 и статический метод myMethod() для возврата 4, то есть 4+5=9. Таким образом, вывод программы равен 1239, потому что 123 выводится на консоль еще до выполнения основного метода, а основной метод возвращает 9 при выполнении.
Это все для этой статьи
Статьи по Теме:
[Java-упражнения] Вывод Java-программ | Первый набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод программ Java | Второй набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод Java-программ | Третий набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод программ Java | Четвертый набор (включая анализ)
[Вопросы по практике Java] Вывод Java-программ | Пятый набор (включая анализ)
[Вопросы по практике Java] Вывод Java-программ | Шестой набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод программ Java | Седьмой набор (включая анализ)
[Вопросы по практике Java] Вывод Java-программ | Восьмой набор (включая анализ)
[Java-упражнения] Вывод Java-программ | Девятый набор (включая синтаксический анализ)
[Java-упражнения] Вывод Java-программ | Набор 10 (сборка мусора)
Я давно веду блог о технологиях, и это одна из моих технических статей/руководств. Надеюсь, вам это понравится! Вот краткое изложение всех моих оригинальных и исходных кодов работ:GitHub, и это блог, который я недавно создал:haiyong.site,контента в ней не так много,есть какие-то HTML игры,если интересно можете попробовать.Вы можете сами скопировать исходники по F12,или спросите у меня напрямую.
Если вы действительно узнали что-то новое из этой статьи, ставьте лайк, добавляйте в закладки и делитесь с друзьями. 🤗Наконец, не забудьте поддержать ❤ или 📑