Упражнения. 1.Что неправильно в следующей программе?

1. Что неправильно в следующей программе? Исправьте ее.

public class SomethingIsWrong {
public static void main(String[] args) {
Rectangle myRect;
myRect.width = 40;
myRect.height = 50;
System.out.println("myRect's area is " + myRect.area());
}
}

2. Фрагмент кода создает один объект Point и один объект Rectangle. Сколько ссылок к этим объектам существует после того, как код будет выполнен? Будет ли какой-нибудь из объектов кандидатом для «сборки мусора»?

...
Point point = new Point(2,4);
Rectangle rectangle = new Rectangle(point, 20, 20);
point = null;
...

3. Используя понятие сигнатуры метода, определите, какие методы несовместимы друг с другом в одном классе

class Complex {

void set(double re) {}

void set(double re, double im) {}

void set(Compleх re) {}

void set(double x, double y) {}

public void set(Complex re) {}

}

4. Определите, что будет выведено на экран при компиляции и запуске следующего кода:

public class Example{

static int i;

public static void main(String[] args){

System.out.print(i);

}}

5. Определите, что будет выведено на экран при компиляции и запуске следующего кода:

public class MyClass {

{System.out.print("1");}

static{System.out.print("2");}

MyClass(){System.out.print("3");}

public static void main(String[] args) {

System.out.print("4");

}}

6. Определите, что будет выведено на экран при компиляции и запуске следующего кода:

class My{

int x,y;

My(int x, int y){this.x=x; this.y=y;}

My(int x){this(x,-2);}

My(){this(1,2);}

public static void main (String[] args){

My a=new My(5);

System.out.println((a.x+a.y)); }}

7. Дан метод и три программных блока, каждый из которых обращается к указанному методу. Следует проверить верность написания каждого из этих блоков; если он верен – указать, что будет напечатано в качестве вывода.

static boolean flag (int a, int b){

return (4*b!=a+b)?true:false;

}

...

1. int x=(flag (6,2))? 5:-5; System.out.println(x);

2. int x=2; double y=8.; System.out.println(flag(x,y));

3.int m=1; for(int i=3;i<6;i++)

System.out.println(flag (i,m));

8. Имея класс с названием Point, напишите некоторый код, который создает экземпляр этого класса, инициализирует его две переменных, и затем выводит на экран значение каждой из переменных.

public class Point {
public int x = 0;
public int y = 0;
public Point(int x, int y) {
this.x = x;
this.y = y;
}

9. Определите класс Point, задающий точку на плоскости. Класс должен содержать несколько конструкторов. Реализовать следующие методы для вычисления расстояния от точки до начала координат, расстояния между двумя точками, площади треугольника построенного по трем точкам.

10. Определите класс Vector, позволяющий выполнять над векторами на плоскости следующие операции: сложение, вычитание, умножение на число и вычисление скалярного произведения.

11. Создайте класс Complex, содержащий методы, позволяющие производить над комплексными числами арифметические операции сложения, вычитания, умножения и выводить их на экран.

12. Определите класс Matrix размерности (mxn). Класс должен содержать несколько конструкторов. Объявите массив объектов. Передайте объекты в метод, меняющий местами строки с максимальным и минимальным элементами k-го столбца. Создайте метод, который изменяет i-ю матрицу путем возведения ее в квадрат.


[1] Прием, при котором большую программу разбивают на подпрограммы, называют декомпозицией.

[2] За параметрами и аргументами в программировании также закрепились названия формальные и фактические параметры соответственно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: